在日常SQL Server的維護中,查看 SQL Server 錯誤記錄檔可以用來確認服務的運行情況:例如服務的啟停、備份與還原操作、登入認證情況等等,需要經常性的查看。
使用 SQL Server Management Studio 或文字編輯器都可以查看 SQL Server 錯誤記錄檔。預設情況下,錯誤記錄檔位於 Program Files/Microsoft SQL Server/MSSQL.n/MSSQL/LOG/ERRORLOG 和ERRORLOG.n 檔案中。預設保留有7個 SQL Server 錯誤記錄檔檔案,分別是:ErrorLog,Errorlog.1~Errorlog.6 ,當前的錯誤記錄檔(檔案ErrorLog)沒有副檔名。每當啟動 SQL Server 執行個體時,將建立新的錯誤記錄檔ErrorLog,並將之前的ErrorLog更名為ErrorLog.1,之前的ErrorLog.1更名為ErrorLog.2,依次類推,原先的ErroLog.6被刪除。
生產伺服器上的ErrorLog檔案有時候會碰到檔案很大的情況,尤其將登入認證情況記錄到錯誤記錄檔的情況之下,此時使用SQL Server Management Studio或者文字編輯器查看錯誤記錄檔查看的時候速度會是個問題,對於這種情況,可以在不重新啟動伺服器的情況下,通過預存程序sp_cycle_errorlog來產生新的記錄檔,並迴圈錯誤記錄檔擴充編號,就如同重新啟動服務時候一樣。除了 Execute sp_cycle_errorlog 之外,也可以使用DBCC ERRORLOG來實現同樣的功能。在實際操作中,也可以通過建立一個Job定時去執行該預存程序,這樣將記錄檔大小控制在合理的範圍之內。
SQL Server預設保留7次錯誤記錄檔檔案,在產生新的錯誤記錄檔的同時,最老的那個日誌也被刪除了,如果想保留更多次的錯誤記錄檔,可以通過如下方法來設定(SQL Server 2005):
開啟 SQL Server Management Studio
在“管理”目錄下,在SQL Server日誌上右鍵,點擊“配置”
在彈出的“配置SQL Server錯誤記錄檔”視窗中,在“限制錯誤記錄檔檔案在回收之前的數目”複選框上打勾,並且將“最大錯誤記錄檔檔案數”設定為希望的數值。這個數值在6到99之間。
除了上述方法之外,也可以通過修改註冊表的方式來修改。建立一個登錄機碼(如果有則修改之):HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/MSSQLServer/NumErrorLogs,預設情況下,並沒有這個登錄機碼,類型選擇REG_DWORD,數值設定為希望保留的日誌次數。修改登錄機碼的方法也可以通過以下預存程序來實現:
exec xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software/Microsoft/MSSQLServer/MSSQLServer', N'NumErrorLogs', REG_DWORD, 20
在預設情況下,SQLServer的錯誤記錄檔位於 Program Files/Microsoft SQL Server/MSSQL.n/MSSQL/LOG/ERRORLOG 和ERRORLOG.n 檔案中。
可以通過如下方法來修改該路徑:
在 SQL Server 組態管理員中,單擊“SQL Server 服務”。
在右窗格中,按右鍵 SQL Server (<執行個體名>),再單擊“屬性”。
在“進階”選項卡的“啟動參數”框中,有以分號 (;) 分隔的參數。其中,有一個以 –e開頭的參數,修改該參數後面的路徑,就可以將錯誤記錄檔存放到指定的路徑下,修改完成需要重啟服務生效。
運行 sp_cycle_errorlog 預存程序手動迴圈 ErrorLog
注意事項:舊的 ErrorLog 檔案中的資料將被覆蓋!如果必須儲存舊的 ErrorLog 檔案中的資料,則可將這些舊的 ErrorLog 檔案複製到某個外部儲存介質中。