我真的在这里感到困惑火鸟2.5版的备份/恢复过程。我应该使用什么样的备份/恢复本地Firebird数据库:fbsvcmgr.exe,gbak.exe,ISQL.EXE或nbackup.exe
这些是所有选项或我错了什么事!
什么是做一个C ++应用程序的实际方法是什么?
我怎么知道,如果一个数据库已经存在的第一次,所以我可以决定是否恢复与否。
有在火鸟创建备份两种主要方式:
在大多数情况下,我建议使用GBAK,因为它更简单,也可以让你移动平台和火鸟版本之间的备份,而使用nbackup是唯一真正适用于同一平台和Firebird的版本(但允许的优势增量备份)。
ISQL是一个交互式查询CLI,并且不能用于创建备份。 Fbsvcmgr是“火鸟服务管理器”的工具,其可以用于一个(远程)火鸟调用服务器上的服务操作。这包括备份,并通过GBAK和使用nbackup恢复操作。 Fbsvcmgr是相当低的水平,很难使用(见fbsvcmgr -?
的选项)。
对于GBAK,你通常调用通过GBAK可执行文件(选项-se[rvice] <service>
)的服务,也Remote Backups & Restores看到GBAK文档。对于使用nbackup你要么可以在本地使用使用nbackup工具,或者您需要使用fbsvcmgr(或支持服务操作的另一种工具)远程(action_nbak
和action_nrest
)调用相同的功能,也看到了使用nbackup文档中Backups on remote machines (Firebird 2.5+)。
有关GBAK详细说明,请参见gbak - Firebird Backup & Restore Utility。对于使用nbackup,看到Firebird's nbackup tool。
随着GBAK备份,你会用“创造”(选项-c[reate]
)或“重新创建”(-r[ecreate]
不o[verwrite]
选项),如果数据库文件已经存在,它就会失败恢复正常的数据库。另见上面链接以获取更多信息GBAK手册。
我不会真正回答你关于如何从C ++应用程序做的问题,因为我不计划C ++,和你的问题已经太广,因为它是。但是要知道,这是可以调用火鸟服务操作,包括备份和同时使用GBAK恢复和使用nbackup,从C ++代码(即本质上是什么火鸟工具本身做的)。如果您想了解更多关于这一点,我会建议你问Firebird支持邮件列表。
我通常使用GBAK(不知道其他人)。
备用
GBAK -b -v -user SYSDBA -password “masterkey” d:\ database.FDB E:\ database.fbk
恢复
GBAK -c -user SYSDBA -password masterkey E:\ database.fbk E:\ database_restore.fdb
如果文件存在恢复你可以用GBAK做恢复标志-c =创建新的文件-r =替换文件
这里是FB备份好页/恢复:http://www.destructor.de/firebird/gbak.htm