Что делать, если база данных под MS SQL ушла в Suspect Mode? (подозрительная)
В своей работе столкнулся с ситуацией, когда рабочая база данных, после перебоя с электричеством в конце дня ушла в режим «Suspect Mode». А архив был за много часов до этого. Перевести ее нормальный режим, пока не произведена починка базы, не получалось. DBCC checkdb тоже отказывалась запускаться, т.к. база в этом режиме. Замкнутый круг?
Решением данной проблемы является следующий запрос, выполняемый в MS SQL.
Для начала необходимо перевести базу данных в режим EMERGENCY:
ALTER DATABASE <Имя БД> SET EMERGENCY
Затем перевести базу данных в режим SINGLE_USER:
ALTER DATABASE <Имя БД> SET SINGLE_USER
Выполнить тестирование базы данных:
DBCC CHECKDB (<Имя БД>, REPAIR_ALLOW_DATA_LOSS)
И, наконец, перевести базу данных в режим MULTI_USER:
ALTER DATABASE <Имя БД> SET MULTI_USER
После выполнения запроса обновить список баз.
Полный текст запроса:
ALTER DATABASE <Имя БД> SET EMERGENCY
ALTER DATABASE <Имя БД> SET SINGLE_USER
DBCC CHECKDB (<Имя БД>, REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE <Имя БД> SET MULTI_USER