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

快速清空 SQL Server 交易記錄檔的指令碼

     編輯:關於SqlServer

適用場景

僅適用於**簡單復原模式**資料庫,或您確定不需要記錄檔進行時間點還原的臨時操作(如開發/測試環境、資料匯入後縮減檔案)。

指令碼

-- 方法 1:舊版語法 (SQL 7.0 / 2000)
DUMP TRANSACTION 資料庫名稱 WITH NO_LOG;
BACKUP LOG 資料庫名稱 WITH NO_LOG;
DBCC SHRINKDATABASE(資料庫名稱);

-- 方法 2:SQL Server 2008+ 建議語法
-- 先切換至簡單模式 (若非簡單模式)
ALTER DATABASE 資料庫名稱 SET RECOVERY SIMPLE;
-- 縮減記錄檔
DBCC SHRINKFILE (N'資料庫名稱_log', 1);  -- 目標大小 1 MB,視需求調整
-- 可切回完整模式並立即做完整備份
ALTER DATABASE 資料庫名稱 SET RECOVERY FULL;

⚠️ 重要警告

  • 生產環境嚴禁使用 `WITH NO_LOG` 或 `TRUNCATE_ONLY`**,會破壞記錄鏈,導致無法時間點還原。
  • 縮減記錄檔後,記錄檔會在下次大量寫入時再次成長,造成碎片與效能抖動。建議預先設定合理的記錄檔初始大小與自動成長增量 (建議固定 MB,勿用百分比)。
  • 正規做法:完整復原模式下定期 `BACKUP LOG`,記錄檔空間會自動重複使用,無需手動縮減。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved