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):作业活动监视器的更多相关文章

  1. SQL Server代理(2/12):作业步骤和子系统

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. SQL Server代理作业有一系列的一个 ...

  2. SQL Server代理(5/12):理解SQL代理错误日志

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 如我们在这个系列的前几篇文章所见,SQL ...

  3. SQL Server代理(1/12):配置和概况

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. SQL Server代理是SQL Serv ...

  4. SQL Server代理(11/12):维护计划作业

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在这一系列的上一篇,我们看了使用代理帐户模 ...

  5. SQL Server代理(9/12):理解作业和安全

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在这个系列的前一篇文章里,你学习了如何在S ...

  6. SQL Server代理(6/12):作业里的工作流——深入作业步骤

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 如我们在这里系列的前几篇文章所见,SQL ...

  7. SQL Server代理(10/12):使用代理账号运行作业

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在这一系列的上一篇,你查看了msdb库下用 ...

  8. SQL Server代理(8/12):使用SQL Server代理外部程序

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在这个系列的上篇文章里,你学习如何使用SQ ...

  9. SQL Server代理(4/12):配置数据库邮件

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在以前的文章里我们看到,SQL Serve ...

随机推荐

  1. UML学习备忘

    两大类UML图: 行为图(behavior diagrams)和结构图(structure diagrams)     行为图将引导系统分析员分析且理清"系统该做些什么"?系统分析 ...

  2. 移动开发发展方向-----Hybird混合开发3大方案

    移动开发发展方向-----Hybird混合开发3大方案

  3. 如何利用Github+Appveyor+Nuget打造自己的.net core开源库

    以下教程基于你有一个托管在Github上的.net core项目,如果没有的可以自己fork一个或者自己创建了默认的项目即可. 我们打开需要生成nuget包的项目中的project.json文件,有关 ...

  4. OWIN的理解和实践(三) –Middleware开发入门

    上篇我们谈了Host和Server的建立,但Host和Server无法产出任何有实际意义的内容,真正的内容来自于加载于Server的Middleware,本篇我们就着重介绍下Middleware的开发 ...

  5. Redis 系列 (一) StackExchange.Redis的使用

    一.DLL安装 用NuGet搜索StackExchange.Redis,然后下载就可以. ConnectionMultiplexer对象是StackExchange.Redis最中枢的对象.这个类的实 ...

  6. OC中的自动引用计数

    目录: 1,自动引用计数的定义 2,强引用和弱引用 3,类比手动引用 4,循环引用 5,CoreFoundation 内容: 自动引用计数的定义: (Automatic Reference Count ...

  7. LUN/PV/VG/LV

    存储中的几个概念,参考一些网络资料重新画个图梳理下,如下: LUN:lun是针对存储设备(如磁盘阵列)的逻辑概念,物理上可能就是几块硬盘.那么主机的HBA 卡看到的存储上的存储资源就靠主要两个东西定位 ...

  8. ReentrantLock实现原理深入探究

    前言 这篇文章被归到Java基础分类中,其实真的一点都不基础.网上写ReentrantLock的使用.ReentrantLock和synchronized的区别的文章很多,研究ReentrantLoc ...

  9. PC远程调试移动设备

    我们在移动端进行前端开发时,会遇到一个让人头痛但不得不面对的问题——调试. 在 PC 机器上,我们有功能强大的 Chrome DevTools.Firebug,即便是老版本的 IE ,我们也可以安装微 ...

  10. 《CLR.via.C#第三版》第二部分第4,5章节读书笔记(二)

    这两章全是理论性的东西,我觉得不必过于钻牛角尖.理论这东西,只有在长期的实践中去慢慢领悟才会深刻.下面我只写些我认为重要的关键知识. (一)类型转换 知识点:向基类型的转换被认为是一种安全的隐式转换: ...