SQL Server代理警报

2023-11-07 00:59

本文主要是介绍SQL Server代理警报,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用SQL Server代理警报的前提条件
1、创建操作员,接收消息的用户
2、创建警报,满足某种条件触发警报,并作出响应(执行作业或/和通知操作员)
3、配置数据库邮件,用于发送消息通知
4、SQL Server代理->属性->警报系统->启用邮件配置文件,选择对应的邮件系统及配置文件
详细配置步骤请参考SQL Server代理警报和操作员和SQL Server代理配置数据库邮件
测试服务器按上述方式配置后,模拟满足触发警报的条件,并没有出现预期结果,SQL Server代理日志如下:

[264] 尚未建立电子邮件会话就试图发送电子邮件。搜索问题只需重启代理服务即可。
一、如何给多人发送警报?
方法一、操作员->常规->电子邮件名称,按照mail1;mail2;mail3这种格式,将需要发送的邮件地址加上:

方法二、创建新的操作员,然后在警报的响应页勾选要通知的操作员:

下图是电子邮件名称带多个地址及通知多个操作员的邮件发送记录:

二、上次警报的日期和上次响应的日期是如何界定?

满足条件触发警报,更新上次警报的日期;如果响应中有设置执行作业或/和通知操作员,则执行这些操作时,更新上次响应的日期。
msdb..sp_sqlagent_get_perf_counters is used to fire the the sqlagent alerts.
Whenever there is alert set,this procedure is executed in background to determine the threshold limits, be it an alert for any performance condition.
You mention that it runs frequently,but by default its 20 seconds.Theres a registry key to change the interval HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.SQL08R2\SQLServerAgent\PerformanceSamplingInterval

默认每20秒检查是否触发警报,只有满足条件才会触发,然后根据响应执行作业或/和通知操作员。响应受限于选项中的[两次响应之间的延迟时间],延迟时间在警报太频繁时,避免发送太多通知挤爆邮箱。
测试创建的警报如下:

只有SQL Server特定的性能计数器,没有如CPU这类的系统计数器:

警报对应的数据库邮件日志(日志记录级别设置为详细)如下:

由于测试中一直满足触发警报的条件,从数据库邮件日志也可以看出每20秒发送一次邮件。
收到的警报邮件如下:

注意响应操作得到的数据是响应时刻的数据。例如,在上面的测试中将[两次响应之间的延迟时间]设置为10分钟,实际上每20秒会触发警报,但每10分钟才发送一次邮件。如果我们在第8分钟时修改Log File(s) Used Size (KB),在第10分钟发送的邮件将是修改后的数值信息。
09:32 2016/5/25 操作员的电子邮件名称带有多个邮件地址时,响应邮件有时会发送失败。下面是测试样例,[两次响应之间的延迟时间]设置为2分钟,sysmail_mailitems显示总共发送7封邮件,3封发送失败:

收到的邮件如下:

数据库邮件日志如下:

根据提示的链接,查找DT:SPM代码对应的说明:
451 DT:SPM ,please try again 邮件正文带有垃圾邮件特征或发送环境缺乏规范性,被临时拒收。请保持邮件队列,两分钟后重投邮件。需调整邮件内容或优化发送环境;
550 DT:SPM 邮件正文带有很多垃圾邮件特征或发送环境缺乏规范性。需调整邮件内容或优化发送环境;
554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;
意思就是邮件正文不合规,被当作垃圾邮件拒收。如果电子邮件名称只含一个地址就不会出现这样的错误。因此为了能及时收到通知消息,建议在电子邮件名称只包含一个地址。可以在邮件系统将多个用户合并到一个分组。
12:02 2017/6/23 补充
警报类型为[SQL Server性能条件警报],取一个计数器SQLServer:Databases->Log File(s) Used Size (KB)->Test 高于 10000,虽然一直满足触发条件,但也只有在msdb..sp_sqlagent_get_perf_counters执行时才获取当前值;而[SQL Server事件警报]是会记录每次的警报。例如触发警报条件:严重性->014,尝试用sa登录(sa已经被禁用)了三次,如果这三次在同一个检测周期内完成,如果你的delay_between_responsesis设置为0, 那么会收到三封邮件,你自己可以测试一下。参考SQL Server Alert发送告警邮件少了的原因的评论部分。

转载于:https://www.cnblogs.com/Uest/p/5524365.html

这篇关于SQL Server代理警报的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/360178

相关文章

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

MySQL错误代码2058和2059的解决办法

《MySQL错误代码2058和2059的解决办法》:本文主要介绍MySQL错误代码2058和2059的解决办法,2058和2059的错误码核心都是你用的客户端工具和mysql版本的密码插件不匹配,... 目录1. 前置理解2.报错现象3.解决办法(敲重点!!!)1. php前置理解2058和2059的错误

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们