无法还原数据库备份(“数据库可以使用”即使关机后)

问题描述:

我下面在这个网站的例子:http://www.firebirdsql.org/manual/gbak-recipies.html无法还原数据库备份(“数据库可以使用”即使关机后)

更具体而言,以下三个命令:

tux> gbak -backup employee /backups/employee.fbk 
tux> gfix -shut -tran 60 employee 
tux> gbak -replace /backups/employee.fbk employee 

我有替换命令以符合我的数据结构,然后命令如下:

gbak.exe -user SYSDBA -pas masterkey -backup C:\Database\MyDB.fdb C:\Temp\DbBackup.fbk 
gfix -user SYSDBA -pas masterkey -shut single -force 0 "C:\Database\MyDB.fdb" 
gbak -user SYSDBA -pas masterkey -replace C:\Temp\DbBackup.fbk C:\Database\MyDB.fdb 

将备份创建到C:\ Temp。 有时候关机命令不工作,我固定,通过确保数据库实际上是将其关闭之前在线:

gfix -user SYSDBA -pas masterkey -online C:\Database\MyDB.fdb 

然而,即使没有关闭数据库时的错误,总是恢复抱怨:

gbak: ERROR:could not drop database c:\Database\MyDB.fdb (database might be in use) 
gbak:Exiting before completion due to errors 

为什么在数据库关闭时这样做?


我也试图与full代替single关闭数据库。还原则提供了以下错误,而不是:

gbak: ERROR:invalid database handle (no active connection) 
gbak:Exiting before completion due to errors 
gbak: ERROR:invalid database handle (no active connection) 

我的猜测是因为数据库完全关闭,并允许无连接,因此少了一个东西来检查。

我相信即使您使用0分钟,关机功能也不是立竿见影的。 您必须等待几秒钟才允许Firebird在关机和恢复之间释放文件。

无论如何,我建议不要自行恢复数据库。如果在备份或还原过程中出现问题,您将丢失数据库... 您应该以不同的名称还原,重命名原始文件,然后重命名还原的数据库。

致以问候

+0

关机功能通常需要多长时间?我在关机命令后等了5分钟,仍然收到“正在使用”的信息。 – GTHvidsten 2015-02-10 08:16:58

+0

此外,即使在完全关闭后,该文件仍然在使用中,因为我无法移动或重命名数据库文件。 – GTHvidsten 2015-02-10 08:41:28