Sql-Server

如何修復 log_reuse_wait_desc=LOG_BACKUP?無法進行日誌備份

  • March 16, 2016

我檢查了 sys.databases 以找出哪些數據庫需要 LOG 備份。令我驚訝的是,我有很多log_reuse_wait_desc=LOG_BACKUP意義,我為在這些數據庫上執行 LOG 備份而設置的 JOB 實際上並沒有創建 LOG 備份文件。

在進行了一些搜尋之後,有人建議將數據庫模式從 FULL 更改為 SIMPLE,然後再返回 FULL 以重置。這樣做之後,我仍然無法成功執行 LOG 備份。

我正在使用 SQL Server 2005,並使用此處http://ola.hallengren.com/sql-server-backup.html的 ola hallengren 備份方法。

謝謝

更新:我想通了!

因為 ola hallengren 腳本會檢查日誌傳送角色並在找到目前數據庫時跳過日誌備份

msdb.dbo.log_shipping_primary_databases

要麼

msdb.dbo.log_shipping_secondary_databases

而且因為我最近一直在使用的數據庫確實有舊的日誌傳送條目沒有被正確清除,所以這個腳本無法創建日誌備份。現在這一切都清理乾淨了,我們似乎很高興。

非常感謝所有花時間參與的人!-喬什

現在您已將數據庫上的恢復模式從完全更改為簡單並再次恢復為完全,數據庫正在“偽簡單”模式下執行。在日誌備份做任何有意義的工作之前,現在需要進行數據庫備份。有關更多詳細資訊,請參見此處。總結一下:

  • 為了使日誌備份對還原有用,需要有一個數據庫備份以及自該數據庫備份以來覆蓋所有 LSN 的日誌備份。
  • 當您將恢復模式更改為簡單時,SQL Server 會中斷日誌備份鏈。然後,當您將其更改回完整模式時,數據庫將繼續以簡單模式執行,直到有人通過數據庫備份創建新的日誌備份鏈。這稱為偽簡單模式。以這種方式實現的原因是為了防止有人進行永遠無法用於恢復的日誌備份,因為它們不是以數據庫備份開始的日誌備份鏈的一部分。
  • 進行數據庫備份後,將開始新的日誌備份鏈,並且數據庫開始以完整恢復模式執行。此時,您的日誌備份應該可以工作,或者至少由於其他原因而失敗,並出現更具描述性的錯誤。

這至少是您的日誌備份現在無法執行的原因之一。

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