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

善用交易記錄檔解決 SQL Server 四大常見故障

     編輯:關於SqlServer

交易記錄檔 (LDF) 是災難恢復核心,四大經典應用場景:

故障一:伺服器意外關機導致資料遺失

  • SQL Server 採用 **WAL (Write-Ahead Logging)**:先寫記錄檔、再異步刷新資料頁。
  • 意外關機時,記憶體髒頁未寫入磁碟,但記錄檔已持久化。
  • 重啟時,**自動執行復原 (Recovery)**:
      • **Redo (重做)**:掃描記錄檔,將已認可交易重新應用至資料頁。
      • **Undo (回滾)**:將未認可交易回滾,確保一致性。
  • **關鍵**:記錄檔必須可用。若 LDF 損壞,需先修復/重建 LDF 再啟動,否則資料不一致。

故障二:生產/備份伺服器資料同步 (高可用)

兩大方案皆基於 **記錄檔複寫**:

  • 記錄傳送:多主庫可集中至單一備庫,節省資源。
  • 鏡像:高安全性模式交易延遲較大;高效能模式可能遺失資料 (非同步)。
  • **生產庫必須為完整/大量記錄復原模式**,簡單模式會中斷記錄鏈導致同步失效。

故障三:誤刪/誤更新資料的時間點復原

  • 完整備份 + 記錄檔備份 → 還原至誤操作前時間點 (STOPAT / STOPATMARK / STOPBEFOREMARK)。
  • 需 **完整復原模式** 且記錄檔備份完整無縫隙。
  • 大型資料庫可用 **檔案群組還原** 或 **頁面級還原** (Enterprise) 縮短 RTO。

故障四:硬體/儲存層故障導致資料頁損壞 (823/824/825 錯誤)

  • 自動頁面修復 (鏡像/AlwaysOn):副本偵測損壞頁 → 自動向主體請求健全頁面 → 替換修復,**零停機、零資料遺失**。
  • 手動頁面還原:RESTORE DATABASE ... PAGE = 'file_id:page_id' ... 從備份還原特定頁面。
  • DBCC CHECKDB REPAIR:最後手段,可能資料遺失。

總結

**記錄檔是 SQL Server 生命線**。確保:
1. 完整/大量記錄復原模式 + 定期記錄檔備份。
2. 記錄檔備份儲存於獨立儲存體/異地。
3. 定期演練還原至時間點、頁面級還原、鏡像容錯移轉。
4. 監控記錄檔增長、VDF 狀態、復原模式變更。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
方案機制模式限制特點
記錄傳送主庫備份記錄檔 → 傳送 → 備庫還原完整/大量記錄復原模式可一主多備、支援監視伺服器告警、延遲可控、切換需人工/腳本
資料庫鏡像主體同步發送記錄區塊 → 鏡像重做**僅完整復原模式**高安全性 (同步) / 高效能 (非同步)、自動容錯移轉 (需見證)、每資料庫獨立