我剛開始嘗試使用SQL Server警報。我設置了一個閾值爲零的錯誤警報/秒,認爲每次將錯誤寫入日誌時我都會收到一封電子郵件。我收到了很多電子郵件!我提高了門檻,當它每秒超過一次時通知我,並且我不時收到不少電子郵件。SQL Server 2005:爲什麼我會收到錯誤/秒的警報,但日誌中沒有錯誤?
舉個例子,我得到一個包含這樣的電子郵件:
DESCRIPTION: The SQL Server performance counter 'Errors/sec' (instance '_Total') of object 'MyServerName:SQL Errors' is now above the threshold of 1.00 (the current value is 4.45).
下面是我使用的警報的命令:
EXEC msdb.dbo.sp_add_alert @name=N'SQL Errors',
@message_id=0,
@severity=0,
@enabled=1,
@delay_between_responses=0,
@include_event_description_in=1,
@notification_message=N'Check the ERRORLOG for details.',
@category_name=N'[Uncategorized]',
@performance_condition=N'MyServerName:SQL Errors|Errors/sec|_Total|>|0',
@job_id=N'00000000-0000-0000-0000-000000000000'
當我看看日誌,我沒有發現任何錯誤。不過,我確實發現了信息性消息(完成了備份等)。這個警報真的是「Entries/sec」,而不是真正的「Errors/sec」,還是我看錯了地方(SSMS |服務器|管理| SQL Server日誌|當前)
如果我嘗試'SELECT * FROM sys.dm_os_performance_counters WHERE counter_name =「錯誤/ sec''然後'DECLARE @I INT = 1000000; WHILE(@I> 0)BEGIN RAISERROR('%d',0,1,@ I)SET @I = @I -1 END'即使是嚴重性爲零的錯誤也會增加「用戶錯誤」計數。 – 2011-03-31 21:38:23