我对Firebird v2.5备份/还原过程感到非常困惑。我应该使用什么来备份/还原本地Firebird数据库: fbsvcmgr.exe , gbak.exe , isql.exe 或 nbackup.exe
是所有这些选项,还是我在某些事情上错了!
对于C ++应用程序,实用的方法是什么?
我应该如何第一次知道数据库是否已经存在,所以我可以决定是否还原它。
答案 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,因为它更简单,并且还允许您在平台和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_nbak
和action_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邮件列表中询问。