Восстановление почтовых ящиков в Exchange 2013

MapiExceptionNetworkError: Unable to mount database
www.microsoft.com

Восстановление почтовых ящиков для кого-то может являться весьма редкой задачей, а кто-то этим занимается чуть ли не ежедневно. Кому-то может потребоваться выполнить эту задачу для восстановления пары случайно удаленных генеральным директором писем, а кому-то придется поднимать целые ящики многих юзеров. В любом случае «прелюдией»  к этой задаче должен быть грамотно поставленный процесс резервного копирования баз данных Exchange 2013.


Найти больше информации по настройке и администрированию Exchange 2013 на моем блоге вы сможете в основной статье тематики — Exchange 2013 — Установка, настройка, администрирование.


Восстановление почтовых ящиков

Весь процесс восстановления подразумевает два этапа — подготовка базы данных с необходимой вам информацией и непосредственно этап вытягивания данных из этой БД. Для выполнения последней задачи воспользуемся особым типом баз данных Exchange 2013 — базой данных восстановления.

Подготовка базы

Сценарий восстановления данных предполагает, что у вас имеется исправная копия БД, из которой необходимо извлечь нужную вам информацию — папки с письмами или целые почтовые ящики пользователей. В моем случае на руках был архив диска с необходимой базой, сделанный штатными средствами резервного копирования и восстановления Windows Server 2012 R2 — Windows Server Backup.

Про резервное копирование баз с помощью WSB читайте в статье Резервное копирование баз данных Exchange 2013.

Восстановление из архива

Процесс восстановления достаточно простой, тем не менее пройдемся по основным шагам. Напоминаю, что в вашем случае сценарий восстановления может отличаться вплоть до того, что WSB не будет использоваться вообще (если у вас внедрены средства резервного копирования сторонних производителей).

vosstanovlenie-pochtovyh-yashhikov-01

vosstanovlenie-pochtovyh-yashhikov-02

Поскольку базу мы восстановили в другое расположение, то перед тем как будет возможность её смонтировать, необходимо произвести некоторые манипуляции.

Приведение к согласованному состоянию

Открываем Powershell и переходит в каталог, в который только что была восстановлена база:

Проверяем её состояние командой:

Проверяем статус:

vosstanovlenie-pochtovyh-yashhikov-03

Имея базу в состоянии Dirty Shutdown (читайте Хранилище Exchange 2013), мы не сможем её смонтировать, а значит нужно начать с мягкого восстановления, которое в общем плане выглядит следующим образом:

Однако в нашем случае этот процесс будет немного отличаться, ведь мы восстановили базу в другое расположение, в то время как файлы «помнят» где они должны лежать. Чтобы в этом убедиться, достаточно проверить заголовок любого журнала:

vosstanovlenie-pochtovyh-yashhikov-04

Именно поэтому пути нужно перезаписать, указав их в явном виде ключами /D /L /S:

vosstanovlenie-pochtovyh-yashhikov-05

Примечание: если у вас полный путь до файла БД содержит пробелы, не забудьте взять его в кавычки.

Снова проверяем состояние:

vosstanovlenie-baz-dannyh-exchange-2013-22

На этот раз с базой все в порядке, можно приступать к восстановлению ящиков/писем, предварительно удалив все лишние файлы из каталога восстанавливаемой базы, кроме файла самой БД.

Примечание: база приведена в согласованное состояние, а значит в журналах транзакций и других файлах больше нет необходимости и они будут только мешать монтированию базы.

Переходим к подключения базы.

Подключение

Для подключения только что восстановленного файла необходимо создать базу данных восстановления 1:

vosstanovlenie-pochtovyh-yashhikov-06

Примечание: обратите внимание на параметр -Recovery — он говорит о создании особого типа БД — базы данных восстановления. У неё есть некоторые особенности:

  • она не входит в ограничения 5 БД для версии Standard и 100 — для Enterprise;
  • такую базу на сервере можно создать лишь одну;
  • клиенты не могут к ней подключаться;
  • управлять базой можно только через Powershell, в EAC вы её не увидите.

и многие другие. Подробнее читайте в официальной документации 2.

Перезапускаем службу банка данных:

Монтируем базу командой:

Видим базу восстановления среди других:

vosstanovlenie-pochtovyh-yashhikov-07

На этом этапе мы имеем восстановленную и смонтированную базу в исправном состоянии и самое время перейти к восстановлению нужной информации.

Восстановление данных

Проверим содержимое восстановленной базы:

vosstanovlenie-pochtovyh-yashhikov-09

Для восстановления данных будет использоваться командлет New-MailboxRestoreRequest.

Восстановление папок

Для восстановления какой-либо папки необходимо ввести её имя после параметра -IncludeFolders командлета New-MailboxRestoreRequest:

vosstanovlenie-pochtovyh-yashhikov-10

Примечание: допускается использование личных имен папок, которые вы им дали при создании, а также использование общеизвестных стандартных имен, не зависящих от языка (например папка inbox). Во втором случае необходимо использовать специальные символы, подробнее читайте в документации к командлету 3.

Просматривать объемные запросы на восстановление можно командлетом Get-MailboxRestoreRequest 4:

vosstanovlenie-pochtovyh-yashhikov-12

После запроса на восстановление перезапустите аутлук или обновите страничку OWA (в зависимости от того что используете):

vosstanovlenie-pochtovyh-yashhikov-11

В некоторых случаях восстановления единичных папок недостаточно, тогда подойдет функционал восстановления ящиков целиком, о чем ниже.

Восстановление почтовых ящиков

Для восстановления ящика пользователя целиком выполните команду:

vosstanovlenie-pochtovyh-yashhikov-13

Стоит отметить, что если в текущем ящике пользователя будут присутствовать какие-либо другие почтовые элементы (папки, письма и пр.), то во время восстановления данных они не будут утеряны. По сути восстанавливаемое содержимое ляжет поверх существующего.

Примечание: используйте ключ -AllowLegacyDNMismatch, если значения legacyExchangeDN для исходного и целевого почтовых ящиков не совпадают. Такая ситуация может наблюдаться при восстановлении данных в ящик другого пользователя, либо если ящик пользователя был отключен и включен снова.

Get-MailboxRestoreRequest -Name MailboxRestore1

vosstanovlenie-pochtovyh-yashhikov-14

Если у вас есть несколько запросов на восстановления, указывайте имя необходимого вам запроса как на примере выше.

Как только процесс извлечения полезных данных завершен, не поленитесь подчистить за собой оставшиеся запросы на восстановление:

На этом небольшая статья-памятка по использованию функционала баз данных восстановления завершена. За более подробной информацией обращайтесь к официальной документации 5.

comments powered by HyperComments