SQL交易記錄檔(LDF)已滿/太肥
會記錄這篇是因為公司使用的 ERP System 出現交易紀錄檔已滿問題
詢問廠商得知只需把交易紀錄檔進行壓縮即可,但建議不要在重整或備份時進行壓縮!
不知道 LogName or Fileid 可用 EXEC sp_helpdb DB_Name 來查詢
要注意 LogName 不等於是檔名,而是要用語法查詢後,確認 Name 欄位的名稱!
20180117: 近日發現會出錯「訊息 8985」,解決方案將 LogName 更換為 Fileid 即可。參考
另一種方法可將資料庫卸離在把記錄檔刪掉,再掛上資料庫時會自動建立新紀錄檔,不過非必要情況下不要這樣操作!
詢問廠商得知只需把交易紀錄檔進行壓縮即可,但建議不要在重整或備份時進行壓縮!
環境:SQL Server 2008 R2
USE DB_Name GO CHECKPOINT; -- 檢查點 GO ALTER DATABASE DB_Name SET RECOVERY SIMPLE; -- 資料庫復原模式設成"簡單" GO DBCC SHRINKFILE (LogName or Fileid, 10); -- 壓縮指定 LOG 檔至指定大小(MB) GO ALTER DATABASE DB_Name SET RECOVERY FULL; -- 資料庫復原模式設成"完整" GO CHECKPOINT; -- 檢查點 /*DB_Name, LogName or Fileid 依自家環境變更 */檢查點是立刻把暫存記憶體中的資料立刻寫入資料庫
不知道 LogName or Fileid 可用 EXEC sp_helpdb DB_Name 來查詢
要注意 LogName 不等於是檔名,而是要用語法查詢後,確認 Name 欄位的名稱!
20180117: 近日發現會出錯「訊息 8985」,解決方案將 LogName 更換為 Fileid 即可。參考
另一種方法可將資料庫卸離在把記錄檔刪掉,再掛上資料庫時會自動建立新紀錄檔,不過非必要情況下不要這樣操作!
Comments
Post a Comment