2015-02-09 47 views
1

我下面在這個網站的例子: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

我相信即使您使用0分鐘,關機功能也不是立竿見影的。 您必須等待幾秒鐘才允許Firebird在關機和恢復之間釋放文件。

無論如何,我建議不要自行恢復數據庫。如果在備份或還原過程中出現問題,您將丟失數據庫... 您應該以不同的名稱還原,重命名原始文件,然後重命名還原的數據庫。

致以問候

+0

關機功能通常需要多長時間?我在關機命令後等了5分鐘,仍然收到「正在使用」的信息。 – GTHvidsten 2015-02-10 08:16:58

+0

此外,即使在完全關閉後,該文件仍然在使用中,因爲我無法移動或重命名數據庫文件。 – GTHvidsten 2015-02-10 08:41:28