首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 恢復體系結構核心:預寫日志(WAL)與事務日志雙重機制

     編輯:關於SqlServer

SQL Server 將事務日志分為過去部分(非活躍)與當前部分(活躍),配合預寫日志(Write-Ahead Log, WAL)機制,保證系統崩潰後能恢復到最後一個提交點。

關鍵概念

  • WAL 原則:數據頁修改必須先寫入日志,再寫入數據文件(延遲寫入)。提交事務時,只需保證日志落盤(Force Log),數據頁可稍後由 Checkpoint 刷盤。
  • 日志截斷:簡單恢復模式下 Checkpoint 後自動截斷非活躍部分;完整/大量日志模式需備份日志才能截斷。
  • 恢復階段:
    1. 分析階段:掃描日志確定最後 Checkpoint、活躍事務、脏頁列表
    2. 重做階段:從最早未完成事務開始,向前重放所有操作(含已提交與未提交)
    3. 回滾階段:針對未提交事務,向後撤銷其操作

實戰啟示

  • 日志文件不可隨意刪除/縮小,否則破壞恢復鏈
  • 長事務會阻塞日志截斷,導致日志暴增 → 監控 DBCC OPENTRAN
  • 高可用架構(鏡像、AlwaysOn)依賴日志傳輸與重放,理解 WAL 是排查同步延遲的基礎
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved