針對 SQL Server 2005,執行以下三行指令可快速將指定資料庫的交易記錄檔 (.ldf) 壓縮至約 1 MB。執行前請務必完成完整備份,並確認資料庫復原模式為 SIMPLE 或已備份記錄。
BACKUP LOG [資料庫名稱] WITH NO_LOG;
BACKUP LOG [資料庫名稱] WITH TRUNCATE_ONLY;
DBCC SHRINKDATABASE([資料庫名稱]);
BACKUP LOG ... WITH NO_LOG:清空非作用中記錄 (僅限 SQL 2000/2005),不建立備份集。BACKUP LOG ... WITH TRUNCATE_ONLY:截斷非作用中記錄,釋放空間供壓縮使用。DBCC SHRINKDATABASE:實際釋放檔案空間至作業系統,將實體檔案大小縮減。BACKUP DATABASE) 重新建立基準。NO_LOG/TRUNCATE_ONLY 選項,應改用 ALTER DATABASE SET RECOVERY SIMPLE 配合 DBCC SHRINKFILE。-- 1. 切換至簡單復原模式 (自動截斷記錄)
ALTER DATABASE [資料庫名稱] SET RECOVERY SIMPLE;
GO
-- 2. 針對記錄檔邏輯名稱壓縮至目標大小 (MB)
DBCC SHRINKFILE ([資料庫名稱_log], 1); -- 壓縮至 1 MB
GO
-- 3. 如需維持完整復原模式,壓縮後切回
ALTER DATABASE [資料庫名稱] SET RECOVERY FULL;
GO
-- 並立即執行完整備份 + 記錄備份