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

SQL Server 交易記錄檔維護全攻略:備份、截斷、壓縮與災難恢復

     編輯:關於SqlServer

交易記錄檔角色

  • 記錄資料庫所有變更,獨立檔案儲存
  • 每筆交易從開始到 COMMIT/ROLLBACK 全程記錄
  • 每資料庫至少一個記錄檔 + 一個資料檔

運作機制

  • 資料修改先寫入緩衝區,立即寫入記錄檔,資料檔延後寫入(效能考量)
  • 檢查點標記哪些交易已寫入資料檔
  • 服務重啟時,從最新檢查點向前重做、向後回滾未完成交易,保證 ACID

常見問題:記錄檔失控膨脹

  • 預設「不限大小」→ 佔滿磁碟 → 資料庫停擺
  • 疏於備份 → 非作用記錄無法覆寫 → 持續增長

維護三部曲

  1. 定期記錄檔備份:標記舊記錄為非作用 → 新記錄覆寫舊位置,防止膨脹
  2. 簡單復原模式:無法定期備份時啟用,每檢查點自動截斷非作用記錄
  3. 壓縮記錄檔:
    • DBCC SHRINKDATABASE 壓縮當前資料庫記錄檔
    • DBCC SHRINKFILE 壓縮指定記錄檔
    • 啟用 AUTO_SHRINK(生產環境慎用,易造成碎片)

    壓縮流程:標記非作用 → 物理刪除 → 釋放磁碟空間。建議離峰時段執行避免影響效能。

資料庫還原流程

  1. 先還原資料檔(勿設為完成狀態)
  2. 依序套用記錄檔備份(按建立時間順序)
  3. 達到目標時間點 → 設為完成,資料庫上線

進階:Log Shipping 熱備份

  • 自動將記錄檔備份傳送至備援伺服器並還原(STANDBY 模式)
  • 監視伺服器定期檢查傳送訊號,逾時寫入事件記錄 → 觸發告警
  • 常作為災難恢復方案核心組件

總結

「備份 → 截斷 → 壓縮」三步走,搭配適當復原模式與 Log Shipping,讓交易記錄檔從隱形炸彈變成可控資產。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved