Backup
冒險使用多個 Firebird nbackup -L 是否安全?
我每晚都在使用 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 對文件使用排他鎖)。