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

SQL Server 記錄檔暴漲快速解決:標準收縮 vs 簡單模式切換法

     編輯:關於SqlServer

記錄檔(LDF)暴漲佔滿磁碟是常見營運事件。本文提供標準四步驟收縮法與極簡三步驟切換法,依風險承受度選擇。

標準收縮法(低風險、保留記錄鏈)

  1. 截斷記錄:BACKUP LOG DB_Name WITH NO_LOG(SQL 2005 以前)或切換 Simple 模式後 CHECKPOINT。
  2. 收縮檔案:企管/SSMS → 右鍵資料庫 → 工作 → 收縮 → 檔案 → 選記錄檔 → 指定目標 MB(介面會顯示最小可縮值)。
  3. 或 T-SQL:DBCC SHRINKFILE (LogFileName, TargetMB)
  4. 驗證:DBCC SQLPERF(LOGSPACE) 確認使用率降至個位數。

極簡切換法(極速、但斷開記錄鏈,需即時完整備份)

  1. 資料庫屬性 → 選項 → 復原模式設為 Simple。
  2. 右鍵資料庫 → 所有工作 → 收縮資料庫(或收縮檔案針對記錄檔)。
  3. 復原模式改回 Full(或 Bulk-Logged)→ 立即執行完整備份 重建記錄鏈。

高風險操作(不建議常規使用)

操作風險適用極端情況
分離 → 刪除 .ldf → 重新附加 .mdf未提交交易遺失、資料庫損壞、啟動失敗無備份、LDF 損毀、接受資料遺失
設定記錄檔 MAXSIZE 限制達上限後所有寫入失敗、服務中斷測試環境、嚴格配額控制

預防長效機制

  • 定期記錄檔備份:Full 模式下每 15-60 分鐘 BACKUP LOG。
  • 合理自動成長:固定增量 512MB/1GB,關閉百分比成長,設定 MAXSIZE。
  • 監控告警:log_reuse_wait_desc <> 'NOTHING' 或使用率 > 80% 發送告警。
  • 避免長交易:大量異動分批提交、使用 Bulk-Logged 模式。

操作前必檢

  • [ ] 最近一次完整備份時間?
  • [ ] 目前復原模式?
  • [ ] 是否有進行中的長交易?DBCC OPENTRAN
  • [ ] 磁碟剩餘空間是否足夠備份壓縮?

標準法雖步驟多,但保留時間點還原能力;極簡法適合緊急救火,務必記得「切回 Full → 立即完整備份」兩步驟不可省略。

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