SQL Server代理(7/12):作业活动监视器
SQL Server代理是所有实时数据库的核心。代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的。这系列文章会通俗介绍它的很多用法。
在这个系列的前几篇文章里,你创建配置了SQL Server代理作业。每个作业有一个或更多步骤,如你在前几篇文章所示,也会包括大量的工作流。在这篇文章里,我们会谈下作业活动监视器。作业活动监视器是系统管理员工具来运行作业,查看作业历史,启用/停止作业。这篇文章会谈下作业活动监视器运行的几个存储过程,你也可以直接使用它来定制你的作业监控。
SQL Server代理作业活动监视器
SQL Server代理作业活动监视器是监视运行作业的主要机制,也可以用来查看已运行的SQL Server代理作业。作业活动监视器是在SSMS里启动的独立对话框。作业活动监视器使用系统存储过程和系统表来显示SQL Server代理作业状态。
使用作业活动监视器
要使用作业活动监视器,从SSMS,在对象浏览器里切换到SQL Server代理节点。你应该看到作业活动监视器,如插图1所示。注意高亮或单击作业活动监视器没有效果,因为作业活动监视器是独立的对话框,不在SSMS的界面里显示。一旦你双击了作业活动监视器,或者右击选择菜单【查看作业活动】。 你会看到作业活动监视器启动。你会注意到它包含了SSMS里使用的连接的服务器名,在我的环境里用的是“(local)”(如插图2所示)。

插图1:启动作业活动监视器

插图2:作业活动监视器对话框
你会在对话框的【代理作业活动】部分看到在这个SQL Server实例里,SQL Server代理定义的作业。在一个简单的视图对话框里,你会看到哪些作业已启用,最近它们是否运行,作业当前是否在运行,上一次运行是否成功,如果是定期的作业下次作业运行的时间。如果作业已经分类,也会显示类别。
作业类别
在作业活动监视器里,作业类别是非常有用的分组工具。对于系统作业/任务有很多内建的作业类别。你也可以创建你特定的类别,现在就弄。切换回SSMS,右击【作业】文件夹,选择【管理作业类别】。这会启动【管理作业类别】对话框,如插图3所示。

插图3:管理作业类别
点击【添加】按钮创建新的作业类别。命名你的作业类别(对于这个类别,我们命名为“数据库备份”,然后勾选【显示所有作业】来显示你当前SQL Server代理的作业,如插图4所示)。你也可以修改作业的属性,标记作业为新的作业类别。

插图4:创建新的作业类别并指定一个作业到此类别。
(博主注:貌似我可以添加类别,但是勾选【显示所有作业】并不能列出作业列表,只能到作业里的属性修改它的【作业类别】)
再次点击【添加】,增加第2个类别为“例子”,然后勾选这个系列文章里的其他例子作业。点击【确定】,然后点击【取消】关闭对话框(别担心,这不会撤销你的操作,它只是关闭作业【管理作业类别】对话框)。
作业活动监视器筛选
现在你有一些有趣的数据来筛选和排序,重新打开回到【作业活动监视器】。如果你在列表里点击“类别”,你会看到作业已经按你新建的类别排序(如插图5所示)。

插图5:按作业类别排序
你可以按显示的任何列排序,但你如果添加更多的列会你显示的信息太过拥挤,让找作业变得更加困难。
在对话框的顶部,你有【刷新】对话框的选项,你也可以筛选。如果你有100甚至更多的作业(我知道很多DBA都有很多的作业),你很会想使用【筛选设置】对话框来限制你视图显示的作业。点击【筛选】按钮,你会看到SSMS的标准筛选对话框。在类别里输入【数据库备份】(如插图6所示),在对话框底部勾选【应用筛选器】,点击【确定】,你会看到插图7所示,只有类别为【数据库备份】的作业会显示。

插图6:在作业活动监视器里筛选

插图7:在作业活动监视器里应用筛选后的视图
注意对话框的左边,你会看到筛选已经应用。如果你想再次看到你的所有作业,你必须点击【筛选】按钮,不勾选【应用筛选器】选项。
使用作业活动监视器积极监控作业
你也可以设置作业活动监视器自动刷新,这样的话你可以找到失败的作业。在作业活动监视器里,点击【查看刷新设置】,你会看到如插图8所示的刷新设置对话框。在这个例子里,勾选【自动刷新间隔】,修改默认60秒的刷新时间为30秒(这数字的大小取决于你的监控)。

