SQL Server的錯誤消息(Error Message)按照消息的嚴重級別一共劃分25個等級,級別越高,表示嚴重性也越高。但是如果你統計sys.messages,你會發現,實際上只有16(SQL SERVER 2008/2012)或17個(SQL SERVER 2005)個級別。猜測應該是一些留作擴展用,一些留作用戶自定義錯誤消息的級別。
sys.messages中有個字段is_event_logged,取值為1時表示出現錯誤時將消息記入事件日志。 對于 message_id 中的所有消息語言,此參數都是相同的。所以也就是說有些錯誤信息(Error Message)會寫入事件日志,有些就不會寫入錯誤日志。因此監控錯誤日志時,我們只能監控那些寫入錯誤日志的錯誤信息。一般而言,我們應該監控嚴重級別在16~25之間的錯誤信息,另外嚴重級別14的也應該監控(主要是Error: 18456, Severity: 14)。
監控錯誤日志有很多方式,下面介紹一種非常簡單、有效的監控錯誤日志的方法.我們可以通過sp_add_alert創建一個警報(Alerts),如下所示,我們創建一個名稱為SQL Server Severity Event 14的警報(配置前需要配置郵件、PRofileName,Operators,下面腳本也要根據具體情況調整)。關于創建警報的具體信息,可以參考http://msdn.microsoft.com/zh-cn/library/ms189531.aspx
USE [msdb]
GO
IFNOTEXISTS(SELECT 1 FROM msdb.dbo.syscategories WHERE NAME='DBA_MONITORING'AND category_class=2)
BEGIN
EXEC msdb.dbo.sp_add_category
@class=N'ALERT',
@type=N'NONE',
@name=N'DBA_MONITORING' ;
END
GO
IFEXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = N'SQL Severity Event 14')
新聞熱點
疑難解答