如果你在使用 Microsoft Sql Server 中警报 (Alerts) 遇到了问题,请你查看这篇文章以获取可能的解决方案。
1. 检查你是否使用了最新的 Sql Server service pack 。因为在最新的 Sql Server service pack 中已经 修补 了很多 Sql Server 使用警告 (Alerts) 的漏洞。应该确保在你的系统中已经安装了最新的 Sql Server service pack 补丁包。
2. 检查 SqlServerAgent 服务的帐户是否作为成员运行在域用户群组 (Domain User Group) 下。 LocalSystem 帐户没有访问网络的权限,所以,如果你需要将事件记录在其他运行有 Windows NT 或 Windows 2000 机器上的应用程序 日志 上,或者你的作业 (jobs) 需要跨网络的资源,或者你需要通过 e-mail 或者 pagers 通知操作者,这时候,你就需要将 SalServerAgent 服务的帐户设置在域用户群组 (Domain User Group) 下作为它的成员。
3. 如果所定义的警报都没有触发,检查 SqlServerAgent 和 EventLog 服务是否都在运行。如果你需要让你定义的警报被触发,这些服务必须被开启。所以,如果这些服务没有被运行的话,请运行它们。
4. 如果有某个警报没有被触发,请确保它们是否被启用。警报可以被启用或禁用,为了检查一个警报是否被启用,你应该做以下这些步骤 :
运行 Sql Server Enterprise Manager
请打开服务器群组,然后打开某个服务器
请打开管理 (Management) ,然后再打开 Sql Server Agent
双击合适的警报以查看这个警报是否被启用了
检查警报的历史值以确定警报最后工作的日期和时间
为了检查一个警报的历史值,你应该做以下这些事情 :
运行 Sql Server Enterprise Manager
请打开服务器群组,然后打开某个服务器
请打开管理 (Management), 然后再打开 Sql Server Agent
双击合适的警报以查看警报的历史值
5. 核对每 20 秒维护的 计数器 值
因为 Sql Server Agent 每 20 秒间隔维护一个性能计数器,如果发现这个性能计数器只有几秒钟 ( 少于 20 秒 ) 才维护一次,那么极有可能你的这个警报将不会被触发。
6. 检查 Sql Server 错误日志、 Sql Server Agent 错误日志以及 Windows NT 和 Windows 2000 的应用程序日志,以获得有关错误描述的更多详细信息。仔细检查核对当产生警报失败事件时,被记录在 Sql Server 错误日志、 Sql Server Agent 错误日志以及 Windows NT 和 Windows 2000 的应用程序日志中的日期和时间以及对错误的描述能帮助你分析产生警报失败事件的原因。
7. 如果警报被触发了,但是这时候操作员却没有收到任何通知,请尝试手动使用 “e-mail” , “pager” 或者用 “net send” 将信息发送给操作员。在很多情况下,你输入了一个错 %C 。