Организация Backup/Restore с удалённого клиента. FB+FIBPlus
От: MEV  
Дата: 24.04.06 13:22
Оценка:
К сожалению на форуме так и не нашёл алгоритма для организации backup/restore c удалённого клиента для Firebird. Предполагается что к серверу клиенты имеют доступ только по TCP. (никакой шары и пр.)

Необходимо реализовать корректный механизм backup/restore с клиента.
Для работы с FireBird используются компоненты FIBPlus.
Т.к. делать restore в рабочую базу КАТЕГОРИЧЕСКИ не рекомендуется, то после backup выполняется restore во временный fdb-шник с другим именем. Потом основную базу можно dropнуть, но временный fdb, как я понимаю, переименовать средствами firebirda нельзя (или всё таки можно?).
Т.к. доступа к папке с файлами БД у клиента нет, то и его средствами переименовать временный fdb-шник не получится.

В общем, родился простенький алгоритм для решения этой проблемы.
1. Создаётся дополнительный fdb (dbname.fdb), в котором хранится имя основного fdb.
2. Для соединения с основным fdb, клиент сначала коннектится к dbname.fdb, получает имя основного fdb, после чего к нему и коннектится.
3. Алгоритм backup/restore выглядит следующим образом :
3.1 Делаем backup и restorим его в dd_mm_yy.fdb (т.е. новый fdb имя которого получаем по определённому алгоритму)
3.2 Переписываем в dbname.fdb имя основной fdb на dd_mm_yy.fdb.
3.3 Делаем drop старого fdb.

Вопрос в том, не изобретаю ли я велосипед?
________________________________________________________________
Laugh and the world laughs with you. Weep and you weep alone.(с) Oldboy
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.