SQL Server 警报






4.50/5 (5投票s)
定义 SQL Server 警报 (shujaatsiddiqi.blogspot.com)
引言
本文讨论关于 SQL Server 警报的细节。
背景
DBA 不可能一直检查每个特殊情况。可能存在 DBA 想要进行一些自动管理或收到通知的特殊情况。SQL Server 有一个称为 ALERTS 的功能来应对这种需求。
警报的类型
有三种类型的警报
- SQL Server 事件警报
- SQL Server 性能条件警报
- WMI 事件警报
SQL Server 事件警报
这些错误可以针对特定的错误编号或严重级别定义。警报有 25 个不同的严重级别。详细信息如下

这些警报可以专门针对任何特定数据库定义,也可以为所有数据库通用定义。

SQL Server 性能条件警报
这些是由于实例的某些性能条件而生成的 SQL Server 警报。可以为各种对象生成这些警报。它们如下
- 缓冲区管理器
- 缓冲区分区
- 缓冲区节点
- 常规统计信息
- 锁
- 数据库
- 锁存器
- 访问方法
- SQL 错误
- SQL 统计信息
- 计划缓存
- 按类型划分的游标管理器
- 游标管理器总计
- 内存管理器
- 用户可设置
- 事务
- Broker 统计信息
- Broker / DBM 传输
- Broker 激活
- TO 统计信息
- 等待统计信息
- 执行统计信息
- CLR
- 目录元数据
- 已弃用的功能
- 工作负载组统计
- 资源池统计
与上面指定的每个对象关联的各种不同的计数器。例如,当日志文件的使用量等于任何特定值时,可能会生成数据库警报。基本上,可以检查每个计数器是否等于、大于或小于任何特定值。

WMI(Windows Management Instrumentation)警报
您知道,WMI 脚本用于自动执行基于 Windows 环境中关于数据管理的管理任务。也可以指定 WMI 查询来定义警报。对于这些类型的警报,指定命名空间和 WMI 脚本查询。

警报的响应
作为警报的结果,可以生成两种类型的响应。请记住,这两种响应不是相互排斥的,即,可以生成任何一种或两种响应作为警报的结果
- 执行任何 SQL Server 代理作业
- 通知操作员
可以通过电子邮件、寻呼机或网络发送消息来通知操作员。 DBA 可以选择任何已存在的操作员或定义新的操作员。也可以在每个警报之间定义一些延迟。还可以将一些特定消息添加到响应中。这些响应也可以与警报的错误消息一起定义。警报也可能受到警报错误消息的特定文本的影响。

T-SQL 支持
现在您一定想知道是否有任何 T-SQL 支持可用于定义这些警报。所以答案是肯定的。以下存储过程可用
msdb.dbo.sp_add_alert
:此存储过程用于定义任何新警报。
注意
必须记住,DBA 可以选择启用/禁用任何或所有警报。
历史
- 2008 年 8 月 24 日:初始帖子