SQL交易記錄檔(LDF)已滿/太肥

會記錄這篇是因為公司使用的 ERP System 出現交易紀錄檔已滿問題

詢問廠商得知只需把交易紀錄檔進行壓縮即可,但建議不要在重整或備份時進行壓縮!

環境: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

Popular posts from this blog

Libreoffice 效能優化

MSI 檔案損毀(無法正常安裝、移除)