.ldf) 暴增,佔用大量磁盤空間。-- 1. 截斷非活動日誌 (簡單恢復模式下有效,完整恢復模式需先備份日誌)
DUMP TRANSACTION 數據庫名 WITH NO_LOG;
GO
-- 2. 收縮數據庫文件 (包含日誌文件)
DBCC SHRINKDATABASE (數據庫名);
GO
| 命令 | 作用 | 注意事項 |
|---|---|---|
DUMP TRANSACTION ... WITH NO_LOG |
標記非活動事務日誌為可覆寫,**不備份日誌** | 完整恢復模式下會破壞日誌鏈,導致無法時間點恢復。**僅限簡單恢復模式或臨時緊急收縮** |
DBCC SHRINKDATABASE |
釋放數據/日誌文件未使用空間歸還 OS | 會導致索引碎片、性能抖動,**生產環境慎用**,維護窗口執行 |
ALTER DATABASE 數據庫名 SET RECOVERY SIMPLE;
BACKUP LOG 數據庫名 TO DISK='path\log.bak';
備份後非活動日誌自動標記可復用,無需 DUMP ... NO_LOG。
DBCC SHRINKFILE (邏輯日誌文件名, 目標大小_MB);
ALTER INDEX ALL ON 表名 REBUILD;
DBCC SQLPERF(LOGSPACE);
-- 輸出: Database Name, Log Size (MB), Log Space Used (%), Status
DUMP TRANSACTION ... NO_LOG → **日誌鏈斷裂,無法時間點恢復,嚴重事故**。SHRINK → 索引碎片嚴重、下次寫入又要擴展、性能抖動。Log Space Used %,長期 > 80% 才考慮擴容或調整備份頻率。總結:DUMP TRANSACTION ... NO_LOG + DBCC SHRINKDATABASE 是**緊急止血手段**,僅限簡單恢復模式或測試環境。生產環境請走**正規備份收縮流程**,空間換時間,數據安全第一。