Backup

冒險使用多個 Firebird nbackup -L 是否安全?

  • January 13, 2020

我每晚都在使用 Firebird 3.0 nbackup 來鎖定 + 複製 + 解鎖。

如果某些步驟失敗或被跳過,例如由於系統重新啟動(更新),可能會發生主伺服器未解鎖(-N)的情況。第二天晚上,它已經處於鎖定狀態,但計劃的備份任務將再次鎖定它(-L)。

這安全嗎?

第二個 -L 會不會有任何影響,或者它是無操作的,所以單個解鎖 (-N) 會將其恢復到正常狀態?或者如果它已經處於鎖定狀態,我是否必須防止第二個鎖定(-L)?

nbackup -L在數據庫已鎖定時執行將產生錯誤(並且執行檔將返回退出程式碼 1 而不是 0):

[
PROBLEM ON "begin backup".
unsuccessful metadata update
-ALTER DATABASE failed
-Database is already in the physical backup mode
SQLCODE:-607
]

在這種情況下,Firebird(或 nbackup)不會更改數據庫狀態中的任何內容。因此鎖定的數據庫將保持鎖定狀態。

理論上繼續會很好(因為數據庫被鎖定),但我認為忽略錯誤並繼續是一個好主意,因為它可能是與此不同的錯誤。因此,為了進行正確的錯誤檢查,您需要檢查錯誤是Database is already in the physical backup mode不是其他錯誤。

ALTER DATABASE BEGIN BACKUP順便說一句,您可以使用andALTER DATABASE END BACKUP實現相同的效果,這也適用於 SuperServer 模式(因為該nbackup工具需要直接文件訪問,而 SuperServer 對文件使用排他鎖)。

引用自:https://dba.stackexchange.com/questions/257259