Восстановление базы MS SQL из Suspect Mode

Пришла беда откуда не ждали…

После аварийной перезагрузки сервера база MS SQL ушла в Suspect Mode.

Все бы ничего, есть часовой архив, и в течении 30 минут он был восстановлен, но работа за час была утерянной.

А поскольку пятница и рабочий день подошел к завершению то было принято решение о попытке восстановления базы из Suspect Mode.

Итак имеем базу в Suspect Mode и ее архив за час до этого.

Восстановление базы MS SQL из Suspect Mode

Восстановление базы MS SQL из Suspect Mode

Переводим базу из Suspect Mode в Emergency Mode.

Для этого разрешаем прямую запись в системные таблицы:

Восстановление базы MS SQL из Suspect Mode

Восстановление базы MS SQL из Suspect Mode

Перегружаем MS SQL.

Далее открываем для редактирования таблицу sysdaabases в базе master

Восстановление базы MS SQL из Suspect Mode

Восстановление базы MS SQL из Suspect Mode

В таблице находим нашу базу и меняем поле статус (в моем случае 280) на 32768 (Emergency Mode)

Восстановление базы MS SQL из Suspect Mode

Восстановление базы MS SQL из Suspect Mode

Перегружаем MS SQL.

Статус базы должен изменится с Suspect Mode на Emergency Mode. Что это дает. База по прежнему недоступна для работы но при этом она доступна для чтения.

В моем случае я создал пустую базу и через Import Data… перенес в нее данные из аварийной базы. При этом из всей базы я не смог скопировать только одну таблицу. Но следует учитывать все же, что результаты могут быть разными и возможно с первого раза не получится скопировать все данные.

К утру новая база была приведена к рабочему состоянию и время не было потрачено безрезультатно.

Комментарии закрыты.