檢查扎蘭屯服務器的時候,發現其中一個分區的原空間有300多個G,但只余下了80多個G。檢查了一下,發現某庫ldf文件過大,竟然達到了280多個G。
這如何得了,再這樣下去,硬盤怎能受得了?
嘗試用收縮文件,然后收縮日志的方式減少文件大小,結果發現不太穩定,且沒有效果。
由於ldf文件相對來說不太重要,所以決定還是以極端的方式解決。
即分離后,刪除該文件,再附加的方式解決。如果分離不成功,要選中刪除連接。
仔細查找后,發現其它庫的ldf文件沒有這么大的原因是,恢復模式設置為簡單模式,而這個庫的模式是完整模式。
隨后,我就把恢復模式設置為簡單模式了。打算聯系一下當地加盟商,過一兩找個時間解決一下。
也可通過命令:
EXEC sp_detach_db @dbname = 'copy_test'
EXEC sp_attach_single_file_db @dbname = 'copy_test',
@physname = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\copy_test.mdf'
在實際情況下,我把恢復模式修改為簡單模式后,過了兩天,發現LDF文件變小了,只有不到5M.我問了一下,好像沒有人動過。
如果沒有人動過的話,那說明SQL是自動的,當設置為簡單模式后,自己就會縮小LDF文件,所以網上的大多數辦法都是不可信的,經過實驗,我的方法應該是最有效和最安全的。
經過本人實驗,SQL確實是自動的,只要把模式設置成簡單模式后,數據庫在下次備份后,自動將過大的ldf文件干掉了。或者是另一種說法,我這種說法有點不准確,總之目的達到即可。