筆記 SQL Server 移除 Error Log 的方法 (xp_enumerrorlogs / sp_cycle_errorlog)
說明
SQL Server 是利用循環紀錄的方式來保存 Error Log,而預設情況下是 6 份 Error Log File。但如果循環發生前,儲存空間就沒有了,這時就得考量移除部分的 Error Log File。
藉由下列指令可以確認目前的 Error Log
EXEC xp_enumerrorlogs
藉由下列指令可以觸發 Error Log 循環,亦即將建立一筆新的 ERRORLOG ,並原本的 ERRORLOG 改名為 ERRORLOG.1,而將依序的 ERRORLOG.2 改為 ERRORLOG.3,一直到最後一項 ERRORLOG 如果超過循環最大的數值 6,則最舊的那份 Error Log 就會被移除(回收)。
EXEC sp_cycle_errorlog
而在儲存空間充足的情況下,有時候為了保存 Error Log 反而會提升 Error Log 的最大數量,避免 Error Log 被移除(回收),可以由管理進行這項設定:
ErrorLog 就是 SSMS 中看到的 SQL Server Log,預設是保存 6 份紀錄,每當 SQL Server 服務重啟的時候會新建一份並取代最舊的一份。為了避免單份 Log 的檔案過大,可以主動設定排程每週進行 sp_cycle_errorlog
來主動切換檔案。而如果要配合保存期限,可以在將 Error Log 由預設的 6 份增加,GCB 的建議是調整為 12。
參考資料
重新產生SQL Server錯誤記錄檔(Error log file),利用sp_cycle_errorlog
How To Safely Delete SQL Server ErrorLog Files