SQL Server 備份檔莫名暴增?別急著 SHRINK,先查這幾個真因
SQL Server 的備份檔,這個月又比上個月大了好幾 GB。打開資料庫一看,資料表筆數沒什麼變,那這些空間是哪來的? 很多人第一反應是「資料庫膨脹了」,然後跑去 DBCC SHRINKDATABASE 想把它壓回來。先停手——SHRINK 是 SQL Server 裡最容易幫倒忙的指令之一,後面會講為什麼。先搞懂備份檔為什麼會長大。 完整備份複製的是資料庫裡「已配置的資料頁」加上一小段交易記錄,不是 mdf 檔的實體大小。一個 100 GB 的 mdf,裡面只有 40 GB 的頁真有資料,備份檔大約就是 40 GB 出頭。所以備份檔變大,意思是已配置的頁變多了——或者,根本不是資料庫的問題,是備份檔本身在累積。順這條線,由最常見往下查。 真因一:你每天往同一個檔案疊備份(最常見)頭號元兇,也最容易被忽略。BACKUP DATABASE 不指定 WITH INIT 時,預設是 NOINIT——把這次備份附加到既有檔案,不是覆蓋。 如果排程固定備份到 D:\Backup\MyDB.bak、每天跑又沒寫 INIT,這個檔案裡其實疊了一份又一份完整備份,當然每天長大。 要確認是不是這...




