×

Резервирование БД в СУБД Firebird

 
Резервное копирование БД проводится инструментами СУБД использующейся в проекте. В большинстве случаев - Firebird. Для этого в Firebird присутствует приложение gbak.
Для периодического использования рекомендуется создать пакетный файл, в котором пропишите текст для резервирования/восстановления. Разовый запуск может быть произведёт из командной строки.
 
Резервное копирование
 
Формат командной строки:
gbak <опции> <база данных> <резервная копия>
 
Пример:
"C:\Program Files (x86)\Firebird\bin\gbak.exe"  -b -g -v -user SYSDBA -pass masterkey SERVER:C:\DB-ENTELS\dispatcher.fdb D:\BackUp\dispatcher_%date%.fbk
 
где:
"C:\Program Files (x86)\Firebird\bin\gbak.exe" - путь запуска утилиты gbak; Путь к утилите содержит пробелы, поэтому он заключён в кавычки.
  -user SYSDBA -pass masterkey - данные пользователя Firebird: логин и пароль. Если пароль был изменён - пропишите его.
-b -v -g - опции:
  • -b - основная опция при создании резервной копии (backup).
  • -v  -вывод полного лога процесса на экран.
  • -g - отключить уборку мусора. Ускоряет создание резервной копии.
  • -y "Путь к файлу" - сохранять вывод лога в файл.
SERVER:C:\DB-ENTELS\dispatcher.fdb - путь к БД, которую собираемся резервировать. Если путь содержит пробелы - заключаем в скобки. При локальном резервировании сервер можно не указывать.
D:\BackUp\dispatcher_%date%.fbk - путь для создания резервной копии, а так же имя файла резервной копии. Если путь содержит кавычки - заключаем в скобки.
  • _%date% -добавляет дату создания бэкапа к имени файла.
 
Все возможные параметры можно посмотреть запустив утилиту gbak со знаком вопроса (-?)
 
Восстановление
 
Командная строка для восстановления БД аналогична команде резервного копирования, за исключением использования ключей.
 
Пример:
"C:\Program Files (x86)\Firebird\bin\gbak.exe" -c -v -user sysdba -passw masterkey "D:\BackUp\DB\DB.FBK" "D:\Entek\Projects\АСКУЭ\base\DB.fdb"
 
где:
"C:\Program Files (x86)\Firebird\bin\gbak.exe" - путь запуска утилиты gbak; Путь к утилите содержит пробелы, поэтому он заключён в кавычки.
-c  создание новой БД.
-v  -вывод полного лога процесса на экран
 -user SYSDBA -pass masterkey - данные пользователя Firebird: логин и пароль. Если пароль был изменён - пропишите его.
"D:\BackUp\DB\DB.FBK" - Путь к резервной копии БД.
"D:\Entek\Projects\АСКУЭ\base\DB.fdb" - Путь к БД восстановленной из резервной копии.
 
Дополнительные рекомендации
 
  • Если путь к вашему проекту содержит русские буквы, используйте кодировку OEM866 в создаваемых  bat-файлах.
  • Если вы не указали сервер, Firebird 2.5 будет подключаться к локальному серверу через XNET, в то время как Firebird 3.0 и выше по умолчанию использует встроенный движок. Поэтому в FB V3добавляйте "localhost:" в пути к создаваемой БД: "localhost:C:\MyFolder\Restore.fdb" или "inet://localhost/C:\MyFolder\Restore.fdb" (оба используют TCP / IP).
  • Учитывайте, что папка, в которой будет создан новый файл, может быть защищена Операционной системой, поэтому необходимо запускать процесс от имени Администратора.
  • Всегда, при восстановлении БД  создавайте новый файл. Не перезаписывайте существующий!
  • Автоматизируйте процесс резервного копирования через использование Планировщика Windows.
  • Научитесь восстанавливать БД до возникновения необходимости в этом действии.
 
 
Справочная система создана в Dr.Explain