|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
udr-процедура: бэкап базы + рестор + упаковка 7z. Пока только под windows: для 32-разрядного firebird, для 64-разрядного . В embedded тоже работает. Нужно положить dll в папку \pluguns\udr\ сервера (если папки udr нет, то создать её (помня про UAC)). Код: sql 1. 2. 3. 4. 5. 6. 7.
Возврат результата в блобе (одной записью или несколькими по ABlockSize байт). Вызывается так: Код: sql 1. 2.
Иcпользование из IBExpert: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Выкладываю бинарники с ограничением на 10 успешных запусков процедуры. Счётчик запусков сбрасывается при перезапуске сервера. Если кому-нибудь нужно без ограничений, или с исходниками, или переделать под ваши нужды, то это можно обсудить (nick@fastbase.net) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 11:53 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
17.04.2018 11:53, Hommer пишет: > udr-процедура: бэкап базы + рестор + упаковка 7z. - а почему утка крякает? - а патаму што может! (С) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 12:30 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Hommer, 1. как по мне пихать содержимое бекапа в BLOB не очень умно, да и не понятно зачем это надо. 2. если ты уж засовываешь бекап в блоб, то почему бы не сделать парную процедуру для восстановления из этого блоба, а не пихать всё в одну процедуру ИХМО труд бесполезный, но если ты считаешь что это надо тебе (ну и мало ли кому), то сделай набор процедур для задач копирования и восстановления и помести их в один пакет. HommerВыкладываю бинарники с ограничением на 10 успешных запусков процедуры. Счётчик запусков сбрасывается при перезапуске сервера. это ещё зачем, ты продавать свою udr собрался? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 12:33 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Симонов Денискак по мне пихать содержимое бекапа в BLOB не очень умно, да и не понятно зачем это надо. Видимо, чтобы потом вытянуть его на клиент. Хотя почему не External Table в самом деле.... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 12:34 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Arioch, ну вот только ты не говори глупостей. Внимательно читаем какие типы поддерживаются External Table ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 12:37 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
17.04.2018 12:33, Симонов Денис пишет: > как по мне пихать содержимое бекапа в BLOB не очень умно pkunzip.zip Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:00 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Симонов Денис1. как по мне пихать содержимое бекапа в BLOB не очень умно, да и не понятно зачем это надо. 2. если ты уж засовываешь бекап в блоб, то почему бы не сделать парную процедуру для восстановления из этого блоба, а не пихать всё в одну процедуру Есть база 1-10-100GB на сервере в интернете. У вас есть IP-адрес сервера FB, админские логин и пароль для FB. Бэкапы хочется забирать быстро и удобно. Как будете решать? :) 7-zip одну мою базу ужимает в 6 раз, а другую в 50. Через интернет передаётся уже ужатое. Быстро забирается, удобно хранится, и уже отресторенное если нужно. Сейчас нет возможности задавать пароль для архива, но нужно сделать конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:16 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
HommerКак будете решать? :) Код: sql 1. 2. 3.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:23 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
AriochСимонов Денискак по мне пихать содержимое бекапа в BLOB не очень умно, да и не понятно зачем это надо. Видимо, чтобы потом вытянуть его на клиент. Хотя почему не External Table в самом деле.... Зачем External Table? Многие знают что есть проблема с обычными блобами, что от них пухнет база. Но если использовать isc_bpb_storage_temp, то база уже не пухнет: Код: pascal 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:25 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
17.04.2018 13:16, Hommer пишет: > Бэкапы хочется забирать быстро и удобно. > Как будете решать? :) gbak изначально умеет складывать бэкап на машину клиента. без анальных практик. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:25 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Hommer, у меня есть большие сомнения что BLOB в 100G можно вообще прокачать. Ты реально это пробовал? Ну и мегабольшие бекапы обычно запускают в фоне, а потом берут готовый файл. Никто ждать 100500 минут пока сделается бекап не будет. Как себя поведёт эта UDR если связь по интернету прервётся? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:28 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovHommerКак будете решать? :) Код: sql 1. 2. 3.
А с сервера себе забирать через ssh или ftp? :) Можно и так, если есть доступ к серверу. А если у сервера есть админ, то не факт что он даст вам запускать там что-то :) Вот dll-ку в папочку Firebird положить - это ну максимум на что он готов пойти :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:33 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Симонов ДенисHommer, у меня есть большие сомнения что BLOB в 100G можно вообще прокачать. Ты реально это пробовал? Вообще-то 100G пожатые 7-zip могут стать 15-ю или 10-ю, или парой гигов. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Закачивает блобами по 1000000 байт. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:38 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Мимопроходящий17.04.2018 13:16, Hommer пишет: > Бэкапы хочется забирать быстро и удобно. > Как будете решать? :) gbak изначально умеет складывать бэкап на машину клиента. без анальных практик. Осталось понять есть ли плюсы от экономии времени, трафика и размера файла на диске. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:48 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Мимопроходящий> Бэкапы хочется забирать быстро и удобно. > Как будете решать? :) gbak изначально умеет складывать бэкап на машину клиента. без анальных практик. Умеет. Но скорость падает в разы ввиду roundtrips на каждый sql-запрос ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:51 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
HommerА если у сервера есть админ, то не факт что он даст вам запускать там что-то :) Вот dll-ку в папочку Firebird положить - это ну максимум на что он готов пойти :) ...ээээ... т.е. положить на сервер скрипт, который он может прочитать и проверить, он не захочет а выложить на сервер shell exploit с непонятными внутренностями - запросто? это какой-то очень админский админ, чеc-слово ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:53 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
17.04.2018 13:51, Arioch пишет: > > Умеет. Но скорость падает в разы ввиду roundtrips на каждый sql-запрос шо ты мелешь... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:56 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
17.04.2018 13:48, Hommer пишет: > Осталось понять короче говоря - ты этого не знал... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:57 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
AriochУмеет. Но скорость падает в разы ввиду roundtrips на каждый sql-запросЕщё он умеет (не изначально) передавать файл (стрим) бекапа ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:57 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
HommerЗачем External Table? Многие знают что есть проблема с обычными блобами, что от них пухнет база. Но если использовать isc_bpb_storage_temp ....то мы начинаем пложить временные файлы со случайными названиями, которые нрапример в случае краха UDR-сервера останутся лежать на диске, скорее всего. Хотя не знаю, м.б. firebird/Win ставит этим файлам опцию авто-удаления, но тогда их 7-zip не враз откроет.... у ET же имя известное, фиксированное, и даже если мусор остался - его вполне можно почистить после перезапуска сервера. Да он и сам почистится, при следующшем запуске бакапа. Симонов ДенисВнимательно читаем какие типы поддерживаются External Table Ну и? в качестве двоичного буфера, array of int32, ET не так, чтобы сильно хуже. но за счёт своей добовости - предсказуемее. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 13:57 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Ariochт.е. положить на сервер скрипт, который он может прочитать и проверить, он не захочет Когда придёте положить второй-десятый раз, возможно будете чувствовать себя неловко :) Ariochа выложить на сервер shell exploit с непонятными внутренностями - запросто? Он вообще может вам доверять, но не быть готовым подрываться на каждую смену скрипта :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 14:03 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
hvladумеет (не изначально) ???? Умеет, но не изначально - это по типа "допиши себе свой firebird?" Локально запущенный gbak может сливать данные в stdout. Или в локальный файл. Но скорость его взаимодействия с сервером сравнительно небольшая. А "gbak" запущенный в сервере через Services API как правило заметно быстрее, но наружу кажется поток выдавать не умеет, SPB позволяет только в файл на сервере результат сложить, а потом "как хочешь так и читай". https://stackoverflow.com/questions/49476950 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 14:07 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
HommerAriochт.е. положить на сервер скрипт, который он может прочитать и проверить, он не захочет Когда придёте положить второй-десятый раз, возможно будете чувствовать себя неловко :) Ariochа выложить на сервер shell exploit с непонятными внутренностями - запросто? Он вообще может вам доверять, но не быть готовым подрываться на каждую смену скрипта :) и в чем разница - выложить 2-й/10-й раз скрипт или выложить 2-й/10-й раз новую сборку DLL ? ну тогда он просто делает вам возможность в специальную папку с ограниченными правами сливать скрипты или DLL без его личного участия ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 14:09 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Мимопроходящий17.04.2018 13:51, Arioch пишет: > > Умеет. Но скорость падает в разы ввиду roundtrips на каждый sql-запрос шо ты мелешь... "мопед не мой" (С) http://www.ibase.ru/gbak/#bsapi К слову, резервное копирование через Services API является самым быстрым, по сравнению с локальным протоколом или tcp ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 14:16 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
17.04.2018 14:16, Arioch пишет: > "мопед не мой" (С) но ведь это твой опус: "скорость падает в разы..." Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 14:24 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
AriochУмеет, но не изначально - это по типа "допиши себе свой firebird?" изначально не умел научился в 2.5.3 README.services_extension пункт 4 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 14:31 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Симонов Денис, точнее 2.5.2. В релизнотах ищи "Back Up to or Restore from a Remote Backup File" ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 14:33 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Симонов Денисизначально не умел научился в 2.5.3 А в тройке оно ещё и сжиматься при передаче умеет вместе со всем остальным траффиком. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 14:34 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovСимонов Денисизначально не умел научился в 2.5.3 А в тройке оно ещё и сжиматься при передаче умеет вместе со всем остальным траффиком. Это хорошо. Но иногда лучше (а иногда и быстрее) когда бэкап приходит в виде хорошо пожатого архива, а иногда лучше когда вместо бэкапа в архиве свежеотресторенная база :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 14:57 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
17.04.2018 14:57, Hommer пишет: > Это хорошо. Но иногда лучше (а иногда и быстрее) когда бэкап приходит в виде хорошо пожатого архива, а иногда лучше когда вместо бэкапа в архиве свежеотресторенная база :) лучше быть здоровым, но богатым. лучше водку пить, чем воевать. (С) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 15:10 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Мимопроходящий, на график посмотри, там падение в два с лишним раза на менее удачных для бэкапа БД будет еще больше ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 16:26 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
17.04.2018 16:26, Arioch пишет: > на график посмотри, там падение в два с лишним раза это граффити. на заборе. в статье этого нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 16:36 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Симонов ДенисAriochУмеет, но не изначально - это по типа "допиши себе свой firebird?" изначально не умел научился в 2.5.3 README.services_extension пункт 4 Ага, спасибо, совсем про это забыл, хотя задним числом вспоминаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 16:40 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Мимопроходящий, тот тест был локально на одном компе. Понятно, что gbak по сети а) будет передавать всю базу б) скорость передачи зависит от скорости (и качества) сети. Так что, гораздо быстрее будет - сделать бэкап через сервисы, запаковать бэкап, скачать архив. Вот только идея автора топика вызывать все это изнутри базы кажется мне странной, как минимум. Решение годилось бы для однопользовательских баз, но и там это делается проще без udr. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 17:09 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
17.04.2018 17:09, kdv пишет: > гораздо быстрее будет - сделать бэкап через сервисы, запаковать бэкап, скачать архив. ну вот зачем опять гонять сферического коня в абстрактном вакууме? вероятность встретить динозавра на улице по прежнему 0.5 Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 17:15 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
kdvгораздо быстрее будет - сделать бэкап через сервисы, запаковать бэкап, скачать архив. Вот в этом лично я не уверен. Пусть даже у FB протокол с маленьким окном и полным квитированием, пусть даже создание потока бэкапа и его сжатие не распараллеливается, но ты начинаешь получать куски сразу и как минимум распараллеливается создание бэкапа и его запись на локальный диск, а запись на серверный диск из процесса исключается. По крайней мере для тройки с полным фаршем. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 17:18 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Создание бэкапа в файле на отдельном локальном диске (существенно) минимизирует время собственно бэкапа. Т.е. максимально быстро "напрягли сервер" и уже потом "медленно и печально" пакуем и передаём. Хотя могут быть варианты - какой-нибудь lzs/lz4 пакует очень быстро и может оказаться быстрее записать уже "поджатое". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 17:37 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
Мимопроходящий, понятно, что это сферический конь. Разные диски на сервере и клиенте, скорость сети, мощность процессора для упаковки на сервере и клиенте, и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 18:10 |
|
udr-процедура: бэкап базы + рестор + упаковка 7z
|
|||
---|---|---|---|
#18+
kdvВот только идея автора топика вызывать все это изнутри базы кажется мне странной, как минимум. Зато просто, работает везде, не требует передачи логина или пароля, не требует указания имени базы. И задачу решает. Нужно только параметров добавить: - параметры бэкапа и рестора - метод и качество архивации - пароль на архив - рабочая папка для временных файлов - возможность не забирать результат работы - возможность не удалять результат работы - возможность положить в архив логи бэкапа и рестора - возможность выложить результат на ftp Что ещё может быть полезно? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 18:51 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561152]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 172ms |
0 / 0 |