SIMPLE 復原模式 → 截斷非作用中 VLF。DBCC SHRINKFILE 釋放實體空間至作業系統。FULL 模式 → 立即進行完整備份重建記錄鏈。USE [master];
GO
ALTER DATABASE [YourDB] SET RECOVERY SIMPLE WITH NO_WAIT;
GO
ALTER DATABASE [YourDB] SET RECOVERY SIMPLE;
GO
USE [YourDB];
GO
-- 邏輯記錄檔名稱可用下方查詢取得
DBCC SHRINKFILE (N'YourDB_Log', 0, TRUNCATEONLY);
GO
USE [master];
GO
ALTER DATABASE [YourDB] SET RECOVERY FULL WITH NO_WAIT;
GO
ALTER DATABASE [YourDB] SET RECOVERY FULL;
GO
-- 查詢邏輯記錄檔名稱
USE [YourDB];
GO
SELECT name FROM sys.database_files WHERE type_desc = 'LOG';
TRUNCATEONLY:僅釋放檔案末端未使用空間,不移動資料頁,不造成碎片,速度最快。目標大小 0:表示縮減至預設最小值;若需保留特定大小 (MB) 可改為數字,如 1024。WITH NO_WAIT:不等待長時間交易完成,立即切換模式 (可能導致交易回滾,請在維護窗口執行)。DBCC SQLPERF(LOGSPACE);
根治 LDF 暴增的正確做法是排程 BACKUP LOG (如每 15 分鐘),配合 MAXSIZE 限制檔案上限,而非事後縮小。