交易記錄檔(LDF)若長期未備份或資料庫處於「完整復原模式」下,會持續增長,佔用大量磁碟空間,甚至導致資料庫無法寫入。本文提供三種經驗證有效的縮減方案。
-- 假設資料庫名為 MuOnline
BACKUP LOG MuOnline WITH NO_LOG;
BACKUP LOG MuOnline WITH TRUNCATE_ONLY;
DBCC SHRINKDATABASE(MuOnline);
-- 重複執行上述三行,直到記錄檔縮小至預期大小
-- 臨時開啟自動收縮(僅應急)
EXEC sp_dboption 'MuOnline', 'autoshrink', 'on';
-- 建立維護作業:每 30 分鐘記錄備份,每天完整備份
-- 記錄檔恢復正常大小後,關閉自動收縮
EXEC sp_dboption 'MuOnline', 'autoshrink', 'off';
注意:SQL Server 2008 及以上版本已移除 TRUNCATE_ONLY,請改用方法二或三。
簡單模式下,記錄檔會在檢查點自動截斷,不再無限增長。
MuOnline_log.LDF 重命名或移動備份(勿直接刪除,以防萬一)。MuOnline.mdf。系統會提示找不到記錄檔,詢問是否建立新記錄檔,選「是」。sp_change_users_login 或重新對應登入)。風險提示:此方法會導致未提交的交易遺失,且破壞記錄鏈,必須立即進行完整備份。僅在記錄檔損壞或空間極度不足且無法備份時使用。
DBCC SQLPERF(LOGSPACE)),設定警示。