Eseutil — утилита для оффлайнового восстановления базы

1. Посмотреть состояние базы. Статус должен быть Clean Shutdown, а не Dirty Shutdown.

  eseutil.exe /mh E:\restore\mydb.edb 
  eseutil.exe /mh E:\restore\mydb.edb | Select-String -pattern state, required 

2. Если Dirty Shutdown, то базу нужно восстановить. Указываем префикс логов E01, путь к базе \d "E:\Restore" и путь к логам /l "E:\Restore\Logs". Без слешей на конце и расширения .edb

  eseutil /R E01 /d "E:\Restore" /l "E:\Restore\Logs"

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

  eseutil /p "E:\Restore\mydb.edb"

4. Ещё раз проверяем статус, должно быть Clean Shutdown и тогда можно подключать и монтировать базу.

  eseutil.exe /mh E:\restore\mydb.edb | Select-String -pattern state, required 

5. Подключаем базу к Exchange Server

 New-MailboxDatabase -Recovery -Server MyServer -Name "RDB-MyDB" -EdbFilePath E:\Restore\mydb.edb -LogFolderPath E:\Restore\Logs

6. Перезапускаем сервис Information Store

 Restart-Service MSExchangeIS

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

 Mount-Database rdb-mydb

8. Просматриваем отключённые почтовые ящики в базе. Если надо восстановить конкретный ящик, то находим его и запоминаем MailboxGUID

 Get-MailboxStatistics -Database RDB-mydb | ft  DisplayName, MailboxGUID –a      

9. Создаём запрос на восстановление почтового ящика. Указываем базу, MailboxGUID и в какой почтовый ящик.

 New-MailboxRestoreRequest -Name "RestoreRequestMailbox"  -SourceDatabase RDB-mydb -SourceStoreMailbox 383d6151-b3ff-4827-bf44-52fd50559190 -TargetMailbox test@mydomain.ru  –AllowLegacyDNMismatch   
 #В отдельную папку
 New-MailboxRestoreRequest -Name "RestoreRequesttoFolder" -SourceDatabase RDB-mydb -SourceStoreMailbox 383d6151-b3ff-4827-bf44-52fd50559190 -TargetMailbox test@mydomain.ru -TargetRootFolder "InboxRestore" -AllowLegacyDNMismatch
 #Восстановить конкретную папку
 New-MailboxRestoreRequest -Name "RestoreRequestOnlyOneFolder" -SourceDatabase RDB-mydb -SourceStoreMailbox 383d6151-b3ff-4827-bf44-52fd50559190 -TargetMailbox test@mydomain.ru -IncludeFolders "Invoices" -AllowLegacyDNMismatch
 #Для стандартных ящиков синтаксис сложнее
 New-MailboxRestoreRequest -Name "RestoreRequestOnlyOneFolder" -SourceDatabase RDB-mydb -SourceStoreMailbox 383d6151-b3ff-4827-bf44-52fd50559190 -TargetMailbox test@mydomain.ru -IncludeFolders "#Inbox#/*" -AllowLegacyDNMismatch
 #Исключить папки
 New-MailboxRestoreRequest -Name "RestoreRequestOnlyOneFolder" -SourceDatabase RDB-mydb -SourceStoreMailbox 383d6151-b3ff-4827-bf44-52fd50559190 -TargetMailbox test@mydomain.ru -ExcludeFolders "#SentItems#","#DeletedItems#" -AllowLegacyDNMismatch-

10. Наблюдаем за тем, как происходит восстановление почтового ящика

 Get-MailboxRestoreRequest | ?{$_.TargetMailbox -like "*test*"} | Get-MailboxRestoreRequestStatistics
 Get-MailboxRestoreRequest -Name "RestoreRequestMailbox" | Get-MailboxRestoreRequestStatistics | Select Status*,Include*,Exclude*,*Transfer*,OverallDuration,CompletedRequestAgeLimit