插图8:对作业活动监视器设置自动刷新
点击【确定】,现在对话框会每30秒刷新一次。现在与筛选设置结合,就很容易找出失败的作业。
最后,如果你想管理作业(例如启用,停止,运行作业或修改作业属性),可以在作业活动监视器里右击对应作业。这个在以前的文章已经谈过,这里就不描述了。
作业活动监视器支持的的系统表和存储过程
在作业活动监视器下有一些系统表和系统存储过程。SQL Serverdialing每次启动的时候,会插入新记录到msdb.dbo.syssessions表,记录SQL Server代理启动的日期/时间,和一个“session_id"。每次服务启动后,当服务启动插入到msdb.dbo.sysjobactivity表后,会有SQL Server代理作业的所有快照清单。这个表用来记录你在作业活动监视器里看到的信息,如果上次作业运行是什么时候,作业下次会在什么时候运行。另外,指向作业历史的记录在msdb.dbo.sysjobhistory里保存。
另外,在作业活动监视器看到的信息也包括从系统表(例如msdb.dbo.sysjobs,msdb.dbo.sysjobsteps)和一些扩展存储过程(例如master.dbo.xp_sqlagent_enum_jobs)收集的信息。所有这些表和存储的信息都是作业活动监视器从系统存储过程msdb.dbo.sp_help_job调用的。
如果你不想用作业活动监视器,可以在SSMS里运行sp_help_job来查看。但你想了解具体的情况,可以创建运行sp_help_job的作业,通过邮件发送结果到你的手机。
下篇预告
SQL Server作业监视器允许你用灵活的图形界面监视作业活动和作业过程。你可以排序,分类,筛选你的作业来更好的监视你在任何时候感兴趣的作业。如果你不想使用图像界面,可以使用作业活动监视器调用的系统存储过程。
在下篇文章里,我们会谈下SQL Server代理的外部程序,例如启用命令行输出或Powershell,还有通过操作系统运行命令。
原文链接:http://www.sqlservercentral.com/articles/Stairway+Series/72458/
SQL Server代理(7/12):作业活动监视器的更多相关文章
- SQL Server代理(2/12):作业步骤和子系统
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. SQL Server代理作业有一系列的一个 ...
- SQL Server代理(5/12):理解SQL代理错误日志
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 如我们在这个系列的前几篇文章所见,SQL ...
- SQL Server代理(1/12):配置和概况
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. SQL Server代理是SQL Serv ...
- SQL Server代理(11/12):维护计划作业
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在这一系列的上一篇,我们看了使用代理帐户模 ...
- SQL Server代理(9/12):理解作业和安全
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在这个系列的前一篇文章里,你学习了如何在S ...
- SQL Server代理(6/12):作业里的工作流——深入作业步骤
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 如我们在这里系列的前几篇文章所见,SQL ...
- SQL Server代理(10/12):使用代理账号运行作业
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在这一系列的上一篇,你查看了msdb库下用 ...
- SQL Server代理(8/12):使用SQL Server代理外部程序
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在这个系列的上篇文章里,你学习如何使用SQ ...
- SQL Server代理(4/12):配置数据库邮件
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在以前的文章里我们看到,SQL Serve ...
随机推荐
- 使用C#开发ActiveX控件(新)
前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是 ...
- Nim教程【十二】
排除指定符号 一般情况下使用import语句,会把一个模块内的符号都导入进来 如果你像排除特定的符号(不想让某些符号被导入进来) 可以使用except子句 就像下面这样 import mymodule ...
- java提高篇(十三)-----equals()方法总结
equals() 超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等.该方法的源码如下: public boolean equals(Object obj) { retu ...
- js模版引擎handlebars.js实用教程——循环中使用索引
<!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content="text/ ...
- JavaScript包装对象
JavaScript是面向对象的语言,使用”.”操作符可以访问对象的属性和方法,而对于基本类型(null, undefined, bool, number, string)应该是值类型,没有属性和方法 ...
- AngularJS快速入门指南18:Application
是时候创建一个真正的AngularJS单页面应用程序了(SPA). 一个AngularJS应用程序示例 你已经了解了足够多的内容来创建第一个AngularJS应用程序: My Note Save Cl ...
- EF架构~在T4模版中为所有属性加默认值
回到目录 在项目开发过程中,出现了一个问题,就是新添加一个非空字段后,原来的程序逻辑需要被重新修改,即将原来的字段添加到程序里,这种作法是非常不提倡的,所以,我通过T4模版将原来的实体类小作修改,解决 ...
- struts2学习笔记之十:文件上传
Struts2的上传 1.Struts2默认采用了apache commons-fileupload 2.Struts2支持三种类型的上传组件 3.需要引入commons-fileupload相关依赖 ...
- Mybatis逆向工程构建项目实例.
2016/11/06更新: 因为有博友可能需要这份代码, 所以我就直接发到百度云上面和大家共享, 如果链接失效请大家留言提示即可.下载地址: http://pan.baidu.com/s/1i57E8 ...
- [Spring框架] Spring中的 ContextLoaderListener 实现原理.
前言: 这是关于Spring的第三篇文章, 打算后续还会写入AOP 和Spring 事务管理相关的文章, 这么好的两个周末 都在看code了, 确实是有所收获, 现在就来记录一下. 在上一篇讲解Spr ...