首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> SQL Server 2005

SQL Server 2005 收縮資料庫記錄檔至 1MB 快速腳本

     編輯:SQL Server 2005

針對 SQL Server 2005,執行以下三行指令可快速將指定資料庫的交易記錄檔 (.ldf) 壓縮至約 1 MB。執行前請務必完成完整備份,並確認資料庫復原模式為 SIMPLE 或已備份記錄。

壓縮腳本

BACKUP LOG [資料庫名稱] WITH NO_LOG;
BACKUP LOG [資料庫名稱] WITH TRUNCATE_ONLY;
DBCC SHRINKDATABASE([資料庫名稱]);

指令說明

  1. BACKUP LOG ... WITH NO_LOG:清空非作用中記錄 (僅限 SQL 2000/2005),不建立備份集。
  2. BACKUP LOG ... WITH TRUNCATE_ONLY:截斷非作用中記錄,釋放空間供壓縮使用。
  3. DBCC SHRINKDATABASE:實際釋放檔案空間至作業系統,將實體檔案大小縮減。

⚠️ 重要警告

  • 會中斷記錄鏈:執行後無法進行時間點還原,必須立即執行完整備份 (BACKUP DATABASE) 重新建立基準。
  • 不適用 SQL Server 2008+:新版本已移除 NO_LOG/TRUNCATE_ONLY 選項,應改用 ALTER DATABASE SET RECOVERY SIMPLE 配合 DBCC SHRINKFILE。
  • 生產環境謹慎使用:僅適用於開發/測試環境或已有完整備份策略的維護窗口。

現代版本 (2008+) 建議做法

-- 1. 切換至簡單復原模式 (自動截斷記錄)
ALTER DATABASE [資料庫名稱] SET RECOVERY SIMPLE;
GO

-- 2. 針對記錄檔邏輯名稱壓縮至目標大小 (MB)
DBCC SHRINKFILE ([資料庫名稱_log], 1);  -- 壓縮至 1 MB
GO

-- 3. 如需維持完整復原模式,壓縮後切回
ALTER DATABASE [資料庫名稱] SET RECOVERY FULL;
GO
-- 並立即執行完整備份 + 記錄備份
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved