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数据库聚簇索引与非聚簇索引举例详解

《Mysql数据库聚簇索引与非聚簇索引举例详解》在MySQL中聚簇索引和非聚簇索引是两种常见的索引结构,它们的主要区别在于数据的存储方式和索引的组织方式,:本文主要介绍Mysql数据库聚簇索引与非... 目录前言一、核心概念与本质区别二、聚簇索引(Clustered Index)1. 实现原理(以 Inno

sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符

《sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符》:本文主要介绍sqlserver、mysql、oracle、pgsql、sqlite五大... 目录一、转义符1.1 oracle1.2 sqlserver1.3 PostgreSQL1.4 SQLi

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

MySQL中C接口的实现

《MySQL中C接口的实现》本节内容介绍使用C/C++访问数据库,包括对数据库的增删查改操作,主要是学习一些接口的调用,具有一定的参考价值,感兴趣的可以了解一下... 目录准备mysql库使用mysql库编译文件官方API文档对象的创建和关闭链接数据库下达sql指令select语句前言:本节内容介绍使用C/

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

MySQL之搜索引擎使用解读

《MySQL之搜索引擎使用解读》MySQL存储引擎是数据存储和管理的核心组件,不同引擎(如InnoDB、MyISAM)采用不同机制,InnoDB支持事务与行锁,适合高并发场景;MyISAM不支持事务,... 目录mysql的存储引擎是什么MySQL存储引擎的功能MySQL的存储引擎的分类查看存储引擎1.命令