备份方式:
1. 使用 Firebird 自己带的备份工具 gbak.exe;
2. 使用 Firebird 自己带的备份工具 nbackup.exe;
3. 使用 Firebird 自己带的备份工具 fbsvcmgr.exe;
4. 在 Delphi 里面,使用 FireDAC 的控件:TFDFBNBackup 和 TFDFBNRestore 做备份和还原。
各种方式的特性
(本人亲自测试的结果)
1. 使用 Firebird 自己带的备份工具 gbak.exe:
- 可以跨网络执行,将远程数据库服务器上的数据,备份到执行 gbak 命令的本地机器的备份文件里面。反之可以将本地备份文件还原到远程数据库服务器。
- 不支持增量备份。
2. 使用 Firebird 自己带的备份工具 nbackup.exe;
- 可以增量备份 、还原;
- 只能在数据库服务器上执行,备份的文件也只能写在数据库服务器本机上;不能跨网络执行;
3. 使用 Firebird 自己带的备份工具 fbsvcmgr.exe;
使用这个工具,可以在本机执行命令,对远程数据库服务器进行 nbackup 的操作。同样,备份的文件只能写到远程数据库服务器的文件夹里面,不能把远程数据库服务器的数据的备份文件写到执行这个命令的本地机器上。
4. 在 Delphi 里面,使用 FireDAC 的控件:TFDFBNBackup 和 TFDFBNRestore 做备份和还原。
使用控件可以写自己的备份逻辑以及 GUI 界面。特性和 3 相同。可以增量,也可以对远程数据库服务器进行操作,但备份结果文件只能是写在远程数据库服务器的文件夹里面。
具体的命令行代码
以下代码测试通过
gbak 的备份和还原
gbak.exe -b 192.168.1.129:D:\TEST_D10.4\TESTDB\ATEST2.FDB D:\BackupTool\Temp\test.fbk -user sysdba -password masterkey //这句话是把远程服务器上的数据库备份到本地文件
gbak.exe -r D:\BackupTool\Temp\test.fbk 192.168.1.129:D:\TEST_D10.4\TESTDB\ATEST3.FDB -user sysdba -password masterkey //这句话把本地文件恢复到远程服务器上了。测试通过。
使用 fbsvcmgr 对远程数据库的备份操作
fbsvcmgr 192.168.1.129:service_mgr -user sysdba -password masterkey -action_nbak -nbk_level 0 -dbname D:\TEST_D10.4\TESTDB\ATEST2.FDB -nbk_file D:\TEST_D10.4\TESTDB\test.nbk