Firebird удаленное резервное копирование

Я хочу сделать резервную копию базы данных Firebird. Я использую утилиту gbak.exe. Работает нормально.

Но когда я хочу сделать резервную копию с удаленного компьютера, файл резервной копии сохраняется в файловой системе serveur. Есть ли способ заставить утилиту gbak загрузить файл резервной копии?

Спасибо

6 ответов

Резервная копия хранится на сервере Firebird

gbak -b -service remote_fb_ip:service_mgr absolute_path_to_db_file absolute_path_to_backupfile -user SYSDBA -pass masterkey

Резервная копия хранится на локальной машине

gbak -b  remote_fb_ip:absolute_path_to_db_file path_to_local_file -user SYSDBA -pass masterkey

см.: локальное резервное копирование удаленного сервера и документация gbak

Перенос удаленной базы данных на другой удаленный компьютер всегда является проблемой. Для этого наш институт использует Handy Backup (также для приложений на базе Firebird), но если вы предпочитаете GBAK, это еще несколько способов сделать это.

Самый простой метод - это прямой вызов удаленной базы данных с локального компьютера с использованием GBAK (я вижу, что это уже было описано до меня). Другой метод - установка GBAK на удаленную машину с использованием административных инструментов для сетей Windows. Этот метод может быть сложным, так как в сетях со смешанной архитектурой (с доменными и не доменными участками) всегда существуют некоторые препятствия.

Следовательно, самый простой способ - написать файл сценария резервного копирования (пакетной обработки), вызывающий GBAK, а затем скопировать полученный файл Firebird в другое место назначения в сети, используя сетевой файловый менеджер из командной строки или FTP-менеджер, например FileZilla. Это требует некоторых (минимальных) навыков и исследований, но может успешно работать много раз после успешного тестирования.

С наилучшими пожеланиями!

Я полагаю, что вы сможете это сделать, если для резервного копирования будете использовать диспетчер служб и указать stdout в качестве файла резервной копии. В этом случае файл должен быть передан клиенту gbak, и вы можете записать его на диск с перенаправлением.

gbak -backup -service hostname:service_mgr employee stdout > backupfile.fbk

Однако я не уверен на 100%, работает ли это на самом деле, поскольку в документации gbak об этом не говорится. Я проверю это и исправлю свой ответ позже на этой неделе.

Если у вас есть локальный gbak, вы можете выполнить резервное копирование по сети. Просто укажите имя хоста перед базой данных.

Например:

gbak -B 192.168.0.10:mydatabase mylocalfile.fbk -user SYSDBA -password masterkey

Мой ответ не о резервном копировании, а о восстановлении, но все же может быть кому-то полезен. Если у вас Windows, удаленное сетевое расположение и вы хотите восстановить резервную копию из удаленного файла .fbk в удаленное расположение через локальный компьютер, вы можете использовать этот метод:

  1. На вашей локальной машине Windows (на которой у вас установлена ​​СУБД) выполните:

mklink /D C:\LinkName \\NetworkLocation\LocationName

напримерmklink /D C:\my_share \\10.11.11.123\Some_share

Таким образом, на вашем местном"C:\"на диске будет создана символическая ссылкаmy_shareуказал на сетевое местоположение.

  1. На вашем локальном компьютере с Windows выполнитеgbakтакая команда:

"C:\Program Files\...\gbak.exe" -c -v -n "\\10.11.11.123\Some_share\...\someBackup.fbk" "C:\my_share\...\someRestore.fdb" -user sysdba -password masterkey

К вашему сведению: в моих примерах адрес10.11.11.123IP вашего сетевого местоположения.

Попробуйте эту команду:

"C:\Program Files (x86)\Firebird\Firebird_2_5\bin\gbak" -v -t -user SYSDBA -password "masterkey" 192.168.201.10:/database/MyDatabase.fdb E:\Backup\BackupDatabase.fbk

Конечно, вы должны обновить свои пути соответственно:)

Другие вопросы по тегам