SQL Server 資料庫 Log 檔成長行為與定期備份實測分析
資料庫 Log 檔成長行為與定期備份實測分析
記錄交易時產生大量 Log,Log 檔案隨交易成長。
執行 Log 備份僅釋放可重用空間,實體檔案大小不變。
執行 Log 壓縮可縮小實體檔案。
以下以 YourDataBase 測試未備份與定期備份 Log 的差異。
案例 A:未備份 Log
執行兩次大量更新後,Log 檔案持續成長。
結果:
| action_desc | TotalLogSize (MB) | UsedLogSpace (MB) | UsedLogSpace (%) |
|---|---|---|---|
| 初始 | 1 | 0 | 34.52 |
| 大量更新資料 | 701 | 252 | 35.95 |
| 大量更新資料 2 | 901 | 501 | 55.68 |
案例 B:定期備份 Log
每次更新後立即備份 Log,可維持 Log 檔案大小不持續成長。
結果:
| action_desc | TotalLogSize (MB) | UsedLogSpace (MB) | UsedLogSpace (%) |
|---|---|---|---|
| 初始 | 1 | 0 | 34.52 |
| 大量更新資料 | 701 | 252 | 35.95 |
| 備份 Log | 701 | 252 | 35.96 |
| 大量更新資料 2 | 701 | 263 | 37.52 |
| 備份 Log | 701 | 263 | 37.25 |
DBA 建議
-
建立固定間隔 Log 備份排程
-
使用完整模式時必須定期備份 Log 防止無限制成長
-
持續監控 sys.dm_db_log_space_usage
-
大量批次更新前確認 Log 備份正常
-
設定 Autogrowth 為固定大小避免碎片化
-
僅在必要時執行 Log 壓縮避免 I/O 壓力
