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. 解决web中的乱码

    统一使用utf-8进行编码数据库的编码格式也是utf-8 对于页面post传过来的不会出现乱码 对于页面get 传过来值解决乱码 方法一:在业务层:userName = new String(user ...

  2. codeblocks配置GLUT

    codeblocks配置OPENGL GLUT 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据G ...

  3. SQLSERVER2008新增的审核/审计功能

    SQLSERVER2008新增的审核/审计功能 很多时候我们都需要对数据库或者数据库服务器实例进行审核/审计 例如对失败的登录次数进行审计,某个数据库上的DDL语句进行审计,某个数据库表里面的dele ...

  4. 对InvokeAction简略分析了解验证失败为什么Action还会继续执行

    一.前言 有些同学使用AuthorizationFilter来进行用户是否登录验证,如果未登录就跳到登录页. 很简单的一个场景,但是有些同学会发现虽然验证失败了,但是整个Action还会执行一遍. 于 ...

  5. Unable to locate secure storage module异常的解决方案

    org.eclipse.equinox.security.storage.StorageException: Unable to locate secure storage module 该异常同样是 ...

  6. 关于Xcode5的离线帮助

    关于Xcode的离线帮助文档,网上找到的许多都是Xcode4的资料,Xcode5貌似将文档搬到了Help菜单里,而不是原先的<Window> - <Organizer> - & ...

  7. ejs模板中的四种表达式输出形式

    在ejs模板中,通常会用下面四种方式在HTML中输出服务端的变量或表达式的值: 1. 直接在<%%>中写表达式或变量.这种情况通常只是用来进行表达式计算或给变量赋值,不会有任何输出,被称作 ...

  8. 案例研究:CopyToAsync

    返回该系列目录<基于Task的异步模式--全面介绍> 把一个流拷贝到另一个流是有用且常见的操作.Stream.CopyTo 方法在.Net 4中就已经加入来满足要求这个功能的场景,例如在一 ...

  9. 对Google cloud platform 做了点研究

    Google也推出了云计算基础服务, 加上微软Azure,亚马逊AWS, 都齐活了. 下面是研究了一下对其的一个初步了解. 计算: Compute Engine     IaaS平台,提供VM,操作灵 ...

  10. js笔记——call,apply,bind使用笔记

    call和apply obj.call(thisObj, arg1, arg2, ...); obj.apply(thisObj, [arg1, arg2, ...]); 两者作用一致,都是把obj( ...