記錄檔暴增佔滿磁碟是常見營運危機。本文提供標準收縮流程,並標註高風險操作 (分離資料庫刪除 LDF) 僅供極端情況參考。
BACKUP LOG DBName WITH NO_LOG; (SQL 2005/2008)ALTER DATABASE DBName SET RECOVERY SIMPLE; 後 DBCC SHRINKFILE(LogFileName, 1);DBCC SHRINKFILE (LogFileName, TargetSizeMB);DBCC SHRINKFILE (DataFileName, TargetSizeMB);,警告:資料檔收縮會造成嚴重索引碎片,收縮後**必須重建索引**。ALTER DATABASE DBName SET AUTO_SHRINK ON; 僅建議開發/測試環境,生產環境易產生效能抖動。EXEC sp_detach_db 'DBName';EXEC sp_attach_single_file_db 'DBName', 'Path\DBName.mdf'; — SQL Server 會自動建立最小 512KB 新記錄檔。風險:若資料庫有未提交交易、檔案損毀、或附加失敗,將導致資料永久遺失。
DBCC SQLPERF(LOGSPACE); 設定告警 > 80% 通知 DBA。收縮是治標手段,根治在於「正確復原模式 + 定期記錄備份 + 合理自動成長設定」。高風險刪除 LDF 僅作最後手段,務必先驗證完整備份可還原。