寫滿交易記錄疑難排解 (錯誤 9002)
今天收到客戶的一個錯誤訊息「資料庫’DB_NAME’的交易記錄已滿,….」,直覺使用DUMP TRAN <YOURDBNAME> WITH NO_LOG。我同事說要改用BACKUP LOG <YOURDBNAME> WITH NO_LOG。查了一下,還真的自2005後,有些SQL指定已經換了!
不過,還是可以用在SQL 2005上,到了SQL 2008已不用下那個指令了, 請參考「SQL Server 2008 中已停止的 Database Engine 功能」。
那為何交易檔會滿呢? 在SQL 2K中如果沒有完整備份的話,是不會去清交易檔的,而如果又有針對交易檔限定大小的話,就會長到爆。
後來問客戶IT是否有執行BACKUP LOG,結果IT說,是因為DB的空間被定樣備份檔給吃光了,所以交易檔就無法長大,也就顯示那個訊息。
參考資料:
Understanding backups and log-related Trace Flags in SQL Server 2000/2005 and 2008
交易記錄檔已滿、爆掉;截斷交易記錄檔。(The transaction log for database 'DB1' is full. ;Transaction Log Truncation)
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^