监视事件和响应事件

SQL Server 代理可监视并自动响应“事件”,例如来自 SQL Server 的消息、特定的性能条件以及 Windows Management Instrumentation (WMI) 事件。

本节内容

关于监视事件和响应事件

对事件的自动响应称为“警报”。您可以针对一个或多个事件定义警报,指定希望 SQL Server 代理如何响应发生的这些事件。警报可以通过通知管理员和/或运行某项作业来响应事件。警报还可以将事件转发到其他计算机上的 Microsoft Windows 应用程序日志。例如,您可以指定在发生严重性为 19 的事件时立即通知操作员。通过定义警报,数据库管理员可以更有效地监视和管理 SQL Server。

SQL Server 代理只响应定义了警报的事件。SQL Server 代理用来监视事件的方法取决于事件的类型。

当为一个性能计数器定义了一个 SQL Server 代理警报后,SQL Server 代理将直接监视该性能计数器。对于 WMI 事件,SQL Server 代理为 WMI 事件注册一个事件查询。

为了响应来自 SQL Server 的消息,SQL Server 代理会监视 Windows 应用程序日志。SQL Server 代理只能响应此日志中出现的消息。默认情况下,SQL Server 将下列消息记录在 Windows 应用程序日志中:

  • 严重性为 19 或更高的 sysmessages 错误。

    如果您还希望记录严重性低于 19 的特定 sysmessages 错误,请使用 sp_altermessage 存储过程将这类错误指定为“始终记录”。

  • 所有使用 WITH LOG 语法调用的 RAISERROR 语句。

    建议使用 RAISERROR WITH LOG 将 SQL Server 实例的相关信息写入 Windows 应用程序日志。有关 RAISERROR 语句的详细信息,请参阅使用 RAISERROR

  • 所有使用 xp_logevent 记录的应用程序事件。

    注意注意

    记录应用程序事件会占用日志空间,并导致 Windows 应用程序日志超出其最大大小。请确保 Windows 应用程序日志最大大小足够大,以免丢失 SQL Server 事件信息。

当 SQL Server 记录消息时,SQL Server Agent 服务将该消息与 SQL Server 管理员定义的警报进行比较。

SQL Server Agent 服务通过执行事件警报中指定的任务来响应事件,而不管事件的源是什么。