SQL подозрительный статус базы

Столкнулся с неприятной ситуацией. Свет в здании отключили, компьютер вырубился. В результате – в MS SQL статус базы «Подозрительный». Архив, конечно же, двухнедельной давности (его пример другим наука… делайте архивы чаще!) Восстанавливать не вариант, куча инфы потеряется. Включить нормальный режим работы тоже не получается, так как нужно сначала привести базу в порядок. А привести базу в порядок через DBCC checkdb не позволяет сам MS SQL — база данных подозрительная!
Итого имеем: в SQL базе данные недоступны, и кнопка «всё починить» отсутствует. Что делать?
Нашел в интернете такое решение (надо выполнить строки последовательно):

ALTER DATABASE SET EMERGENCY ALTER DATABASE SET SINGLE_USER WITH ROLLBACK IMMEDIATE DBCC CHECKDB (‘имя_базы’, REPAIR_ALLOW_DATA_LOSS) ALTER DATABASE SET MULTI_USER

Запустил, проверка прошла успешно, в SQL базе аварийный режим отключился. Ошибок 0 (но думаю, мне просто повезло).
Возможно, кому-то этот алгоритм тоже поможет!

Тем не менее, к спецам у меня есть вопрос:
Во-первых, что делать, если ошибки все-таки найдутся? Как я понимаю, выполнение DBCC CHECKDB с параметром REPAIR_ALLOW_DATA_LOSS может привести к потере данных, и не факт, что незначительной потере. Что в такой ситуации делать?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *