SQL Server 2005:为什么我会收到Errors / sec的警报但日志中没有错误?

时间:2011-03-31 14:59:55

标签: sql-server sql-server-2005 alerts

我刚开始尝试使用SQL Server警报。我设置了一个警告错误/秒,阈值为零,认为每次将错误写入日志时我都会收到一封电子邮件。我收到了很多电子邮件!我提高了门槛,当它超过每秒一次时通知我,我仍然不时收到很多电子邮件。

例如,我收到的电子邮件包含以下内容:

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'

当我查看日志时,我没有发现任何错误。我确实找到了信息性消息(备份​​完成等)。这个警报真的是“条目/秒”而不是真正的“错误/秒”或我是否在错误的地方( SSMS |服务器|管理| SQL Server日志|当前)查找实际错误?

2 个答案:

答案 0 :(得分:2)

不会记录所有错误,可能会执行可能会破坏约束的insert,但会向客户端引发错误,但这并不意味着它会记录在错误日志中。

例如,如果您执行以下t-sql。

RAISERROR ('This is an error!', 16, 1) WITH LOG

错误将记录在错误日志中,省略WITH LOG只会导致错误而不记录。

错误具有可用于过滤的属性,例如消息ID,严重性,但您可以根据事物的外观进行监控。严重程度可能是您所需要的。

答案 1 :(得分:0)

我已阅读但从未使用过警报。基于此,我认为“SQL警报系统”基于Windows应用程序事件日志中的数据写入,例如。

  • 开始
  • 程序
  • 管理工具
  • 事件查看器

并查看“应用程序”条目。 (当你在那里时,看看其余的人,看看你从未知道的所有那些错误和错误。这很像在树林里的岩石下看......)