You are here

Восстановление базы Exchange из состояния Dirty Shutdown


Восстановление базы Exchange из состояния Dirty Shutdown

Недавно столкнулись с ситуацией, что после восстановления MailBox Database из бэкапа в Exchange 2010 база упорно отказывалась монтироваться. Eseutil ни в какую не хотел восстанавливать базу в режиме soft repair. Он постоянно выкидывал ошибку - bad signature for a log file. Номер ошибки – 530.

В раздумьях как решить проблему наткнулся на отличную ]]>заметку]]>, состоящую из шагов для восстановления базы. Которая помогла восстановить проблемный Mailbox Database. Решил заметку перевести и оставить для себя на будущее, возможно пригодится.

1.    Сделайте бэкапы файлов с расширениями edb, log и stm.

Скопируйте priv.edb, pub.edb, логи (.log) и файлы stm в другое расположение.

2.    Убедитесь, что у вас есть 110% свободного места на диске.

Убедитесь, что у вас есть 110% свободного места на диске для базы. Не используйте сетевые шары.

3.    Проверьте состояние вашей базы

Сделайте проверку состояния базы при помощи команды

eseutil /mh "путь до файла базы edb" (eseutil /mh "D:\db\database\db.edb")

4.    Проверьте статус базы.

Статус базы будет – dirty shutdown.

5.    Попытайтесь использовать softrepair

eseutil /r – запускайте из папки с логами, и укажите префикс логов  (eseutil /r E04).

Или запустите так – eseutil /r "prefix"<E04> /l <путь до логов>

Или так – esetuil /r E00 /l D:\db\logs /d D:\db\database

6.    Проверьте снова статус

Если статус поменялся на clear shutdown можно переходить к пункту 9.

7.    Если softrepair не сработал, попробуйте hard repair.

Учтите, обрабатываются данные со скоростью 3-5 ГБ в час.

eseutil /p (esetuil /p "путь до файла edb"), esetuil /p "D:\db\database\db.edb"

8.    Выполните дефрагментацию базы данных:

esetuil /d (eseutil /d "путь до файла edb")

После выполнения команды необходимо вручную удалить все файлы логов в папке MDBDATA (я удалял все файлы с расширением log в папке с логами), перед попыткой смонтировать базу данных.

9.    Проверьте целостность базы данных

Если есть достаточно времени (около 2-10 минут на обработку 1ГБ данных), можно запустить проверку целостности, если времени нет – шаг можно пропустить.

isinteg -s “имя сервера” -test alltests

Если проверка будет провалена, попробуйте

isinteg -s “имя сервера” -fix -test -alltests

Выполняйте команду до тех пор, пока у всех ошибок не станет статус 0 или статус не перестанет меняться. (Иногда необходимо 3 прохода для достижения результата).

10.    Проверьте состояние снова.

Снова выполните eseutil /mg, в результате статус должен быть clear shutdown.

Перед выполнением hard repair необходимо:

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

2.    Не забыть сделать бэкап всех файлов.

Имейте ввиду, что использование eseutil /p является крайней мерой. Запускать команду следует только в том случае, если не удается примонтировать базу данных из-за нарушения целостности.

Команда удаляет все данные, которые посчитает ненужными (поврежденные данные, незавершенные транзакции и т.д.).

Команда обрабатывает около 3-5 ГБ данных в час.

Не щелкайте по экрану командной строки во время выполнения команды, тем самым вы переведете команду в состояние паузы. Если это произойдет нажмите F5 для продолжения.

У вас должно быть как минимум 110% свободного места от размера базы для выполнения eseutil /d.

Если вы явно не укажите команде ключ /t для задания папки temp, по умолчанию используется папка exchsrvr/bin

Отключите службу smtp перед монтированием базы, чтобы избежать попадания в нее новых писем? при проверке работоспособности базы при первом подключении.

Isinteg должна запускаться, что бы исправить логические повреждения вызванные удалением данных.

0 0

Share the article with your friends in social networks, maybe it will be useful to them.


If the article helped you, you can >>thank the author<<