Восстановление почтовых ящиков для кого-то может являться весьма редкой задачей, а кто-то этим занимается чуть ли не ежедневно. Кому-то может потребоваться выполнить эту задачу для восстановления пары случайно удаленных генеральным директором писем, а кому-то придется поднимать целые ящики многих юзеров. В любом случае “прелюдией” к этой задаче должен быть грамотно поставленный процесс резервного копирования баз данных Exchange 2013.
Найти больше информации по настройке и администрированию Exchange 2013 на моем блоге вы сможете в основной статье тематики – Exchange 2013 — Установка, настройка, администрирование.
Содержание
Восстановление почтовых ящиков
Весь процесс восстановления подразумевает два этапа – подготовка базы данных с необходимой вам информацией и непосредственно этап вытягивания данных из этой БД. Для выполнения последней задачи воспользуемся особым типом баз данных Exchange 2013 – базой данных восстановления.
Подготовка базы
Сценарий восстановления данных предполагает, что у вас имеется исправная копия БД, из которой необходимо извлечь нужную вам информацию – папки с письмами или целые почтовые ящики пользователей. В моем случае на руках был архив диска с необходимой базой, сделанный штатными средствами резервного копирования и восстановления Windows Server 2012 R2 – Windows Server Backup.
Про резервное копирование баз с помощью WSB читайте в статье Резервное копирование баз данных Exchange 2013.
Восстановление из архива
Процесс восстановления достаточно простой, тем не менее пройдемся по основным шагам. Напоминаю, что в вашем случае сценарий восстановления может отличаться вплоть до того, что WSB не будет использоваться вообще (если у вас внедрены средства резервного копирования сторонних производителей).
Поскольку базу мы восстановили в другое расположение, то перед тем как будет возможность её смонтировать, необходимо произвести некоторые манипуляции.
Приведение к согласованному состоянию
Открываем Powershell и переходит в каталог, в который только что была восстановлена база:
1 |
Set-Location E:\DB\restored |
Проверяем её состояние командой:
1 |
eseutil.exe /mh UserDatabase05.edb |
Проверяем статус:
Имея базу в состоянии Dirty Shutdown (читайте Хранилище Exchange 2013), мы не сможем её смонтировать, а значит нужно начать с мягкого восстановления, которое в общем плане выглядит следующим образом:
1 |
eseutil.exe /r E01 |
Однако в нашем случае этот процесс будет немного отличаться, ведь мы восстановили базу в другое расположение, в то время как файлы “помнят” где они должны лежать. Чтобы в этом убедиться, достаточно проверить заголовок любого журнала:
Именно поэтому пути нужно перезаписать, указав их в явном виде ключами /D /L /S:
1 |
eseutil.exe /r E01 /D E:\DB\restored /L E:\DB\restored /S E:\DB\restored |
Снова проверяем состояние:
На этот раз с базой все в порядке, можно приступать к восстановлению ящиков/писем, предварительно удалив все лишние файлы из каталога восстанавливаемой базы, кроме файла самой БД.
Переходим к подключения базы.
Подключение
Для подключения только что восстановленного файла необходимо создать базу данных восстановления 1:
1 |
New-MailboxDatabase -Name recovery -Recovery -Server exch02 -EdbFilePath E:\DB\restored\UserDatabase05.edb -LogFolderPath E:\DB\restored |
- она не входит в ограничения 5 БД для версии Standard и 100 – для Enterprise;
- такую базу на сервере можно создать лишь одну;
- клиенты не могут к ней подключаться;
- управлять базой можно только через Powershell, в EAC вы её не увидите.
и многие другие. Подробнее читайте в официальной документации 2.
Перезапускаем службу банка данных:
1 |
Restart-Service MSExchangeIS |
Монтируем базу командой:
1 |
Mount-Database recovery |
Видим базу восстановления среди других:
1 |
Get-MailboxDatabase | ft -AutoSize |
На этом этапе мы имеем восстановленную и смонтированную базу в исправном состоянии и самое время перейти к восстановлению нужной информации.
Восстановление данных
Проверим содержимое восстановленной базы:
1 |
Get-MailboxStatistics -Database recovery | ft DisplayName,MailboxGUID,ItemCount -AutoSize |
Для восстановления данных будет использоваться командлет New-MailboxRestoreRequest.
Восстановление папок
Для восстановления какой-либо папки необходимо ввести её имя после параметра -IncludeFolders командлета New-MailboxRestoreRequest:
1 |
New-MailboxRestoreRequest -SourceDatabase recovery -SourceStoreMailbox 09d90070-0338-48f3-a699-1f7890cf7354 -TargetMailbox lena@corp.bissquit.com -IncludeFolders Входящие -TargetRootFolder Recovered |
Просматривать объемные запросы на восстановление можно командлетом Get-MailboxRestoreRequest 4:
1 |
Get-MailboxRestoreRequest |
После запроса на восстановление перезапустите аутлук или обновите страничку OWA (в зависимости от того что используете):
В некоторых случаях восстановления единичных папок недостаточно, тогда подойдет функционал восстановления ящиков целиком, о чем ниже.
Восстановление почтовых ящиков
Для восстановления ящика пользователя целиком выполните команду:
1 |
New-MailboxRestoreRequest -SourceDatabase recovery -SourceStoreMailbox 09d90070-0338-48f3-a699-1f7890cf7354 -TargetMailbox lena@corp.bissquit.com |
Стоит отметить, что если в текущем ящике пользователя будут присутствовать какие-либо другие почтовые элементы (папки, письма и пр.), то во время восстановления данных они не будут утеряны. По сути восстанавливаемое содержимое ляжет поверх существующего.
[code language=”powershell”]
Get-MailboxRestoreRequest -Name MailboxRestore1
[/code]
Если у вас есть несколько запросов на восстановления, указывайте имя необходимого вам запроса как на примере выше.
Как только процесс извлечения полезных данных завершен, не поленитесь подчистить за собой оставшиеся запросы на восстановление:
1 |
Get-MailboxRestoreRequest -Status Completed | Remove-MailboxRestoreRequest |
На этом небольшая статья-памятка по использованию функционала баз данных восстановления завершена. За более подробной информацией обращайтесь к официальной документации 5.