如何备份/还原Firebird数据库?

时间:2019-02-03 15:24:45

标签: backup firebird restore

我对Firebird v2.5备份/还原过程感到非常困惑。我应该使用什么来备份/还原本地Firebird数据库: fbsvcmgr.exe gbak.exe isql.exe nbackup.exe

是所有这些选项,还是我在某些事情上错了!

对于C ++应用程序,实用的方法是什么?

我应该如何第一次知道数据库是否已经存在,所以我可以决定是否还原它。

2 个答案:

答案 0 :(得分:1)

我通常使用gbak(不了解其他)。

备份

gbak -b -v-用户SYSDBA-密码“万能钥匙” D:\ database.FDB E:\ database.fbk

还原

gbak -c-用户SYSDBA-密码主密钥E:\ database.fbk E:\ database_restore.fdb

如果存在要还原的文件,则可以使用gbak restore标志进行还原 -c =创建新文件 -r =替换文件

以下是用于FB备份/还原的好页面:http://www.destructor.de/firebird/gbak.htm

答案 1 :(得分:0)

在firebird中创建备份的主要方法有两种:

  • gbak,它创建数据库的逻辑备份(对象“描述”(例如表结构,视图等)和数据)
  • nbackup(也称为nbak),它创建数据库的物理备份(自上次nbackup以来物理数据页已更改)

在大多数情况下,我建议使用gbak,因为它更简单,并且还允许您在平台和Firebird版本之间移动备份,而nbackup仅真正适用于相同的平台和Firebird版本(但具有允许增量备份的优势)。

ISQL是一个交互式查询CLI,不能用于创建备份。 Fbsvcmgr是“ Firebird服务管理器”工具,可用于在(远程)Firebird服务器上调用服务操作。这包括通过gbak和nbackup进行的备份和还原操作。 Fbsvcmgr非常低级且难以使用(有关选项,请参见fbsvcmgr -?)。

对于gbak,通常可以通过gbak可执行文件(选项-se[rvice] <service>)调用服务,另请参见gbak文档中的Remote Backups & Restores。对于nbackup,您可以在本地使用nbackup工具,也可以使用fbsvcmgr(或支持服务操作的其他工具)远程调用相同的功能(action_nbakaction_nrest),另请参见{ {3}}在nbackup文档中。

有关gbak的详细说明,请参见Backups on remote machines (Firebird 2.5+)。有关nbackup,请参见gbak - Firebird Backup & Restore Utility

使用gbak备份时,通常可以使用“创建”(选项-c[reate])或“重新创建”(-r[ecreate] o[verwrite]”来还原数据库选项),如果数据库文件已经存在,则失败。有关更多信息,另请参见上面链接的gbak手册。

由于我不对C ++进行编程,因此我不会真正回答您有关如何从C ++应用程序执行操作的问题,而您的问题已经太广泛了。但是请注意,可以从C ++代码调用Firebird服务操作,包括使用gbak和nbackup进行备份和还原(这实际上是Firebird工具本身所做的)。如果您想进一步了解,建议您在firebird-support邮件列表中询问。