Sql-Server

縮小日誌文件

  • November 8, 2018

我的一些 SQL Server 的日誌文件 (ldf) 很大,比如 5GB。找了一篇關於收縮的文章,但是不知道為什麼作者重複了DBCCSHRINKFILE6次。

有人可以確認並建議一個乾淨的腳本來做到這一點嗎?

USE DatabaseName 
GO
ALTER DATABASE DatabaseName SET RECOVERY SIMPLE
GO
ALTER DATABASE DatabaseName SET RECOVERY FULL
GO
DBCC SHRINKFILE ('LogFileName', 1)
GO
DBCC SHRINKFILE ('LogFileName', 1)
GO
DBCC SHRINKFILE ('LogFileName', 1)
GO
DBCC SHRINKFILE ('LogFileName', 1)
GO
DBCC SHRINKFILE ('LogFileName', 1)
GO
DBCC SHRINKFILE ('LogFileName', 1)
GO

我看不出有任何理由像您所說的那樣重複該命令 6 次。命令中的 1 是目標大小。DBCC ShrinkFile 允許指定一個小於創建文件時的原始大小的值。請注意以下行:Alter Database DatabaseName Set Recovery Simple 您必須首先備份您的數據庫,就像您使用另一種恢復模式(full 或 bulk_logged)一樣,日誌鏈將被破壞。

  1. 備份您的數據庫
  2. 將恢復模式切換為簡單。
  3. 執行 DBCC ShrinkFile 命令(我在這裡推荐一個合理的大小,如果你有一個 5Gb 的日誌文件,你可能需要更大的原始大小,或者更大的 MB 增量以使其增長。
  4. 切換回原來的恢復模式。

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