我正在配置实时备份和还原脚本,以便在主服务器和备用服务器上“复制”firebird dbs。备份执行良好:
"C:\Program Files\Firebird\Firebird_2_5\bin\nbackup" -B 0 "D:\testdb\LABORATORY_DB.FDB" D:\testdb\lab_FULL.fbk -user SYSDBA -pass masterkey -D OFF还将文件复制到远程服务器:
net use R: \\fbserv2\reserve
xcopy /Y D:\testdb\lab_FULL.fbk R:\ 但在偏僻的地方恢复
"C:\Program Files\Firebird\Firebird_2_5\bin\fbsvcmgr.exe" fbserv2:service_mgr -user SYSDBA -password masterkey -action_nrest -dbname d:\reservedb\LABORATORY_DB.FDB -nbk_file d:\reserve\lab_FULL.fbk 导致错误:
Error (80) creating database file: d:\reservedb\LABORATORY_DB.FDB via copying from: d:\reserve\lab_FULL.fbk还原数据库的唯一方法是在还原之前手动删除旧的d:\reservedb\LABORATORY_DB.FDB。GBAK可以选择覆盖restorig db文件,而fbsvcmgr似乎并非如此。还有别的选择吗?我错过了什么吗?
发布于 2016-07-02 07:24:36
不能使用nbackup在现有数据库上进行还原。你要么需要
还请参阅nbackup文档,第创建和恢复备份章。
如果指定的数据库文件已经存在,则还原失败,您将得到一条错误消息。
据我所知,不允许覆盖现有数据库是一个设计决定。Gbak确实有这样的选择,但仅仅是出于历史原因;如果它是今天建造的,它很可能就没有这个选择。
https://stackoverflow.com/questions/38157311
复制相似问题