Sql-Server

不寫檢查點記錄會損壞任何東西嗎?

  • March 6, 2017

我收到了警報

事件 ID:3619。無法在數據庫“ID ####”中寫入檢查點記錄,因為日誌空間不足

我知道它為什麼會發生,我已經解決了這個問題,備份了 t-logs,縮小了過度增長的日誌,並且盡我所能確保它不會再次發生。導致日誌填滿的問題是索引重建。

除了檢查點沒有被寫入和特定的索引重建沒有完成之外,我沒有看到任何其他問題。

失敗的檢查點寫入(本身)是否會導致我可能需要解決的任何損壞?

參考檢查點 (Transact-SQL)

檢查點程序將記錄寫入日誌以允許數據庫恢復程序(在啟動數據庫時使用)作為基準時間點。換句話說,恢復過程只查看自日誌中存在的最後一個檢查點記錄以來的日誌記錄。日誌中記錄的項目允許 SQL Server 回滾或前滾在 SQL Server 實例關閉或失敗時未完全送出的事務。

我會進行完整的數據庫備份和日誌備份,以確保您的備份鏈中有一個最近的檢查點。

檢查點的 MSDN 頁面

檢查點創建一個已知的良好點,SQL Server 數據庫引擎可以在意外關閉或崩潰後的恢復期間從該點開始應用日誌中包含的更改。

對於自動、手動和內部檢查點,只有在最新檢查點之後所做的修改需要在數據庫恢復期間前滾。這減少了恢復數據庫所需的時間。

所以,直接回答你的問題;如果無法寫入檢查點,日誌中包含的較早檢查點將用作恢復的基點。本質上,您收到的錯誤應該被視為您已用完日誌空間的警告。

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