【译】第三篇 SQL Server代理警报和操作员
本篇文章是SQL Server代理系列的第三篇,详细内容请参考原文。
正如这一系列的上一篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行,除了步骤中执行的工作外,你可能想给DBA(或其他人)发送消息告知作业执行成功/失败。当系统遇到问题,比如性能问题,或者达到系统的阈值,你可能希望有信息发送。SQL Server代理提供创建警报的能力,可以将消息以通知的形式发送到指定的操作员,以协助你处理这些任务。
SQL Server代理警报是什么
SQL Server代理警报是对于数据库系统上的某些条件的自动响应。警报可以通过下列条件触发:
->产生数据库系统消息
->检测到最低级别的系统错误
->SQL Server计数器达到指定阈值
->WMI查询结果满足
一旦警报被触发,警报中所定义的响应就会发生。响应可能是运行一个特定的SQL Server代理作业,或者是通知一个或多个操作员。你还可以选择指定的错误文本包含到任何要发送的通知中。
SQL Server代理操作员是什么
SQL Server代理操作员可以简单地当作一个电子邮件地址。它有其他选项,如Net send地址,寻呼电子邮件名称,事实上寻呼就是用来发送邮件的。
注意:“Net Send”仍然是SQL Server警报选项,但此功能不可用于实践,官方已经不赞同使用,这意味着它将在未来版本的SQL Server中移除。警报唯一可行的选择是通过电子邮件通知。
当定义一个操作员,你可以使用操作员发送电子邮件(或通过电子邮件发送短信)来定义的电子邮件别名。电子邮件别名可能是一个或多个待命处理系统问题的DBA组合。重要的提醒,你可能想使用升级操作,例如可以将短信发送到手机。
创建操作员
为了创建操作员,首先打开SSMS,在SQL Server代理下面导航到操作员。右击操作员,然后选择新建操作员,如图3.1所示
图3.1 新建操作员
图3.1中,我已经指定的操作员的名称和电子邮件名称,确保点击的“确定”按钮,否则这个操作员不会有警报。
当你选择通知选项,你会看到一个已经分配给这个操作员的警报列表。因为这是新创建的操作员,所以图3.2中列表是空的,点击确定,操作员就创建好了。
图3.2 新建操作员的通知页面
在一个操作系统,预计至少要存在两个操作员。一个紧急系统通知(例如我们刚才创建的Server_Alerts操作员);一个分担工作,用于SQL Server代理作业和/或普通的错误。
操作员当然也可以用Transact-SQL定义。你可以用sp_add_operator系统存储过程来创建一个操作员。更多语法上的帮助,请查看联机丛书。
注意:一个关于操作员的普通问题是如何发送警报给多人。你可以通过邮件系统使用电子邮件分发列表,因为SQL Server代理只会发出警报给单一的操作员。因此你可以给操作员定义一个分配表,列表上的每个人将会收到相关的通知。
防故障操作员
防故障操作员使用于其他操作员通知失败的时候。有几个可能的原因导致这种失败(例如,在你的邮件系统故障,我们将在下一篇文章看到)。一旦你已经创建了一个或多个操作员就可以定义防故障操作员。防故障操作员是一个指定为最后接触手段的操作员。
你可以定义一个防故障操作员,在SQL Server代理属性对话框(右键单击SQL Server代理,选择属性),在警报系统页面。勾选启用防故障操作员,然后从列表中选择你已定义的操作员,如图3.3所示。当完成选择后点击“确定”。注意:本页上的选项的其余部分将在我的下一篇文章中数据库邮件讲解。
图3.3 启用防故障操作员
创建警报
现在我们准备实际创建警报,这正如我们前面看到的,警报是对于数据库系统上的某些条件的自动响应。定义一个新的警报,导航到SQL Server代理->警报,右击并选择“新的警报”弹出新建警报对话框,如图3.4所示。作为第一个警报,我们将创建一个警报以通知DBA任何系统级错误(严重性为19或更高)。
图3.4 新建警报
SQL Server事件警报
就如操作员,警报必须能够有任何警报发生。请注意,在这个例子中,“类型”选择的是“SQL Server事件警报”。你也可以选择“SQL Server性能条件警报”,提供了可视化的SQL Server性能计数器用于与此关联的实例。我们将在下一节中看到一个性能条件警报。最后,有一个“WMI事件警报”,将允许你编写Windows管理规范(WMI)查询和响应他们的警报。
严重性的下拉菜单中列出所有与SQL Server相关的可能错误严重级别。在19级或以上的错误是非常严重的错误,可能需要DBA干预调查为什么发生一个严重的错误。
一旦你选定图3.4中的选项,点击响应看看可以采取什么样的行动(如图3.5所示)。你会看到,你可以执行一个SQL Server代理作业,或通知操作员(例如,我们上面定义的操作员)。在这个例子中,我们选择发送一封电子邮件给我们的Severe_Alerts操作员。
图3.5 新建警报响应页面
你可以切换到“选项”页以对这个警报做一些有趣的选择,如图3.6所示。选择警报错误文本发送方式,如果你想知道为什么警报被发送给你(否则了解警报可能会有难度)。这一页还允许您指定一个额外的通知消息,这个可以用来在凌晨3点提醒你要醒了,或者作为搜索字符串来查找SQL Server的邮件。如果只是一个常见的报警条件,你可以选择使用默认的通知消息,完全没必要自己再补充。延迟选项指定你是否每次触发警报得到一个通知,或者是否一个“X”分钟或秒数是足够好。例子中,5分钟的延迟设置,使您的电子邮件不会被相同的问题导致收件箱暴满。
图3.6 新建警报选项页面
当你完成了对话框中的选择,单击“确定”,你就创建了一个新的警报。
当然,你也可以通过sp_add_alert系统存储过程创建警报。我们可以在SSMS中将刚才创建的警报生成脚本,如图3.7所示。
图3.7 警报脚本
警报豁免
你可以指定某些错误信息在警报中永远不发送。定义这样的错误,你必须手动更新服务器上的注册表。注册表中的位置是在你的特定实例注册表项,SQL Server代理文件夹下,你会发现一个名为“NonAlertableErrors”,如图3.8所示。默认情况下,有两个错误编号:1204(不能获得锁)和4002(登录失败)。如果你需要这些错误信息的警报,你就得编辑注册表项从列表中移除错误编号。相反,如果你不想收到某些错误信息的警报,你可以在此列表中添加对应的错误编号。当然,通常编辑注册表的时候要格外小心。
图3.8 注册表编辑NonAlertableErrors
性能条件警报
警报的第二种类型是性能条件警报。你可以设置许多基于性能计数器的警报。不幸的是,你仅仅限于和SQL Server相关的计数器,但仍然允许你为你的系统添加相当多的自动监测。例如,在下面的截图中(图3.9),在DBA_Monitor数据库中的事务日志超过90%的时候会收到一个警告。可参考图3.4和图3.5对警报进行设置,在响应页面,你可以执行一个SQL Server代理作业(增加日志空间,或开始一个备份),或通知操作员(上面定义过的操作员)。在这个例子中,我们选择发送一封电子邮件给我们的Severe_Alerts操作员。
图3.9 性能条件警报
警报扩展
除了文章中创建的高严重程度的警报,你应该了解警报的其他方面。在性能计数器和WMI查询上设置警报是非常强大的。虽然只有SQL Server特定的性能计数器,没有如CPU这类的系统计数器。然而,你仍然可以设置警报,当SQL Server登录数,或SQL Server内存,或I/O超过某个阈值时。
此外,当警报发生时自动执行一个作业意味着你可以解决许多常见的错误,而不是每次都要人为干预。
下一篇
在所有的SQL服务器系统至少要配置一个基本的警报。这将确保最严重的错误,一些通知发送到您的DBA团队。当然,电子邮件警报依赖于SQL Server可以发送电子邮件,所以下一篇文章将着重讨论如何配置数据库邮件。
【译】第三篇 SQL Server代理警报和操作员的更多相关文章
- 第三篇 SQL Server代理警报和操作员
本篇文章是SQL Server代理系列的第三篇,详细内容请参考原文. 正如这一系列的上一篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行,除了步骤中执行的工 ...
- 【译】第九篇 SQL Server代理了解作业和安全
本篇文章是SQL Server代理系列的第九篇,详细内容请参考原文 在这一系列的上一篇,学习了如何在SQL Server代理作业步骤启动外部程序.你可以使用过时的ActiveX系统,运行批处理命令脚本 ...
- 【译】第一篇 SQL Server代理概述
本篇文章是SQL Server代理系列的第一篇,详细内容请参考原文. SQL Server代理是SQL Server的作业调度和告警服务,如果使用得当,它可以大大简化DBA的工作量.SQL Serve ...
- 【译】第二篇 SQL Server代理作业步骤和子系统
本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作). ...
- SQL Server代理警报
使用SQL Server代理警报的前提条件1.创建操作员,接收消息的用户2.创建警报,满足某种条件触发警报,并作出响应(执行作业或/和通知操作员)3.配置数据库邮件,用于发送消息通知4.SQL Ser ...
- 【译】第六篇 SQL Server代理深入作业步骤工作流
本篇文章是SQL Server代理系列的第六篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.每个作业步骤在技术 ...
- 【译】第十篇 SQL Server代理使用代理帐户
本篇文章是SQL Server代理系列的第十篇,详细内容请参考原文 在这一系列的上一篇,你查看了msdb库下用于授权访问SQL Server代理的安全角色.这些角色包括SQLAgentUserRole ...
- 【译】第八篇 SQL Server代理使用外部程序
本篇文章是SQL Server代理系列的第八篇,详细内容请参考原文 在这一系列的上一篇,学习了如何用SQL Server代理作业活动监视器监控作业活动和查看作业历史记录.在实时监控和管理SQL Ser ...
- 【译】第五篇 SQL Server代理理解代理错误日志
本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到 ...
随机推荐
- PAT 甲级 1099 Build A Binary Search Tree
https://pintia.cn/problem-sets/994805342720868352/problems/994805367987355648 A Binary Search Tree ( ...
- 让VS2013支持 C# 6.0 语法
还未升级使用VS2015前,又想尝试使用C# 6.0的语言特性,可以用以下方法启用: VS2013中“工具”下选择“程序包管理器控制台”: 选中需要使用C# 6.0的项目,再敲入"Insta ...
- 探究Android中通过继承ViewGroup自定义控件的原理
原文地址:http://www.cnblogs.com/kross/p/3378395.html 今天断断续续的折腾了一下午到现在20:38,终于有点明白了.o(╯□╰)o 在Android开发中,我 ...
- py27使用redis
1.安装redis pip install redis 转载请注明博客出处:http://www.cnblogs.com/cjh-notes/
- 平衡树以及AVL树
平衡树是计算机科学中的一类数据结构. 平衡树是计算机科学中的一类改进的二叉查找树.一般的二叉查找树的查询复杂度是跟目标结点到树根的距离(即深度)有关,因此当结点的深度普遍较大时,查询的均摊复杂度会上升 ...
- 单源最短路径spfa模板(pascal)洛谷P3371
题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入输出格式 输入格式: 第一行包含三个整数N.M.S,分别表示点的个数.有向边的个数.出发点的编号. 接下来M行每行包含三 ...
- [您有新的未分配科技点]数位dp:从懵X到板子(例题:HDU2089 不要62)
数位dp主要用来处理一系列需要数数的问题,一般套路为“求[l,r]区间内满足要求的数/数位的个数” 要求五花八门……比如“不出现某个数字序列”,“某种数的出现次数”等等…… 面对这种数数题,暴力的想法 ...
- Day19内容回顾
1,Django请求的生命周期 路由系统-视图函数(获取模板+数据->渲染)->字符串返回给用户 2,路由系统 /index/ 函数或类.as_view() /detail(\d+)/ 函 ...
- pycharm中新建并且运行django
1.对于Bottle框架其本身未实现类似于Tornado自己基于socket实现Web服务,所以必须依赖WSGI,默认Bottle已经实现并且支持的WSGI有: 帮助我们写socket的server. ...
- Adreno GPU Profiler工具使用总结
Adreno Profiler介绍 Adreno Profiler 是高通公司开发的一款针对运行在高通骁龙处理器上用于图形和GPGPU技术应用的性能分析和帧调试工具.工具本质上是一个OpenGL ES ...