Май 15

Если мы просто скопируем папку MDBDATA, то подключить ее к Recovery Storage Group может не получиться. Особенно если она повреждена или отсутствуют логи.  Поможет утилита Eseutil с ключом /p

Например, вводим в командной строке

eseutil /p x:\exchsrvr\mdbdata\priv.edb

Начнется процесс восстановления базы данных. Это может занять продолжительное время. От суток до нескольких дней в зависимости от размера базы данных. БД в 40 гигабайт восстанавливалась около суток.

После этого БД можно подключить к Recovery Storage Group.

Тут может произойти злая шутка. Если аварийный сервер назывался Server1, а новый — Server13, то подключить не получится. Но ничего страшного. Можно подсунуть к Exchange восстановленную БД с Server1. Просто переименуем восстановленную БД так, как Exchange желает.

Нажмем Найти и выберем БД с названием Server13.

Копируем наши файлы с БД Server1 в папку Recovery Storage Group и переименовываем их так, как хочет Exchange. Далее указано, где посмотреть названия.

Монтируем хранилище.

Нажимаем Yes на возможное предупреждение.

Хранилище подмонтировано. Переносим почту из БД в Recovery Storage Group в новую БД.

Для начала нужно узнать MailboxGuid каждого пользователя в аварийной БД. Они все сбросятся в лог Exmerge. Читаем ниже.

Воспользуемся утилитой Exmerge в папке Exchange/bin/

Так как мы работаем с базой данных аварийного сервера Exchange,  ни один из почтовых ящиков невозможно будет перенести, пока в БД в Recovery Storage Group и в БД Exchange на новом сервере не совпадет атрибут msExchMailboxGuid.

На предыдущей картинке я уже адаптировал данный атрибут для трех почтовых ящиков. Для всех остальных будут ошибки в логе. Допустим, нам нужно перенести еще один почтовый ящик. Ищем его CN в логе ExMerge.log в папке /Exchange/bin

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

Можно также воспользоваться конвертером http://www.arricc.net/exchange-guid-converter.php

Грабли: в данной строке есть ascii-символы (выделенные точками), нужны их шестнадцатеричные коды. В шестнадцатеричной системе исчисления могут быть числа 1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F. Все другие — ascii. Их преобразуем с помощью таблицы (см.ниже). Если цифра стоит одна, как в нашем примере 1 и 9, то это тоже ascii-символ.

На контроллере домена через утилиту adsiedit редактируем свойство пользователя в лесе Domain — OU

 

Если возникают уведомления о превышении количества символов в строке или о неправильности введенной строки, значит Вы неверно отредактировали исходную строку в Exmerge.log. Если все нормально — никаких уведомлений не появляется.

Возвращаемся к серверу Exchange. Делаем экспорт почтового ящика  из аварийной БД в новую.

Перезапускаем Exmerge, повторяем предыдущие шаги (до просмотра лога Exmerge).

Выбираем папку на компьютере, куда будет экспортирован ящик.

Нажимаем Далее и (после экспорта) Готово.

Запускаем Exchange SystemManager. Заходим в Recovery Storage Group — Mailboxes. Выбираем интересующего пользователя правой кнопкой. Делаем Exchange Task.

Выбираем метод восстановления. Перенос или Копия. Я всегда выбираю Копию. Мало ли что может случится в процессе переноса.

Готово =) Мы перенесли ящик из аварийной базы в новую базу, даже если сведения о имени сервера были утрачены и инфо о старом сервере была вычищена из  Active Directory.

Комментировать