Sql-Server

為什麼不通過收縮來減小數據庫日誌文件的大小?

  • June 9, 2022

我使用 SQL 伺服器數據庫。為了減少數據庫日誌文件,我將數​​據庫的恢復模式設置為簡單,然後收縮數據庫,但日誌文件沒有效果。

什麼是問題?

不要縮小整個數據庫。它太不精確了。始終以單個文件為目標。即,使用 DBCC SHRINKFILE。

日誌文件不收縮的原因是最後一個虛擬日誌文件正在使用中。ldf 文件分為 Virtual Log Files (VLF),ldf 文件只能從文件末尾收縮,去除未使用的 VLF。顯然您在文件末尾使用了 VLF,否則文件會縮小。

您要做的是清空日誌(如果在簡單恢復中,則使用 CHECKPOINT 命令,如果在完全恢復中,則執行日誌備份),然後執行 DBCC SHRINKFILE 命令。您可能必須多次重複這些步驟,直到最後一個所需的 VLF 進入未使用狀態並且可以刪除。

這是我寫的一篇文章,其中包含更多細節。這是另一個關於為什麼通常收縮文件是個壞主意的原因

引用自:https://dba.stackexchange.com/questions/313147