Sql Server 监控 Job 执行情况


由于最近数据库的部分job总是不能十分健康的执行,而监控起来只能登陆db服务器去查看错误日志,维护起来十分麻烦,并且job一般都是比较重要的,比如备份数据库或者清理数据库等等。网站这边,经常由于清理job不能正常执行,造成数据库空间在几天内增加 2G - 3G 左右,最后排查发现,是由于执行清理的sql语句执行超时而至。所以,做了一个job执行报表的功能,集成于公司的后台,和 错误日志放在了一起,这样就能每天方便的监控了。

下面是用到的SQL 语句:

select top 150 a.run_date,a.run_time, b.name,step_id,step_name,a.message,a.run_status,a.run_duration
                                from msdb.dbo.sysjobhistory a ,msdb.dbo.sysjobs b
                                where a.job_id=b.job_id and name not in('job_exclude') and a.step_id>0
                                order by run_date desc

该功能主要用到了 msdb.dbo.sysjobhistory 和 msdb.dbo.sysjobs 两张 job 系统表

job_exclude:是一些执行十分频繁的job,可以排除掉,比如5分钟执行一次等,监控没有太大的意义

下面是功能图:


其实对于 db 的维护,可以有其他更多更好的途径,稍后会考虑用网页的方式来监控 数据库 健康信息,如磁盘占用空间等等,这样能和内部后台紧密联系,便于监控

希望能对你有所帮住,请多多点击推荐,谢谢


相关文章:
Sql Server 系统表分析(1) - 备份表
Sql Server 监控 Job 执行情况

寻自己 - 2011/04/18 17:35 - .Net,C#,Asp.Net - 首发博客园

原文地址:https://www.cnblogs.com/xunziji/p/2020037.html