開啟3226 Flag讓備份資料庫訊息不要寫入到錯誤紀錄檔中

您知道DBCC TRACEON(3226,-1)可以讓備份紀錄不要被記錄到

錯誤紀錄中(Errorlog)嗎?

 

日前參加SQL PASS十一月聚會,聽SQL MVP Rico大的分享,令人得到很多收穫。

其中一個對我而言最大收穫就是解決我Errorlog檔充斥著備份成功的一堆訊息,尤其

當我資料庫數多加上頻繁的備份。很快我的Errorlog就被這些我認為無用的訊息塞滿。

而Rico大的分享中只要簡單的打開一個Trace Flag就可以解決這一個問題,在此借花

獻佛的分享給各位。

 

下圖紅色圈選處就是我們的ErrorLog檔,預設會是7個檔不斷輪替。

 

檔案的實際檔案位置及數目如下圖所示

 

如下圖所示,我們執行一句備份的語法來備份資料庫

 

完成備份後我們檢視一下錯誤紀錄檔,如下圖紅色圈選處,我們可以看見錯誤紀錄檔紀錄了一筆備份成功的訊息。

 

這時重頭戲來了,如下圖紅色圈選處。我們執行DBCC TRACEON(3226,-1)後,再次做一個備份動作。

 

此時我們再打開錯誤紀錄檔看,會發現備份的資訊不會再被記錄到錯誤紀錄檔中了。

 

當然可以將該Flag在SQL一啟動時就打開,方法很簡單,就是加到啟動參數中囉。如下圖紅色圈選處。可利用DBCC TRACESTATUS來檢視一下SQL目前開了哪一些Trace Flag歐。

 

曾經聽過許致學老師提過,有一部SQL一年沒重啟過,導致ErrorLog檔過大。後來要看錯誤紀錄時

幾乎是快打不開因此除了定期的重新產生ErrorLog檔來讓紀錄不要累積太多以外,也可以篩選一下

要記錄的東西。像備份這類的紀錄個人是覺得不太需要囉。

至於如何重建ErrorLg可以參考我之前寫的一篇文

重新產生SQL Server錯誤記錄檔(Error log file),利用sp_cycle_errorlog

我是ROCK

rockchang@mails.fju.edu.tw