SQL Server縮小日志文件.ldf的方法(適用于開發環境)
核心概念:為什么日志文件會變大?
首先,理解原因至關重要。事務日志文件在以下情況下會增長:
- 大量操作:執行了大批量插入、更新或刪除操作(例如,數據導入、批量清理)。
- 長時間運行的事務:有一個事務開始后一直沒有提交,SQL Server 為了保證事務的原子性和回滾能力,必須保留所有相關的日志記錄,直到事務結束。
- 復制、鏡像、Always On 可用性組:這些高可用性和災難恢復技術依賴于事務日志,如果日志傳送或應用延遲,主數據庫的日志就無法截斷。
- 恢復模式:
簡單恢復模式:事務日志會在檢查點之后自動截斷,空間會被重用,通常不會無限增長。
完整恢復模式:事務日志只有在執行日志備份后才會被截斷。如果不做日志備份,日志就會一直增長。
處理方法:切換至簡單恢復模式(最常用)
-- 1. 將恢復模式設置為簡單
ALTER DATABASE [YourDatabaseName] SET RECOVERY SIMPLE WITH NO_WAIT;-- 2. 執行檢查點,強制截斷日志
CHECKPOINT;-- 3. 收縮日志文件到 manageable 的大小 (例如 512MB)
USE [YourDatabaseName];
DBCC SHRINKFILE (YourLogFileLogicalName, 512); -- 替換為你的日志邏輯名-- 4. (重要!) 切換回完整恢復模式
ALTER DATABASE [YourDatabaseName] SET RECOVERY FULL;