Sql-Server
安全刪除 SQL Server 日誌文件 (.LDF)
- 我可以確保我的應用程序處於一致狀態。
- 如果有的話,我可以回滾所有未完成的交易(以防萬一)沒關係
- 我可以 DETACH 數據庫
之後我需要日誌文件做什麼?
我特別在談論“高度控制”的環境。所以,真正的問題是:*如何明確強制一切正常以避免可能的數據失去?*這裡有沒有人有做這種手術的經驗?
更新
原因是我不喜歡龐大的日誌文件。高度受控的環境是我的 PC 在單使用者模式下執行單個應用程序。我是這個應用程序的開發人員,我可以完全控制程式碼更改。我寧願刪除而不是
SHRINK
所以請不要建議我簡單地刪除SHRINK
文件。UDATE 2 - 練習
我已經在生產中使用了這個過程半年多,沒有任何問題。
只是添加到現有的答案。
SQL Server 2008 Internals Book (pp 175-177) 暗示分離數據庫、刪除日誌文件並重新附加 mdf 文件應該是非常安全的。
分離數據庫可確保數據庫中沒有不完整的事務,並且記憶體中沒有此數據庫的髒頁。如果不能滿足這些條件,則分離操作將失敗……使用該
sp_detach_db
過程的一個好處是 SQL Server 記錄了數據庫已完全關閉的事實……這可能是一種快速收縮日誌文件的方法,該日誌文件包含變得比你想要的大得多然而,情況似乎並非如此。這篇部落格文章有一個關於這種方法的展示,它也會讓你的數據庫崩潰。