如何终止一直显示“ In Progress”状态的SQL Server作业?

时间:2019-05-18 04:20:15

标签: sql sql-server sql-server-agent

我正在使用SQL Server 2014,并且我有一项计划(每天称为JN5)的工作计划在每天的特定时间运行。该作业运行一个SSIS程序包,其中包含11个步骤。查看SSMS中的“作业历史记录”,该作业似乎停留在第9步。它不是显示为失败,而是“进行中”。

我很难阻止它。我尝试了以下方法:

USE msdb ; 
GO      

EXEC dbo.sp_stop_job N'JN5' ;  
GO

执行后出现以下错误:

  

信息22022,第16级,状态1,第2行
  SQLServerAgent错误:由于作业当前未在运行,来自用户sa的停止作业JN5的请求被拒绝。

然后,我尝试了以下操作:我通过SQL Server配置管理器重新启动了SQL Server代理。当我在SSMS中查看SQL作业状态(刷新后)时,它仍显示“进行中”!

我接下来要解决的问题是重新启动SQL Server2014。然后我再次在SSMS中检查状态。它仍然显示“进行中”状态!

我刚刚在StackOverflow上查看了以下内容:SQL Server job activity (job failed but history records in job activity still showing 'running' status)

但是,我不确定上面的链接是否与我的问题有关。

关于我接下来可以尝试的任何想法吗?

2 个答案:

答案 0 :(得分:0)

我最近遇到了类似的问题。我有一个正在运行的作业,该作业是通过SQL Server代理作业安排的,并从SSISDB目录执行。 (即计划的SSIS作业)。

在工作期间,其中一个步骤将处理SSIS任务,该任务使用了连接管理器到文件(SQL脚本)。在运行时,有人向服务器应用了一些补丁,然后重新启动了SQL服务堆栈。

这导致作业看起来像正在处理(通过作业历史记录)并且似乎正在运行(通过Integration Services仪表板)...但是不再有任何IO(脚本中的所有SQL都没有完成)执行)...所以我知道杀死这份工作相对安全。

我遇到了同样的错误:

  

消息22022,级别16,状态1,第9行SQLServerAgent错误:由于作业当前未运行,请求停止作业XXXXX(来自用户YYYYY)被拒绝。

因此,我从Integration Services仪表板引用了该操作的ID,并发出了以下命令:

USE SSISDB
GO

EXEC [catalog].[stop_operation] <OperationId>

这从Integration Services仪表板中删除了正在运行的作业。

答案 1 :(得分:-1)

遇到此问题时,只能通过删除作业来解决。 之前,我创建了脚本来重新创建作业。所以我只丢了工作经历。