即使在重新启动后 SQL Server 作业也卡住了

Die*_*cic 3 sql-server sql-server-agent sql-server-2016

我有一个 SQL Server 代理作业卡在“进行中”。这是一个完整的备份,通常需要 30 分钟,但它需要 7 小时,而且还在增加。我重新启动了代理,然后重新启动了整个操作系统,它仍然显示“进行中”。

有什么办法可以阻止吗?

如果我运行select * from sys.dm_exec_requests,我会得到 2 行处于“正在运行”状态,一个是“SELECT”,另一行是“DBCC TABLE CHECK”。事实上,这项工作的第一步是使用 Ola Hallengren 的脚本运行数据库完整性检查。

版本:

Microsoft SQL Server 2016 (RTM-GDR) (KB4019088) - 13.0.1742.0 (X64)
2017 年 7 月 5 日 23:41:17 版权所有 (c) Windows Server 2016 Datacenter 6.3(内部版本 14393)上的 Microsoft Corporation 标准版(64 位): )(管理程序)

Ran*_*gen 6

不使用 GUID,而是使用 T-SQL 过程:

sp_stop_job

可以帮助解决像您遇到的问题。

例子:

exec msdb.dbo.sp_stop_job @job_name = 'enterjobnamehere'
Run Code Online (Sandbox Code Playgroud)

检查代理启动的任何查询的当前运行查询并终止这些查询也可能有所帮助。

调整脚本以查找由代理服务启动的正在运行的查询的示例:

SELECT sqltext.TEXT,
req.session_id,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time
FROM sys.dm_exec_requests req
INNER JOIN sys.dm_exec_Sessions s
on req.session_id = s.session_id
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
WHERE [Program_Name] like 'SQLAgent%';
Run Code Online (Sandbox Code Playgroud)