您知道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