Случилось на днях неприятное происшествие: в результате непредвиденного сбоя отключился диск с базой exchange 2010. В результате после восстановления диска база отказалась подключаться на сервере Exchange. Поэтому тема заметки «Восстановление баз exchange» в полевых условиях.
При попытке ручного подключения базы данных я получал ошибку:
Couldn't mount the database that you specified. Specified database: Mailbox Database; Error code: An Active Manager operation failed. Error: The database action failed. Error: Operation failed with message: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-515)
Последовательность действий по восстановлению баз exchange
- Сделал резервную копию поврежденной базы данных. Процесс этот не быстрый, размер базы был более 400 гб. Но это следовало сделать, чтобы иметь возможность повторить процедуру восстановления базы если что-то пойдет не так.
- Проверил диск с базой данных на ошибки утилитой chkdsk.
- Проверяем базу с помощью утилиты eseutil. Она находится в подпапке bin папки куда установлен Exchange. Для проверки используем команду:
eseutil /mh "d:\путькбд\базаданных.edb"
- В выводе команды ищем строку содержащую State: Dirty Shutdown. Это значит, что база данных не была корректно отмонтирована.
- Производим починку базы данных командой:
eseutil /p "d:\путькбд\базаданных.edb"
Процесс не быстрый, на моей базе в 400 Гб он занял около двух часов.
- После завершения повторяем команду из п.3. Вы должны увидеть State: Clean Shutdown. На всякий случай делаем копию восстановленной базы (на ваше усмотрение).
- Пробуем подключить базу в консоли Exchange, если все подключилось то на этом процедура закончена.
- Если база не подключается то необходимо проверить логи командой:
eseutil /ml "d:\путьклогам\E00"
Где E00-начальная последовательность именования лог-файлов. На моем сервере она была к примеру E01. Во время проверки необходимо убедится, что все лог файлы прошли без ошибок. Тем не менее, если статус БД в п.6 Clean Shutdown то можно смело удалить все логи.
- Если при этом база все-таки не монтируется попробуйте после удаления всех лог-файлов выполнить в консоли PowerShell Exchange команду:
Mount-database "Name my database" -Force
На этом мое злоключение закончилось, база успешно подключилась. В качестве дополнительного материала могу привести ссылку: http://www.alexxhost.ru/2010/10/eseutil.html, там описан метод мягкого восстановления. Если данная инструкция вам не помогла то попробуйте описанные там команды.
Ну и конечно не забываем про регулярное резервное копирование базы Exchange.
Внимание! Нажимая кнопку "Отправить комментарий" вы соглашаетесь с политикой конфиденциальности сайта.