如果你在使用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.如果有某个警报没有被触发,请确保它们是否被启用
警报可以被启用或禁用,为了检查一个警报是否被启用,你应该做以下这些步骤:
1. 运行Sql Server Enterprise Manager
2. 请打开服务器群组,然后打开某个服务器
3. 请打开管理(Management),然后再打开Sql Server Agent
4. 双击合适的警报以查看这个警报是否被启用了
5.检查警报的历史值以确定警报最后工作的日期和时间
为了检查一个警报的历史值,你应该做以下这些事情:
1. 运行Sql Server Enterprise Manager
2. 请打开服务器群组,然后打开某个服务器
3. 请打开管理(Management),然后再打开Sql Server Agent
4. 双击合适的警报以查看警报的历史值
6.核对每20秒维护的计数器值
因为Sql Server Agent每20秒间隔维护一个性能计数器,如果发现这个性能计数器只有几秒钟(少于20秒)才维护一次,那么极有可能你的这个警报将不会被触发。
7.检查Sql Server错误日志,Sql Server Agent错误日志以及Windows NT和Windows 2000的应用程序日志以获得有关错误描述的更多详细信息
仔细检查核对当产生警报失败事件时,被记录在Sql Server错误日志,Sql Server Agent错误日志以及Windows NT和Windows 2000的应用程序日志中的日期和时间以及对错误的描述能帮助你分析产生警报失败事件的原因。
8.如果警报被触发了,但是这时候操作员却没有收到任何通知,请尝试手动使用"e-mail","pager"或者用"net send"将信息发送给操作员
在很多情况下,你输入了一个错误的"e-mail","pager"地址,或者"net send"了一个错误的地址,就会产生标题所描述的这个问题。如果你要手动的使用"e-mail","pager"或者用"net send"将信息发送个操作员,请检查运行其下的Sql Server Agent的帐户,并且也要核对在日程表中有关操作员的信息。
9.如果警报被触发了,但是操作员没有能及时的收到通知,请减少这个警报"Delay between responses"的设置,然后将信息发送给少数的操作员以作为测试
为了减少这个警报的"Delay between responses"设置,你应该做以下这些事:
1. 运行Sql Server Enterprise Manager
2. 请打开服务器群组,然后打开某个服务器
3. 请打开管理(Management),然后再打开Sql Server Agent
4. 双击合适的警报,并且选择"Response"Tab页
5. 指定新的"Delay between response"设置
10.警报不能使用xp_logevent发送e-mail通知或者产生错误
这是Sql Server 7.0和Sql Server 2000的bug。如果你定义的这个警报是受限于指定的数据库而不是master数据库,就会产生标题所描述的这种情况。为了使它们工作,你可以将警报定义于master数据库或者所有的数据库。为了将警报定义于所有的数据库,你应该按以下步骤来做:
1. 运行Sql Server Enterprise Manager
2. 请打开服务器群组,然后打开某个服务器
3. 请打开管理(Management),然后再打开Sql Server Agent
4. 双击合适的警报并且在Database name下列列表框中选择"All Databases"(所有数据库)
11.当安全审核被启用时,警报被不正确的触发了
这是Sql Server 7.0和Sql Server 2000的bug。这个bug在Sql Server 2000的service pack 1和Sql Server 7.0的service pack 4中被修补了。为了避免出现以上这个问题,你要将安全审核禁用或者安装以上所提到的Service Pack。
12.在安装好了Sql Server 7.0 service pack 3后,你的Sql Server Agent下的警报可能不工作
这是Sql Server 7.0 service pack 3的bug,为了避免出现这个问题,你应该安装最新的Sql Server 7.0 service pack 4。
13.每20秒对于有关性能状态的响应就被发送了,而不管对于警报的"Delay between responses"的设置
这是Sql Server 7.0的bug,为了避免出现这个问题,你应该安装Sql Server 7.0的service pack 1或者更高版本的service pack。