交易記錄檔 (LDF) 暴增佔滿磁碟是經典營運事件。本文提供三種清理方案,依風險與適用場景分級。
EXEC sp_detach_db 'DBName';DBName_log.ldf。EXEC sp_attach_single_file_db 'DBName', 'Path\DBName.mdf'; — SQL Server 自動建立最小 512KB 新記錄檔。風險:未提交交易遺失、資料庫損毀無法附加、複寫/鏡像/AlwaysOn 拓撲破壞。**僅限無備份可還原、極端情況,且必須先驗證完整備份可還原。**
ALTER DATABASE DBName SET RECOVERY SIMPLE;BACKUP LOG DBName WITH NO_LOG; (SQL 2005/2008) 或直接 DBCC SHRINKFILE (LogFileName, TargetMB);ALTER DATABASE DBName SET RECOVERY FULL; 並**立即執行完整備份**啟動記錄鏈。ALTER DATABASE DBName MODIFY FILE (NAME = LogFileName, FILEGROWTH = 512MB); 避免 10%/1MB 碎片化。ALTER DATABASE DBName MODIFY FILE (NAME = LogFileName, MAXSIZE = 50GB); 防止佔滿磁碟。BACKUP LOG DBName TO DISK = '...'; 記錄檔空間循環使用。-- 記錄檔使用率
DBCC SQLPERF(LOGSPACE);
-- 設定 Agent 警示:Log Space Used > 80% 發送郵件
LDF 暴增根因在於「復原模式與備份策略不匹配」或「自動成長設定不當」。標準收縮 + 合理自動成長 + 正確備份策略 = 根治。分離刪除 LDF 僅作最後手段,風險極高。