Exchange 2010: практика восстановление базы почтовых ящиков

restore-05Случилось неприятное: при замене одного из вышедших дисков в 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.
Все файлы — в корень выбранной папки.

Восстанавливаем целостность базы:

Параметр /P спорный. Но в принципе можно было обойтись и более мягким способом.

Eseutil на базе примерно 150Гб работает 30-50 минут.

 

В принципе .если что потеряется — можно потом вытянуть из бэкапа, из исходного файла edb что нам восстановил Acronis.
Создаем новую базу, на сервере Exchange с определленными условиями:

1. Сам файл базы и логи нацеливаем в определенную папку

2.  обязательно указываем «база может быть перезаписана при восстановлении»

3. После создания базу не монтируем.

Проверяем.

база может быть перезаписана при восстановлении:

restore-01

база находится в корне определенной папки, туда же при создании базы было указано хранить логи:
restore-02

 

Проверьте, пуста ли эта папка. Если база была только что была создана и еще не была подмонтирована, то эта папка будет пуста.

Теперь перемещаем базу. которая была обработана ESEUTIL вместе со всеми файлами в эту пустую папку.

Указываем имя EDB файла такое же, которое было при создании базы.

Монтируем базу.

Перенацеливаем ящики со старой. неисправной базы, на новую базу:

Старая база пусть имела имя Mailbox_DB_02, новая Mailbox_DB_02_02

Все, ящики доступны

Запускаем команду обслуживания над нашей базой (база может быть в онлайн режиме):

Команда не выводит никакой информации о своей работе. Обычно занимает не более 0,1-1 го часа. о результатах работы создается событие в журнале Windows (EventID )

The output of New-MailboxRepairRequest will be a number of Event IDs with a source of “MSExchangeIS Mailbox Store” and you will need to watch for the following events related to a repair request“0044,10045,01146,10047,10048,10049,10050,10051,10059,10062”

По практике работы с серверами Exchange могу добавить, что есть смысл создать новую базу и перенести все ящики с «восстановленной» базы на нормальную новую. После чего пустую базу удалить. Причины в том что «восстановленая » база не оптимизирована для работы и создает большую нагрузку при своей работе.

Теперь возвращаемся к нашему Acronis и к тем базам которые не смогли восстановиться.

При попытке восстановления база восстанавливалась примерно на 20%, после чего акронис выдавал ошибку:

Ясно, что что то там не так.
Учитывая то что часть баз из этого бэкапа восстановилась без проблем, то считать бэкап «битым» я не мог.
Были попытки восстановить базу за другие периоды времени — безрезультатно.

Мой хороший друг и коллега подсказал сделать следующее: поставить галочку в дополнительных параметрах задания восстановление «проверять проверку резервных копий перед восстановлением»

restore-03

Проверка заняла примерно 12 часов над 140Гб базой. после чего база восстановилась.
далее по описанной выше схеме база была восстановлена на одном из серверов и подключена.

Еще один момент.

Возможно что вы как системный администратор попытаетесь зайти на восстановленный почтовый ящик через OWA и у вас будет ошибка:

Лечится это перемещением ящика в другую, «нормальную базу», командой New-MailboxRepairRequest или сбросом в AD параметров безопасности пользователя:

restore-04

Так же в конце рекомендую перестроить индекс с помощью командлета ResetSearchIndex.ps1
Скрипты находятся в папке

запускаются через Power Shell так:

Процедура довольно тяжелая в плане нагрузки на сервера. Лучше делать ночью, когда сервера простаивают.

Как работает командлет можно прочитать в google по запросу ResetSearchIndex.ps1
или тут http://technet.microsoft.com/ru-ru/library/aa995966(v=exchg.80).aspx

Вроде все.

 

Удачи!

4 комментария

  1. Товарищ, вы отличный боец)) А почему Acronis Backup с модулем Acronis for Exchange Server не помог? Не малых денег стоит между прочим))
    На будущее совет организовать DAG и уже на Hyper-V.

  2. Спасибо большое автору этой статья, очень сильно выручил. При переносе Hyper-v закончилась база, сделал все как Вы описали и через 4 часа все поднялось. Удачи!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *