首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 2005 清空交易日誌 (LDF) 兩種方法:工具法與分離刪除重附加法

     編輯:MySQL 資料庫相關知識

交易日誌 (LDF) 長期未維護會暴增佔滿磁碟。本文提供工具一鍵縮減與「分離→刪除 LDF→重附加」兩種方案,並強調操作前必須完整備份。

前置準備

  • 完整備份資料庫(.bak)與日誌備份(.trn)。
  • 關閉所有連線應用(IIS、Agent Job、連線池等),避免分離失敗。

方法一:DBCC SHRINKFILE(標準線上縮減)

USE master;
-- 切換至簡單復原模式暫時截斷日誌
ALTER DATABASE YourDB SET RECOVERY SIMPLE;
-- 縮減日誌檔至目標大小 (MB)
DBCC SHRINKFILE (YourDB_log, 500);
-- 恢復完整模式並立即做完整備份
ALTER DATABASE YourDB SET RECOVERY FULL;
BACKUP DATABASE YourDB TO DISK = 'D:\Backup\YourDB_full.bak';

優點:線上操作、資料零風險。缺點:若日誌內含大量未截斷 VLF,可能無法縮減至預期大小。

方法二:分離資料庫 → 刪除/重命名 LDF → 重新附加(離線強制重建)

  1. SSMS 右鍵資料庫 → 任務 → 分離,勾選「卸除連線」。
  2. 在檔案系統將 YourDB_log.ldf 重命名為 YourDB_log.ldf.bak(或刪除,建議先備份)。
  3. SSMS 右鍵「資料庫」→ 附加 → 選擇 YourDB.mdf → 底部日誌檔顯示「找不到」→ 移除該行 → 確定。
  4. SQL Server 會自動在預設路徑建立新的 504 KB 空日誌檔。
  5. 立即執行完整備份,啟動日誌備份鏈。

風險提示: 若資料庫處於「恢復中」或有損壞頁面,附加會失敗;務必先跑 DBCC CHECKDB。

事後驗證

SELECT name, size/128.0 AS SizeMB FROM sys.master_files WHERE database_id = DB_ID('YourDB');

確認 LDF 大小已回落合理範圍。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved