Sql-Server
如果不存在完整備份,則事務日誌備份失敗
……至少我是這麼認為的。
我最近在我的開發伺服器上修改了我的備份常式。我為使用者數據庫創建了一個維護計劃,該計劃在全天的關鍵點執行一些每周清理任務、每日完整備份和事務日誌備份。
一切都執行良好,直到今天收到一封電子郵件,通知我午餐時間備份失敗。日誌查看器並沒有透露太多,除了一定數量的數據庫已完全備份成功,在結束日誌條目之前:
[snipped] Source: ... The package execution fa... The step failed.
不完全暴露
我突然想到,與以前的嘗試相比,唯一的變化是今天早上我創建了一個新的(小而不起眼的)數據庫。
我重新啟動了 SQL Server 代理,並嘗試手動重新執行(事務日誌備份)步驟,但它再次失敗。
但是,執行完整備份步驟(從而為我的新數據庫創建第一個完整備份)有效 - 此外,再次重新執行事務日誌備份步驟也有效。
由於缺少完整備份或以前的事務日誌備份,事務日誌備份似乎很困難。
這是預期的行為嗎?一方面,在原始層面上這種做法是有道理的,但實際上,我希望它能夠更優雅地處理這種情況。
如果是這樣,有沒有辦法自動處理這個?這種情況不會經常發生,但我不能指望我在創建數據庫時記得備份它,尤其是因為它僅處於開發的早期階段。
如果不是,這種行為的可能原因是什麼?我可以避免嗎?
是的,這是預期的行為。為了使事務日誌有用,需要有一個完整的備份作為前滾的起點。
不要太擔心它。如果你創建一個新的數據庫,第一天你就會得到那個錯誤。如您所見,其他數據庫的日誌備份將成功,但該錯誤只會使它看起來像步驟失敗,而實際上只有一個數據庫失敗。然後,那天晚上(或任何時候),它將進行完整備份。之後,新數據庫的跨日誌備份將成功。基本上,在完整備份作業執行之前,您在創建新數據庫時會有一天或錯誤。