作业一直"执行"
背景:一个作业有7个步骤,前面的步骤成功/失败都转到下一步,直至最后退出,作业计划是每天早上8点执行。步骤中的语句是例行检查脚本,之前的历史记录都是一分钟内完成。此次重启数据库服务器后,检查发现此作业在重启受影响范围内。查看作业历史记录,显示作业正在进行,持续时间为3天8小时43分钟,而且持续时间一直在增长。
首先,怀疑步骤中的语句有问题,会不会是对大表进行操作(有死锁检查,不会堵这么久)?语句中有循环、waitfor关键字?查看第4步(前3步已执行成功),只是从ERRORLOG中取前一天登录失败的信息,然后邮件发送。
其次,确认作业是否真正在运行。网上找了语句查看作业状态,根据返回结果及结果解释——作业已完成。但我看到历史记录中的正在进行,更相信作业还在运行。查看活动监视器,作业上次执行完成时间是3/22,计划下次执行时间3/27。历史记录表中,最后一次执行只有前3步的记录,sysjobactivity表中查询的结果如下:
SQL Server代理服务每次重启后,将创建一个新的会话,并且 msdb.dbo.sysjobactivity 表由所有现有的已定义作业填充。session_id=3可以看出,重启前最后一次开始执行时间为2015-03-23 08:00,没有停止时间,表示作业一直在“运行”,也没有计划下次执行时间。2015-03-26 08:03完成重启,正常来说,此时已过了当天作业计划执行时间,所以此时,只看到计划下次执行时间为2015-03-27 08:00:00.000
右击停止作业,报错说作业未运行,可是再次查看历史记录的时候,作业正在运行,持续时间进一步增大。
尝试禁用作业,再开启作业依然无效。而且,在禁用的状态下,查看历史记录,GUI显示作业正在运行、持续时间继续增长。此时有点怀疑,GUI有问题。
群友提出检查权限以及代理日志,查看了对应项,没有异常信息。比起最初想找到问题根源,现在更想尽快把作业给“停”下来,让它不要再“正在运行”。正准备把问题反馈到公司DBA组时,脑袋里一闪,右击停止作业报错,那右击开始作业步骤会怎样呢?反正也不是特别重要的作业,直接运行作业,意外地作业执行成功!再到历史记录下查看详细信息,显示作业执行成功,作业从第1步开始执行,用时仅用1秒钟!
活动监视器下查看相应作业,显示上次完成时间为刚才执行的,msdb.dbo.sysjobactivity下的记录如下:
重启后最后一次开始执行时间为2015-03-26 17:14:53,停止时间为2015-03-26 17:14:54,有相应的历史记录id。
对于为什么会出现这种情况,自己也解释不了,稀里糊涂的碰到了,然后稀里糊涂的“解决”了,也许最开始就不是什么大问题,只是因为过于较真发现了这样一个现象。如果没有手动执行作业,也许查看历史记录,它会一直显示在运行,而上次完成时间永远定格在3/22。虽然没找到问题根源,但至少让作业能按计划预期执行。
作业一直"执行"的更多相关文章
- Map/Reduce 工作机制分析 --- 作业的执行流程
前言 从运行我们的 Map/Reduce 程序,到结果的提交,Hadoop 平台其实做了很多事情. 那么 Hadoop 平台到底做了什么事情,让 Map/Reduce 程序可以如此 "轻易& ...
- 通过MSSQl作业定时执行批处理BAT文件
前言 有些时候,我们可能会需要定时执行一下批处理来达到一定的目的,比如Oracle数据库的定时备份,当然Oracle也可以通过Rman实现定时备份.我们大多数的时候是通过操作系统的计划任务实现定时执行 ...
- 第九篇:Map/Reduce 工作机制分析 - 作业的执行流程
前言 从运行我们的 Map/Reduce 程序,到结果的提交,Hadoop 平台其实做了很多事情. 那么 Hadoop 平台到底做了什么事情,让 Map/Reduce 程序可以如此 "轻易& ...
- shell作业后台执行的方法
来思考几种场景: 1.某个脚本需要执行时间比较长,无人值守,可能执行过程中因ssh会话超时而中断? 2.某次测试一段代码,需要临时放入后台运行? 3.放入后台运行的脚本,需要在一段时间后重新调到前台? ...
- SQL Server作业没有执行的解决方法
SQL Server作业没有执行的解决方法 确保SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行 设置方法: 我的电脑--控制面板--管理工具--服务--右键 SQLSE ...
- MapReduce作业的执行流程
MapReduce任务执行总流程 一个MapReduce作业的执行流程是:代码编写 -> 作业配置 -> 作业提交 -> Map任务的分配和执行 -> 处理中间结果 -> ...
- crontab设置作业间隔执行问题
这个源于有个网友问,crontab里 */40 9 * * * 是不是代表9点开始每40分钟执行? 直觉这个肯定不是从9:00开始每隔40分钟执行一次,但是也不能肯定它代表一个什么样的 ...
- 使用SQL Server2014作业定时执行无参的存储过程
一.存储过程 1.新建存储过程 按照下图找到存储过程,右键“新建”选择”存储过程” 此时在右侧会打开一个窗口,如下图. 2.填写创建存储过程语句 填写存储过程名称,因为是无参的存储过程,所以把参数部分 ...
- sql创建作业--自动执行存储过程
创建自动执行存储过程: 1.创建参数 2.删除已有同名的作业 3. 创建作业 4.创建作业步骤 5.连接服务器 6.创建作业调度 7.启动作业 ALTER PROCEDURE dbo.sx_pro_A ...
随机推荐
- 初学者对Spring MVC的认识
首先是要一定说明的是,这倒是说明是什么?对吧Spring MVC 是SpringFrameWork的后续产品,并且已经融入到Spring Web Flow中同时Spring MVC 分离了控制器,模型 ...
- CSS架构
CSS架构 有趣的是,我们通常不这样评判其他语言.一个Rails开发者不会因为他写的代码规范就认为他是一个好的开发者.因为这是最基本的.当然它必须是满 足规范,除此以外还要考虑其他方面:代码是否有可读 ...
- x86_64编译JPEG遇到Invalid configuration `x86_64-unknown-linux-gnu'
把 /usr/share/libtool/config/config.guess 覆盖到相关软件自带的config.guess 把 /usr/share/libtool/config/config ...
- storm在windows系统下安装调试
基础知识 Storm是一个分布式的,可靠的,容错的数据流处理系统.它会把工作任务委托给不同类型的组件,每个组件负责处理一项简单特定的任务.Storm集群的输入流由一个被称作spout的组件管理,spo ...
- 2016.07.14,英语,《Vocabulary Builder》Unit 25
verb: comes from the Latin verbum, meaning 'word'. verbally: ['vɜːbəli] adv. 口头地,词句地, 逐字地 verbalize: ...
- selenium 使用笔记
下面一段代码是使用selenium访问网页一个小实例 #!/usr/bin/python# -*- coding: utf-8 -*- '''Created on Dec 6, 2013 @autho ...
- Google Chrome can not be run as root
Ubuntu运行Chrome出现"Google Chrome can not be run as root"的解决方法 编辑启动文件:/opt/google/chrome/goog ...
- mysql查询所有字段(*),并且联表时需要特别注意的地方
如果不标明*是读取哪个表,确实会将所有三个表都读出来.需要小心
- 什么是blob,mysql blob大小配置介绍
什么是blob,mysql blob大小配置介绍 作者: 字体:[增加 减小] 类型:转载 BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器.在计 ...
- 利用EXCEL表实现网页数据采集到MYSQL数据库
先复制页面表格数据到EXCEL中,比如 2012-1-4 52.7 52.7 49 48.83 190007 9506968 2012-1-5 48.86 49.79 45.72 45.6 62325 ...