Недавно столкнулись с ситуацией, что после восстановления 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 должна запускаться, что бы исправить логические повреждения вызванные удалением данных.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.
Если вам помогла статья, вы можете >>отблагодарить автора<<