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

SQL Server 2005 事務日誌暴增急救:分離刪除 LDF 重建附加法(附風險提示)

     編輯:MySQL 綜合教學

現象與風險警告

LDF 日誌文件佔用海量磁盤(如 200GB),常規 DBCC SHRINKFILE 無效。**以下操作屬強制手段,極高風險,執行前務必完成完整備份!**

操作步驟

  1. 停止所有連接應用(IIS、職能服務等),避免分離失敗。
  2. SSMS → 右鍵數據庫 → 任務 → 分離,勾選「刪除連接」。
  3. 文件系統中:備份 .mdf,重命名 .ldf(如 db_log.ldf.bak)。
  4. SSMS → 右鍵「數據庫」 → 附加 → 選擇 .mdf → 提示找不到 LDF → 移除 LDF 行 → 確定。
  5. 系統自動創建新 .ldf(初始極小,~500KB)。

分離數據庫

刪除連接

文件系統操作

附加數據庫

移除缺失 LDF

原理解析

分離時若數據庫處於 Clean Shutdown 狀態(無活躍事務),MDF 已包含所有提交數據。附加時缺少 LDF,SQL Server 會創建新空日誌文件,視同一次正常啟動恢復。

優先嘗試的安全方案

  1. 備份日誌後收縮:
    BACKUP LOG db_name TO DISK='NUL';  -- 簡單恢復模式下截斷
    DBCC SHRINKFILE (db_log, 100);  -- 目標 100MB
  2. 切換恢復模式:
    ALTER DATABASE db_name SET RECOVERY SIMPLE;
    DBCC SHRINKFILE (db_log, 100);
    ALTER DATABASE db_name SET RECOVERY FULL;  -- 如需點恢復
  3. 定期備份日誌:建立維護計劃,每 15-60 分鐘備份一次事務日誌,防止暴增。

事後驗證

  • DBCC CHECKDB(db_name) 檢查一致性。
  • 檢查業務關鍵表數據完整性。
  • 重新建立日誌備份鏈(若切回 FULL 模式)。

核心原則:日誌暴增 = 缺乏日誌備份。治本在於建立定期日誌備份策略,而非事後暴力清理。

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