第七篇 SQL Server代理作业活动监视器
本篇文章是SQL Server代理系列的第七篇,详细内容请参考原文
在这一系列的上一篇,你创建并配置SQL Server代理作业。每个作业有一个或多个步骤,可能包含大量的工作流。在这篇文章中,将查看作业活动监视器。作业活动监视器是系统管理工具来运行工作,查看作业历史记录,并启用/禁用作业。本文同样会回顾一些作业活动监视器调用的存储过程,你可以直接调用过程做你自己的自定义任务监控。
SQL Server代理作业活动监视器
SQL Server代理作业活动监视器的主要机制是监视作业运行,以及查看代理已运行的作业。作业活动监视器是一个单独的对话框,作业活动监视器使用系统存储过程和系统表来显示SQL Server代理作业状态。
使用作业监视器
启动SSMS,对象资源管理器下导航到SQL Server代理节点。你应该看到作业活动监视器,如图7.1所示。双击作业活动监视器,或右键点击菜单项并选择查看作业活动,你会看到作业活动监视器启动。你可能注意到标题也包含SSMS连接上的服务器名称。在我的例子使用的是“(本地)”(如图7.2所示)。
图7.1 启动作业活动监视器
图7.2 作业活动监视器对话框
在作业活动监视器下你可以看到实例上定义的所有代理作业。你可以看到哪些作业已启用,它们最近是否有运行,作业是否正在运行,上次运行结果是否成功,定期作业的下次运行时间,如果你的作业有分类,类别也会显示。
在代理作业活动的每一列都是可排序的--点击列的名称。例如,你可能想按照作业类别排序。作业类别是一个我们没有谈论到主题,所以我们将简要探讨创建和指定的作业类别。
作业类别
在作业活动监视器中用作业类别来分组作业非常有用。有一些内置的系统作业/任务作业类别。你也可以创建你自己的作业类别。SSMS->SQL Server代理->作业,右击作业,并选择管理作业类别。这将启动管理作业类别对话框,如图7.3所示。
图7.3 管理作业类别
点击添加…按钮创建一个新的作业类别。命名你的作业类别(本例中"backups"),然后单击“显示所有作业”复选框,列出你当前的SQL Server代理作业。勾选Backup Master作业,如图7.4所示。你也可以后期通过编辑作业属性,分配作业类别。
图7.4 创建作业类别并分配作业
再次单击“添加”按钮,并添加第二类别,命名为“Examples”,并选择这系列创建的其他示例作业。单击确定,然后单击“取消”关闭对话框(别担心,它不会撤消之前的操作,它只是在关闭管理作业类别对话框)。
作业活动监视器筛选设置
现在你有一些有趣的数据过滤和排序,重新打开或者退回到作业活动监视器。如果你点击网格中的“类别”的标题,你会看到作业按照新创建的类别排序(如图7.5所示)。
图7.5 按类别排序
你可以通过任何显示列进行排序,但是当你添加更多的作业时,对话框中的信息越来越多,要找到需要的作业将变得困难。
在对话框的顶部,你可以选择刷新或者过滤对话框。如果你有一百或更多的作业(我知道很多DBA管理许多作业),你可能会使用过滤设置对话框限制你想查看的作业。点击过滤,将看到筛选设置对话框。在类别中输入backups(如图7.6所示),并勾选对话框底部的“应用筛选器”复选框。单击“确定”,你将会看到图7.7,只显示作业类别为backups的作业。
图7.6 作业活动监视器筛选设置
图7.7 作业活动监视器应用筛选
注意,在对话框的左侧,你会看到一个过滤器被应用。如果你想再次看到所有的工作,你必须再次点击过滤,取消“应用筛选器”选项。
使用作业活动监视器来监控作业
你可以设置作业活动监视器自动刷新,那样你就能及时查看失败的作业。在作业活动监视器,点击“查看刷新设置”,你会看到刷新设置对话框,如图7.8所示。在这个例子中,勾选自动刷新间隔,然后更改秒从默认的60下降到30(具体的数值取决于你的监控)。
图7.8 作业活动监视器设置自动刷新
单击“确定”,现在的对话框会每30秒自动刷新。在上次的运行结果结合过滤或排序,就非常容易定位到失败的作业。
最后,如果你想管理作业(即启用、禁用、运行作业、或修改作业属性),只需右击作业活动监视器中的作业。这些和之前的SQL Server代理步骤文章相似,所以不会再次复述。
作业活动监视器下系统表和存储过程
作业活动监视器对应一些系统表和系统存储过程。SQL Server代理启动时,会往msdb.dbo.syssessions表插入新行,记录SQL Server代理启动的时间、session_id。每次启动服务时,所有已存在的SQL Server代理作业快照插入到msdb.dbo.sysjobactivity表。该表是用来记录作业活动监视器中的信息,如作业上次运行时间,下次运行时间。此外,一个指向作业历史记录的指针(job_history_id列)对应到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命令。
第七篇 SQL Server代理作业活动监视器的更多相关文章
- 【译】第七篇 SQL Server代理作业活动监视器
本篇文章是SQL Server代理系列的第七篇,详细内容请参考原文 在这一系列的上一篇,你创建并配置SQL Server代理作业.每个作业有一个或多个步骤,可能包含大量的工作流.在这篇文章中,将查看作 ...
- 第二篇 SQL Server代理作业步骤和子系统
本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作). ...
- 【译】第二篇 SQL Server代理作业步骤和子系统
本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作). ...
- 第八篇 SQL Server代理使用外部程序
本篇文章是SQL Server代理系列的第八篇,详细内容请参考原文 在这一系列的上一篇,学习了如何用SQL Server代理作业活动监视器监控作业活动和查看作业历史记录.在实时监控和管理SQL Ser ...
- 【译】第八篇 SQL Server代理使用外部程序
本篇文章是SQL Server代理系列的第八篇,详细内容请参考原文 在这一系列的上一篇,学习了如何用SQL Server代理作业活动监视器监控作业活动和查看作业历史记录.在实时监控和管理SQL Ser ...
- 第六篇 SQL Server代理深入作业步骤工作流
本篇文章是SQL Server代理系列的第六篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.每个作业步骤在技术 ...
- 【译】第六篇 SQL Server代理深入作业步骤工作流
本篇文章是SQL Server代理系列的第六篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.每个作业步骤在技术 ...
- 第五篇 SQL Server代理理解代理错误日志
本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到 ...
- 【译】第五篇 SQL Server代理理解代理错误日志
本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到 ...
随机推荐
- HDU 4310 贪心
题意 在游戏中你的dps为1但是hp无限 给出n个敌人的dps与hp 你一秒能打掉一个敌人你的dps的hp 当你输出的时候 所有活着的敌人都会打你 求杀死所有敌人时你掉的最少hp 一开始想错了 排序的 ...
- python 执行文件时传参
## test.py ## ####################### import sys if __name__ == "__main__": args = sys.arg ...
- js获取各种宽高方法
屏幕的有效宽高: window.screen.availHeightwindow.screen.availWidth 网页可见区域宽:document.body.clientWidth 网页可见区域高 ...
- 【转载】MySQL性能优化的最佳20+条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...
- Ubuntu 14.04 为 root 帐号开启 SSH 登录
1. 修改 root 密码 sudo passwd root 2. 以其他账户登录,通过 sudo nano 修改 /etc/ssh/sshd_config : xxx@ubuntu14:~$ su ...
- git rm –cached filename
为了能重新忽略那些已经被track的文件,例如停止tracking一个文件但是又不从仓库中删除它.可以使用以下命令: 代码如下 git rm –cached filename 上面这个命令用于删除单个 ...
- pointer
https://en.wikipedia.org/wiki/Pointer_(computer_programming) In computer science, a pointer is a pro ...
- 微信公众账号开发教程(四)自定义菜单(含实例源码)——转自http://www.cnblogs.com/yank/p/3418194.html
微信公众账号开发教程(四)自定义菜单 请尊重作者版权,如需转载,请标明出处. 应大家强烈要求,将自定义菜单功能课程提前. 一.概述: 如果只有输入框,可能太简单,感觉像命令行.自定义菜单,给我们提供了 ...
- Mongo中的数组操作
当前mongo中有这么一条数据 book是一个数组,在他后面添加一条数据 { "_id" : ObjectId("5721f504d1f70435632b5ce7&quo ...
- js中!!的作用
js中!!的作用是: !!一般用来将后面的表达式转换为布尔型的数据(boolean) ===表示类型什么的全部相等(自己写一个if测试一下就好了)!==表示要全部不想等包括类型(一样写一个if)||或 ...