Как убить задание SQL Server, которое продолжает показывать статус «В процессе»? - PullRequest
0 голосов
/ 18 мая 2019

Я использую SQL Server 2014, и у меня есть задание (назовем его JN5), запланированное на ежедневное выполнение в определенное время. Задание запускает пакет служб SSIS и содержит 11 шагов. Глядя на историю заданий в SSMS, задание, похоже, застряло на шаге 9. Оно не отображается как сбой, а «в процессе».

Мне трудно пытаться остановить это. Я пробовал следующее:

USE msdb ; 
GO      

EXEC dbo.sp_stop_job N'JN5' ;  
GO

Я получаю следующую ошибку после выполнения:

Сообщение 22022, Уровень 16, Состояние 1, Строка 2
Ошибка SQLServerAgent: запрос на остановку задания JN5 (от пользователя sa) отклонен, поскольку задание в данный момент не выполняется.

Затем я попытался сделать следующее: я перезапустил агент SQL Server через диспетчер конфигурации SQL Server. Когда я просматривал статус задания SQL (после обновления) в SSMS, он все еще показывал «В процессе»!

Моя следующая попытка решить эту проблему - перезапустить SQL Server 2014. Затем я снова проверил состояние в SSMS. Он все еще показывал статус "В процессе"!

Я только что посмотрел на StackOverflow: Задание SQL Server (задание не выполнено, но записи истории в задании по-прежнему отображают состояние «выполняется»)

Однако я не уверен, относится ли вышеуказанная ссылка к моей проблеме.

Есть идеи, что я могу предпринять дальше?

1 Ответ

0 голосов
/ 17 июля 2019

Я недавно столкнулся с подобной проблемой. Я выполнил задание, запланированное через задания агента SQL Server, выполняемое из каталога SSISDB. (т.е. запланированное задание SSIS).

Во время выполнения задания один из шагов обрабатывает задачу служб SSIS, которая использует диспетчер соединений с файлом (сценарий sql). Пока он работал, кто-то применил некоторые исправления к серверу и перезапустил стек служб SQL.

Это привело к тому, что задание выглядело так, как будто оно обрабатывалось (через историю заданий) и казалось, что оно выполнялось (через панель мониторинга служб Integration Services) ... но ввода-вывода больше не было (и ни один из SQL в сценарии не был выполнен казнь) ... так что я знал, что убить работу было относительно безопасно.

Я получил ту же ошибку:

Сообщение 22022, уровень 16, состояние 1, строка 9 Ошибка SQLServerAgent: запрос на остановку задания XXXXX (от пользователя YYYYY) отклонен, поскольку задание в данный момент не выполняется.

Таким образом, я сослался на идентификатор операции из панели мониторинга служб Integration Services и выдает следующие команды:

USE SSISDB
GO

EXEC [catalog].[stop_operation] <OperationId>

Это позволило удалить запущенное задание из панели мониторинга служб Integration Services.

...