web-dev-qa-db-ja.com

再起動後もSQL Serverジョブがスタックする

SQL Serverエージェントのジョブが「進行中」で止まっています。これは通常30分かかる完全バックアップですが、7時間かかり、カウントされます。エージェントを再起動した後、OS全体を再起動しても、「進行中」と表示されます。

それを止める方法はありますか?

select * from sys.dm_exec_requests、「実行中」ステータスの2つの行を取得します。1つは「SELECT」、もう1つは「DBCC TABLE CHECK」と言います。実際、この仕事の最初のステップは、Ola Hallengrenのスクリプトを使用してデータベースの整合性チェックを実行することです。

バージョン:

Microsoft SQL Server 2016(RTM-GDR)(KB4019088)-13.0.1742.0(X64)
2017年7月5日23:41:17 Copyright(c)Microsoft Corporation Standard Edition(64-bit)on Windows Server 2016 Datacenter 6.3(Build 14393:)(Hypervisor)

3
Diego Jancic

GUIDを使用していないが、T-SQLプロシージャを使用している場合:

sp_stop_job

あなたが抱えているような問題を解決するのに役立ちます。

例:

exec msdb.dbo.sp_stop_job @job_name = 'enterjobnamehere'

現在実行中のクエリ をチェックして、エージェントによって開始されたクエリがないか確認し、これらを強制終了することも役立ちます。

スクリプトを調整して、エージェントサービスによって開始された実行中のクエリを見つける例:

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%';
6
Randi Vertongen