Контроллеры в одной из сетей хранения данных моего кластера периодически перезагружаются. По-видимому, это можно исправить путем обновления прошивки, но пока мы не сможем применить обновление через несколько дней, мне придется жить с проблемой. Проблема в том, что если один из них выходит из строя во время работы DBCC CHECKDB (во время ночного обслуживания), CHECKDB зависает. Кажется, я не могу убить его .... это показывает, что он вечно ждет ASYNC_IO_COMPLETION. Мне нужно зациклить экземпляр или есть другой способ убить CHECKDB?
Экземпляры SQL Server 2005 RTM и SP2.
Хорошо - это правильное поведение. Что происходит, так это то, что вы убили DBCC CHECKDB, пока он все еще создает необходимый моментальный снимок базы данных. Частью создания моментального снимка является восстановление после сбоя проверяемой базы данных, но в контексте моментального снимка базы данных. Восстановление после сбоя не может быть остановлено, и запущенный spid не может быть уничтожен. Итак - ваш единственный вариант - дождаться его завершения или выполнить цикл экземпляра, который сбросит снимок. Когда я изменил CHECKDB на использование снимков базы данных, мы знали, что это может быть потенциальной проблемой, но альтернативы не было.
Посмотрите это сообщение в блоге, где я объясню немного больше: Выполняется ли откат транзакций при запуске DBCC CHECKDB?
Ура
Когда вы говорите, что не можете убить его, вы пытаетесь отменить задание? Или вы убиваете SPID из монитора активности?