在 SQL Server 2008 中收縮資料庫日誌檔案時,常遇到執行標準語句後檔案大小不變的情況。這通常是因為日誌檔案的初始大小已被撐大,單純的 DBCC SHRINKFILE 無法釋放已配置的空間。
USE Esurfing;
GO
-- 將日誌設為簡單模式,截斷日誌
ALTER DATABASE Esurfing SET RECOVERY SIMPLE;
GO
-- 收縮日誌檔案(邏輯名,單位 MB)
DBCC SHRINKFILE (Esurfing_log, 1);
GO
-- 恢復日誌模式為完整模式
ALTER DATABASE Esurfing SET RECOVERY FULL;
GO
若上述語句執行成功但日誌檔案未變小,需透過 SSMS 介面手動操作:右鍵資料庫 → 任務 → 收縮 → 檔案,選擇日誌檔案進行收縮,才能真正釋放空間。