Существует два основных способа создания резервных копий в Firebird:
- gbak, который создает логическую резервную копию базы данных (описания объектов (например, структура таблицы, представления и т. Д.) И данных)
- nbackup (также известный как nbak), который создает физическую резервную копию базы данных (физические страницы данных изменились с момента предыдущего nbackup)
В большинстве случаев я бы предложилиспользуйте gbak, потому что он проще и позволяет перемещать резервные копии между платформами и версиями Firebird, тогда как nbackup действительно подходит только для той же платформы и версии Firebird (но имеет преимущество, заключающееся в разрешении инкрементных резервных копий).
ISQL - это интерактивный CLI-запрос, который нельзя использовать для создания резервных копий.Fbsvcmgr - это инструмент Firebird Service Manager, который можно использовать для вызова операций службы на (удаленном) сервере Firebird.Это включает операции резервного копирования и восстановления через gbak и nbackup.Fbsvcmgr довольно низкоуровневый и сложный в использовании (варианты * см. fbsvcmgr -?
).
Для gbak вы обычно вызываете службы через исполняемый файл gbak (опция -se[rvice] <service>
), см. Также Удаленное резервное копирование и восстановление в документации gbak.Для nbackup вы можете либо использовать инструмент nbackup локально, либо вам нужно использовать fbsvcmgr (или другой инструмент, поддерживающий сервисные операции) для удаленного вызова той же функции (action_nbak
и action_nrest
), см. Также Резервное копирование наудаленные машины (Firebird 2.5 +) в документации по nbackup.
Подробное описание gbak см. в gbak - Утилита резервного копирования и восстановления Firebird .Информацию о nbackup смотрите в инструменте nbackup Firebird .
. При резервном копировании gbak вы обычно восстанавливаете базу данных, используя «create» (опция -c[reate]
) или «create» (-r[ecreate]
) без опции o[verwrite]
), которая завершится ошибкой, если файл базы данных уже существует.См. Также руководство gbak, ссылки на которое приведены выше, для получения дополнительной информации.
Я действительно не отвечу на ваш вопрос о том, как сделать это из приложения C ++, потому что я не программирую на C ++, и ваш вопрос уже слишком широк, так какявляется.Но знайте, что можно вызывать операции службы Firebird, включая резервное копирование и восстановление, используя gbak и nbackup, из кода C ++ (это, по сути, то, что делают сами инструменты Firebird).Если вы хотите узнать больше об этом, я бы посоветовал вам обратиться в список рассылки поддержки Firebird.