SQL Server 交易記錄檔(LDF)持續增長是資料庫管理員常見的頭痛問題。雖然縮減記錄檔的方法網路上不乏其人,但「治標不治本」終非長久之計。本文將深入探討如何從根本上防止記錄檔持續膨脹,並比較兩種主要策略的優劣與適用場景。
最直接的做法是將資料庫的復原模式設為「簡單」(Simple Recovery Model)。在 SQL Server 2000 中,此設定會讓資料庫在每次檢查點(Checkpoint)時自動截斷非作用中的記錄檔空間,從而避免記錄檔持續增長。
EXEC sp_dboption 'your_dbname', 'trunc. log on chkpt.', 'TRUE'
啟用簡單復原模式後,資料庫將**無法進行交易記錄備份**,也就意味著發生誤操作(如誤刪資料、資料損毀)時,**無法利用記錄檔進行時間點還原**。除非您有極充分的理由(如測試環境、資料可輕易重建),**絕對不建議在生產環境資料庫上使用此模式**。
SQL Server 設計機制:完成交易記錄備份後,會自動截斷記錄檔中已提交交易所佔用的非作用空間,並重複使用該空間,從而避免記錄檔無限增長。這才是生產環境的標準解決方案。
為了兼顧資料安全與磁碟空間,建議制定包含完整備份與記錄備份的週期性維護計畫:
透過「資料庫維護計畫精靈」即可輕鬆建立上述排程。**切記務必設定備份檔案的保留期限**,否則備份檔案本身會佔滿磁碟,導致新問題。
| 策略 | 優點 | 缺點 | 適用場景 |
|---|---|---|---|
| 簡單復原模式 | 設定簡單、記錄檔不增長 | 無法時間點還原、資料風險極高 | 開發/測試環境、資料可重建的非核心資料庫 |
| 定期記錄備份 | 支援完整復原、RPO 可控制在分鐘級 | 需規劃備份儲存空間與排程 | 所有生產環境資料庫(強烈建議) |
資料無價,備份為本。請務必為生產資料庫建立完善的備份與還原策略,而非單純追求記錄檔不增長而犧牲資料可恢復性。