S-market без слез. Создание резервной копии базы данных. Часть первая.



Первым делом все бэкапить, а настраивать потом! Отличный девиз. В руководстве администратора Firebird написано: "Администратор должен делать резервную копию базы данных при каждом возможном случае". Ну я не призываю бэкапиться раз в 15 минут, давайте рассмотрим создание бэкапа раз в сутки. Для начала привожу текст файла сценария *.cmd при помощи которого и будет производиться резервное копирование.

net stop FirebirdServerDefaultInstance
 net start FirebirdServerDefaultInstance
 net start FirebirdServerGuardianDefaultInstance
 net use z: \\<имя другого компьтера>\Arhiv
 C:
 cd "C:\Program Files\Firebird\Firebird_2_5\bin"
 gbak -B -T <имя компьтера>:D:\S-market\DBase\smarket.fdb D:\S-market\DBase\smarket.gbk -user SYSDBA -password masterkey 
 copy D:\SMDK\DBase\smarket.gbk z:\smarket.gbk
 d:\smdk\rar.exe a -ag[yyyy_mm_dd] -m5 -o+ -md4096 z:\!_FB_smBKP_.rar z:\Arhiv\smarket.gbk
 del z:\Arhiv\smarket.gbk
 net use z: /delete
 net stop FirebirdServerDefaultInstance
 net start FirebirdServerDefaultInstance
 net start FirebirdServerGuardianDefaultInstance

Теперь по порядку.

net stop FirebirdServerDefaultInstance
 net start FirebirdServerDefaultInstance
 net start FirebirdServerGuardianDefaultInstance

Перезапуск служб Firebird. На всякий случай, как говорится. Далее net use z: \\имя другого компьтера\Arhiv - это подключение расшаренной папки на другом компьютере в локальной сети. Подобный подход надежнее, чем хранение файлов тут же, пусть и на отдельном жестком диске. Команды:
cd "C:\Program Files\Firebird\Firebird_2_5\bin"
 gbak -B -T <имя компьтера>:D:\S-market\DBase\smarket.fdb D:\S-market\DBase\smarket.gbk -user SYSDBA -password masterkey 

Создают непосредственно файл бэкапа *.fbk Это так называемый транспортируемый формат резервной копии БД. Путь C:\Program Files\Firebird\Firebird_2_5\bin\ выглядит в зависимости от версии Firebird. Для версии 2.1 ...Firebird_2_1\bin\
Осталось только заархивировать файл и скопировать его на сетевой диск. Тут придется сначала копировать, а потом сжимать:
 copy D:\SMDK\DBase\smarket.gbk z:\smarket.gbk
 d:\smdk\rar.exe a -ag[yyyy_mm_dd] -m5 -o+ -md4096 z:\!_FB_smBKP_.rar z:\Arhiv\smarket.gbk

Имя файла будет состоять из даты создания файла и !_FB_smBKP_.rar Чтобы не спалить наши копии, отключаем сетевой диск:
 del z:\Arhiv\smarket.gbk

И перезапускаем БД:
 net stop FirebirdServerDefaultInstance
 net start FirebirdServerDefaultInstance
 net start FirebirdServerGuardianDefaultInstance

При помощи планировщика заданий, вызываем наш сценарий в удобное время. Лучше всего замерить время работы бэкапа и запускать его перед началом рабочего дня.