Sql-Server

安全刪除 SQL Server 日誌文件 (.LDF)

  • January 17, 2019
  • 我可以確保我的應用程序處於一致狀態。
  • 如果有的話,我可以回滾所有未完成的交易(以防萬一)沒關係
  • 我可以 DETACH 數據庫

之後我需要日誌文件做什麼?

我特別在談論“高度控制”的環境。所以,真正的問題是:*如何明確強制一切正常以避免可能的數據失去?*這裡有沒有人有做這種手術的經驗?

更新

原因是我不喜歡龐大的日誌文件。高度受控的環境是我的 PC 在單使用者模式下執行單個應用程序。我是這個應用程序的開發人員,我可以完全控制程式碼更改。我寧願刪除而不是SHRINK所以請不要建議我簡單地刪除SHRINK文件。

UDATE 2 - 練習

我已經在生產中使用了這個過程半年多,沒有任何問題。

只是添加到現有的答案。

SQL Server 2008 Internals Book (pp 175-177) 暗示分離數據庫、刪除日誌文件並重新附加 mdf 文件應該是非常安全的。

分離數據庫可確保數據庫中沒有不完整的事務,並且記憶體中沒有此數據庫的髒頁。如果不能滿足這些條件,則分離操作將失敗……使用該sp_detach_db過程的一個好處是 SQL Server 記錄了數據庫已完全關閉的事實……這可能是一種快速收縮日誌文件的方法,該日誌文件包含變得比你想要的大得多

然而,情況似乎並非如此。這篇部落格文章有一個關於這種方法的展示,它也會讓你的數據庫崩潰。

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