加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server Alert发送告警邮件少了的原因

发布时间:2020-12-12 09:57:24 所属栏目:MsSql教程 来源:网络整理
导读:最近突然发现我们部署在数据库上面的告警(Alert),当错误日志里面出现错误时,并不是每个错误日志都会发送邮件出来。如下所示,设置了告警“ ” IF NOT EXISTS(SELECT 1 FROM msdb.dbo.syscategories WHERE NAME='DBA_MONITORING' AND category_class=2) B

最近突然发现我们部署在数据库上面的告警(Alert),当错误日志里面出现错误时,并不是每个错误日志都会发送邮件出来。如下所示,设置了告警“

IF NOT EXISTS(SELECT 1 FROM msdb.dbo.syscategories WHERE NAME='DBA_MONITORING' AND category_class=2)
BEGIN

EXEC msdb.dbo.sp_add_category
@class=N'ALERT',@type=N'NONE',@name=N'DBA_MONITORING' ;

END
GO

IF EXISTS(SELECT name FROM msdb.dbo.sysalerts WHERE name= N'SQL Server Severity Event 14')

EXEC msdb.dbo.sp_delete_alert @name=N'SQL Server Severity Event 14'
GO

EXEC msdb.dbo.sp_add_alert @name=N'SQL Server Severity Event 14',@message_id=0,@severity=14,@enabled=1,@delay_between_responses=60,@include_event_description_in=1,@category_name=N'DBA_MONITORING',@job_id=N'00000000-0000-0000-0000-000000000000'
GO

EXEC msdb.dbo.sp_add_notification @alert_name=N'SQL Server Severity Event 14',@operator_name=N'YourSQLDba_Operator',@notification_method = 1
GO

然后我尝试用sa登录(sa已经被禁用)了三次,但是我只收到了一封邮件。特意查看了一下sp_add_alert的官方文档,才知道出现这个原因,是因为参数@delay_between_responses的值设置缘故,通过设置该值,可以防止在在短时间内重复发送一些不需要的电子邮件。如上所示,一分钟内,即使错误日志里面出现了大量类似的错误,也只会发送一封告警邮件。其实只是为了减少发送告警的频率,如果你想当错误日志里出现这个级别的告警时,都必须发送告警邮件,可以将其值设置为0。但是有时候,如果设置为0,你会收到铺天盖地的邮件。其实这个小问题,只是因为以前没有特意留意这个参数而已。存粹属于没有彻底了解这些功能罢了。

警报响应之间的等待时间 (以秒为单位)。delay_between_responsesis int,默认值为 0,这意味着在响应之间没有等待 (每次出现警报都会生成响应)。响应可以是在以下两种形式中的一个,或者都是:
通过电子邮件或寻呼机发送的一个或多个通知。
要执行的作业。
通过设置此值,可以防止例如,在短时间内重复发生警报时发送不需要的电子邮件。

参考资料:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读