首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 交易記錄檔滿處理方案:DUMP TRANSACTION 與收縮檔案雙法比較

     編輯:MySQL 資料庫相關知識

SQL Server 交易記錄 (.ldf) 滿導致寫入失敗 (Error 9002)。自動增長啟用時正常穩定,但特定情況會暴增。

常見暴增原因

  • 長時間未提交的交易
  • 超大單一交易
  • DBCC DBREINDEX、CREATE INDEX 大量記錄
  • 還原記錄備份時
  • 用戶端未處理完結果集
  • 未複寫的交易 (複寫環境)

方法一:標準清空 + 收縮 (推薦,安全)

  1. 查詢分析器執行:
    DUMP TRANSACTION 資料庫名 WITH NO_LOG
  2. 企業管理器 → 右鍵資料庫 → 所有工作 → 收縮資料庫 → 收縮檔案 → 選記錄檔 → 「收縮至 XX MB」輸入建議最小值 → 確定

方法二:分離刪除記錄檔再附加 (有風險,可能丟資料)

  1. 企業管理器 → 分離資料庫
  2. 刪除 .ldf 檔案
  3. 附加資料庫 (自動建立 500KB 新記錄檔)

警告:記錄檔非即時寫入資料檔,此法可能造成資料遺失。

防止再次暴增設定

  • 屬性 → 選項 → 故障復原模型 → 簡單模式 (Truncate log on checkpoint)
  • 或 SQL:ALTER DATABASE 資料庫名 SET RECOVERY SIMPLE
  • 啟用 Auto Shrink:未用空間超 25% 自動收縮 (需配合備份或簡單模式)

事後檢查

清空後務必確認資料庫屬性:復原模式、Auto Shrink 設定正確,防止再次滿載。

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