<3>实现Job任务运行状态的检测
在我们使用SQL Server的时候,很多情况下都需要自定义Job进行部分功能的实现,而大部分时间是采取凌晨或者非业务期进行工作。
而此Job的运行结果的检测便形成了一个需要跟踪的问题,比如有时候N个Job的运行,只有几个出现问题,并且不确定的此Job发生在那个机器上,所以自动化运维的重要性就不言而喻了。
对于上面问题的解决,SQL Server提供了很简单的配置就可以实现。
(1)首先,需要定义几个操作员,说到底就是几个人值班运维此数据库的

上面,我就定义了一个人,其实可以定义多个人,几个运维人员几个...
(2)其次,需要定义警报,说到底就是将产生的预警发送给上面的几个运维人员。

这里面的严重性选项其实是一个很重要的功能,一些简单的问题警告有时候是不需要及时关注的,或者说不需要暂时处理的。
但是有些问题则需要里面去解决,比如服务器宕机....
然后,我们来将此预警关联之操作员

到此,我们已经完成了预警的检测配置,然后需要的就是关联下Job代理的任务属性值。

经过上面的配置,任何我们自定义的Job工作状态都可以进行自动化检测了。
比如:某个Job跑批成功了,某个Job跑批失败了。我们来新建一个自定义的Job来测试下:

然后设置警告

然后,在运行此Job出现异常的时候,就可以自动的报告到相应的运维人员了。
这里我们就设置了一个运维人员,所以这里只发送给一个人。
我们来手动运行下,来测试一下效果

嘿嘿,果然,发出了警报,看起来很贴心的样子


至此,此功能已经配置完成,自己可以灵活的实现。
结语
本来打算将利用Power Shell脚本检测的功能实现方式也加上的,但文章已经稍有点篇幅了,后续再完成吧。此篇的关于SQL Server的邮件功能算作抛砖引玉了,自己另有需求可以自己灵活实现。
其实,在本篇所介绍的Job任务的检测在几台服务器上存在还问题不大,但是如果多台服务器,如果每台服务器上都有几个Job异常的话,每天早上打开邮件多的估计会令你头皮发麻,并且在自带的异常报警中,没有给出详细的错误信息,其实这是一个很不爽弊端。
所以,为了优雅的进行自动化运维的工作,我们将会每次将我们所有检测的服务器Job运行状态进行扫描,而后将其汇总至一封邮件,然后按照重要性发送至固定的运维人员。
听起来是不是还有点小激动的样子,下一篇我们来实现此功能。有兴趣的童鞋,可以提前关注。
关于SQL Server自动化运维和检测的内容很广泛,其中很多都是从日常的经验中出发,一步步的从手动到自动的过程。
博文出处:http://www.cnblogs.com/zhijianliutang/p/4421556.html