生產環境 SQL Server 2005 資料庫記錄檔(.ldf)暴增至 100 GB 以上,導致磁碟空間耗盡、備份耗時、甚至服務停擺。本文提供兩種清空方案,並詳述 SQL Server 2008 的模式切換收縮語法差異。
工具名稱:SqlServer 日誌清除專家,支援 SQL Server 7.0 / 2000 / 2005 各版本。操作介面直觀,一鍵掃描並清除非作用中虛擬記錄檔(VLF),耗時極短,資料零風險。
⚠ 必須先完成完整備份! 此法會強制 SQL Server 重建記錄檔,導致記錄鏈中斷,後續無法進行記錄備份還原至中間時間點。


.mdf(若空間允許),將 .ldf 重命名為 .ldf.bak。
.mdf,系統提示找不到 .ldf。

.ldf 項,點擊「確定」。SQL Server 自動建立新記錄檔(約 504 KB)。
SQL 2008 移除了 BACKUP LOG ... WITH NO_LOG 與 DUMP TRANSACTION ... WITH NO_LOG,必須透過切換復原模式實現截斷。
-- 1. 切換至簡單模式,強制截斷非作用中 VLF
USE [master];
GO
ALTER DATABASE [YourDB] SET RECOVERY SIMPLE WITH NO_WAIT;
GO
ALTER DATABASE [YourDB] SET RECOVERY SIMPLE;
GO
-- 2. 收縮記錄檔至目標大小(單位:MB),TRUNCATEONLY 僅釋放未使用空間不移動資料頁
USE [YourDB];
GO
DBCC SHRINKFILE (N'YourDB_Log', 11, TRUNCATEONLY); -- 目標 11 MB
GO
-- 3. 切回完整模式,恢復記錄備份鏈
USE [master];
GO
ALTER DATABASE [YourDB] SET RECOVERY FULL WITH NO_WAIT;
GO
ALTER DATABASE [YourDB] SET RECOVERY FULL;
GO
| 指標 | 工具法 | 分離重建法 | 2008 模式切換法 |
|---|---|---|---|
| 耗時 | 秒級 | 分鐘級(含備份) | 分鐘級(90 GB 約數分鐘) |
| 業務影響 | 無 | 需停機 | 極短暫鎖定 |
| 記錄鏈完整性 | 保持 | 中斷 | 保持(完整模式下) |
| 碎片產生 | 無 | 低 | 中(建議事後重建索引) |
DBCC SQLPERF(LOGSPACE) 監控 VLF 狀態。