Сегодня утром на одном из серверов произошёл "казус" с пользовательской базой данных, которую мои коллеги пытались перевести в OFFLINE, но процесс пошёл не штатно, база попала в переходное состояние, став недоступной и затруднив при этом мониторинг активности других пользовательских и системных баз… Ситуация точно такая же, какая была описана Полом Ибисоном в группе новостей: OFFLINING and "Database 'xxx' is in transition. Try the statement later."
Проблема проявляется тем, что
любые попытки подключиться к объектам базы ХХХ заканчиваются следующим
сообщением об ошибке:
"Database 'ХХХ' is in transition. Try the statement
later."
В журнале ошибок SQL Server
есть сообщение типа:
Дата 26.09.2008 8:47:40
Журнал SQL Server (Текущий - 26.09.2008 8:51:00)
Источник spid131
Сообщение Setting database option OFFLINE to ON for database ХХХ.
Обращение к системным
метаданным построенное в виде сценария:
select * from sys.dm_exec_requests ORDER BY command |
Возвращает в числе первых
процесс, в колонке command которого фигурирует инструкция ALTER DATABASE.
Рецепт, который подсказывает
Пол, простой, но действенный. Посмотрите идентификатор процесса, в контексте
которого исполняется инструкция ALTER DATABASE,
и удалите этот процесс с помощью команды KILL.
Для того чтобы исключить
возможность возникновения описываемой проблемы, Пол предлагает предварительно
переводить базу данных в однопользовательский режим READONLY или в SINGLE_USER.
Например так:
ALTER DATABASE
[ХХХ] SET SINGLE_USER WITH ROLLBACK IMMEDIATE |
Комментариев нет:
Отправить комментарий