Случилось на днях неприятное происшествие: в результате непредвиденного сбоя отключился диск с базой exchange 2010. В результате после восстановления диска база отказалась подключаться на сервере Exchange. Поэтому тема заметки «Восстановление баз exchange» в полевых условиях.
При попытке ручного подключения базы данных я получал ошибку:
Последовательность действий по восстановлению баз exchange
- Сделал резервную копию поврежденной базы данных. Процесс этот не быстрый, размер базы был более 400 гб. Но это следовало сделать, чтобы иметь возможность повторить процедуру восстановления базы если что-то пойдет не так.
- Проверил диск с базой данных на ошибки утилитой chkdsk.
- Проверяем базу с помощью утилиты eseutil. Она находится в подпапке bin папки куда установлен Exchange. Для проверки используем команду:
- В выводе команды ищем строку содержащую State: Dirty Shutdown. Это значит, что база данных не была корректно отмонтирована.
- Производим починку базы данных командой:
Процесс не быстрый, на моей базе в 400 Гб он занял около двух часов.
Где E00-начальная последовательность именования лог-файлов. На моем сервере она была к примеру E01. Во время проверки необходимо убедится, что все лог файлы прошли без ошибок. Тем не менее, если статус БД в п.6 Clean Shutdown то можно смело удалить все логи.
На этом мое злоключение закончилось, база успешно подключилась. В качестве дополнительного материала могу привести ссылку: http://www.alexxhost.ru/2010/10/eseutil.html , там описан метод мягкого восстановления. Если данная инструкция вам не помогла то попробуйте описанные там команды.
Ну и конечно не забываем про регулярное резервное копирование базы Exchange.
Сетевые заметки системного администратора
Случилось неприятное: при замене одного из вышедших дисков в RAID массиве спустя непродолжительное время массив взамен файловой системы NTFS превратился в формат RAW. Немного почитав в интернете понял что массив скорее всего потерян вместе с данными.
Попытался перезагрузить сервер — масив все равно оставался в формате RAW.
На этот день у нас имелся бэкап базы почтовых ящиков выполненный с помощью программы «Acronis Backup 11.5» с модулем «Acronis for Exchange Server».
Далее все что происходило по времени.
Время — глубокая ночь.
Попытки восстановится с помощью Acronis сразу на другую, рабочую базу, ни к чему не привели.
Время было позднее, ночью разбираться было не когда. была принята идея восстановить только интересующие .edb файлы в сетевую папку, после чего с утра перекинуть файлы на Exchange сервер и подцепить базы воспользовавшись функцией переносимости баз данных на сервере Exchange.
Обнаружил что восстановление файлов edb завершилось с ошибкой. Обнаружил в сетевой папке Пару восстановленных баз, еще две базы не восстановились.
Запустил повторное восстановление баз которые смогли восстановиться, но в другое место.
Приехав на работу обнаружил что процесс восстановления завершился успешно.
Копирую файлы на Exchange сервер.
Копируем базу из бэкапа вместе с логами .
То есть, к примеру. в папку C:EXCHANGE помещается и Mailbox_DB_33.edb и все файлы которые восстановил вместе с ним Acronis.
Все файлы — в корень выбранной папки.
Здесь мы рассмотрим восстановление баз данных в Microsoft Exchange Server 2010 с помощью встроенной утилиты Eseutil.
Рассмотрим восстановление баз данных с помощью встроенной утилиты Eseutil.
Все операции производим из командной строки или из Exchange management shell.
Иногда возникают проблемы при подключении баз данных данныхв Exchange 2010 возможные причины которых могут быть:
- не правильное завершение работы сервера
- что то случилось с логами.
Для начала надо посмотреть состояние базы данных.
Eseutil / MH «Путь к базе данных»
После, выведется список разных параметров, нас интересует строка State:
Если в строке State указано что база Clean shutdown, то переместите все файлы из папки журналов транзакций (на всякий случай не удаляйте, скопируйте лучше в другую папку) и подключите базу. Если не помогло, перезагрузите сервер и попробуйте подключить базу.
Если в строке State: указано что база Dirty Shutdown.
Надо убедиться что с логами всё в порядке командой Eseutil / ML «Путь лог-файлов префикс журнала» (если баз несколько, то префиксы будут e00, e01, e02, e03)
Если все журналы логов на месте (как показано ниже) переходим к пункту 1. Если не всё в порядке и есть ошибки, переходим к пункту 2.
1. Восстанавливаем базу с помощью мягкого восстановления — Eseutil / R
Eseutil / r / l «Путь лог-файлов» / D «Путь к базе данных»
После того как в консоли появится сообщение что Operation complete successfully, подключаем базу.
Если не помогло, перезагрузите сервер и подключаем базу.
2.Если в строке с логами не всё в порядке то мягкое восстановление не поможет и придётся делать жесткое восстановление Eseutil / P (при жестком восстановлении все логи транзакций будут удалены). Eseutil / P «Путь к базе данных»
После того как появится сообщение что Operation complete successfully, подключаем базу.
Если не помогло, перезагрузите сервер и подключаем базу.
Смотрите также:
Перед внедрением Exchange 2010, критически важно определиться с конфигурацией сервера (серверов), которые будут обеспечивать работу Exchange. Сделать это можно с помощью калькулятора требований Exchange 2010, который можно скачать с сайта…
Бывает такое, что надо подключить почтовый ящик сотрудника, другому сотруднику. Когда он уже не нужен закрываем доступ, но он так и висит в Outlook, а при попытке его открыть вываливается…
Ниже приведена пошаговая инструкция, показывающая как добавить новую базу данных в Microsoft SQLServer 2012 (в более старых редакциях, например в Microsoft SQL Server 2008 R2, набор действий аналогичен). Запускаем…