Это последняя часть серии статей по восстановлению данных в Exchange 2010 SP1. Если вы не читали первые две части, вам сюда – тыц1 и тыц2. И эта часть наиболее интересна, так как именно в ней мы подходим к сути всех наших мучений.
Поиск ящиков и выполнение простого восстановления
Теперь, когда наша база восстановления создана и смонтирована, мы можем воспользоваться командлетом Get-MailboxStatistics для просмотра какие ящики доступны для восстановления в этой базе.
Get-MailboxStatistics -Database RecoveryDB
Если вас интересует определенный почтовый ящик, вы можете отфильтровать результат следующим образом:
Get-MailboxStatistics -Database RecoveryDB | ?{$_.DisplayName -like 'Mike*'}
Немного расшифруем эту команду для начинающих пользователей. Я использовал алиас ? для командлета Where-Object. Также в команде присутствует оператор -like, который фильтрует результат и выводит только почтовый ящики, начинающиеся с Mike.
Для восстановления мы будем использовать командлет New-MailboxRestoreRequest. При использовании данного командлета необходимо учитывать одну его особенность – почтовый ящик в базе восстановления должен идентифицироваться одним из трех значений: DisplayName, MailboxGUID или LegacyExchangeDN. Вы не сможете ссылаться на ящик используя псевдоним Exchange.
Итак, давайте приступим непосредственно к восстановлению. Как я уже выяснил, копия моего почтового ящика есть в базе восстановления. Для выполнения полного восстановления данных в мой текущий почтовый ящик необходимо выполнить следующую команду:
New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox 'Mike Pfeiffer' -TargetMailbox mpfeiffer
В зависимости от размера почтового ящика, это может занять продолжительное время. Просматривать статистику переноса я могу с помощью следующей команды:
Get-MailboxRestoreRequest | Get-MailboxRestoreRequestStatistics
Восстановление нескольких почтовых ящиков с одинаковым DisplayName
Вполне вероятна ситуация когда в базе восстановления у нас будет несколько почтовых ящиков с одинаковым именем. В этом случае мы можем использовать параметр MailboxGuid для определения почтового ящика, который мы можем получить следующим образом:
Get-MailboxStatistics -Database RecoveryDB | ?{$_.DisplayName -like 'Isabel*'} | fl DisplayName,MailboxGuid,DisconnectDate
Как вы можете видеть на скриншоте ниже у нас есть два почтовых ящика с одинаковым именем. Но один из них отключен, поэтому для восстановления мы будем использовать второй почтовый ящик. Немного изменим использованную нами ранее команду восстановления ящика. Теперь она будет выглядеть вот так:
New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox 4a1d2118-b8cc-456c-9fd9-cd9af1f549d0 -TargetMailbox ihill
Восстановление выборочных папок из почтового ящика
Для восстановления определенных папок, а не целого почтового ящика нам нужно использовать ключ -IncludeFolders. В данном примере мы указываем что необходимо восстанавливать только папку Inbox:
New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox administrator -TargetMailbox administrator -IncludeFolders '#Inbox#'
Параметр -IncludeFolders принимает список из одной или нескольких папок почтового ящика. Вы можете указывать как стандартные папки, так и созданные вами. Обратите внимание что значение папки должно быть окружено символом #. К примеру для восстановления папки контактов нужно указать #Contacts#, или #Tasks# для восстановления задач.
Восстановление в архивный почтовый ящик
Для восстановления данных пользователей в архивный почтовый ящик необходимо использовать ключ -TargetIsArchive Далее сама команда и результат её выполнения:
New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox 'Mike Pfeiffer' -TargetMailbox mpfeiffer -TargetIsArchive
Само самой подразумевается что для ящика, куда вы восстанавливаете данные, включена опция архивного почтового ящика.
Восстановление в альтернативный почтовый ящик
По умолчанию командлет New-MailboxRestoreRequest ищет совпадающие LegacyExchangeDN или проверяет что адрес X500 в ящике куда мы восстанавливаем данные соответствует значению LegacyExchangeDN в восстанавливаемом ящике. Это гарантирует что вы случайно не восстановите почтовый ящик в неверное место. Если вам действительно нужно восстановить данные в другой ящик необходимо использовать ключ -AllowLegacyDNMismatch:
New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox 'Mike Pfeiffer' -TargetMailbox administrator -TargetRootFolder Restore -AllowLegacyDNMismatch
В данном примере я восстанавливаю данные из своего почтового ящика из базы восстановления в подпапку Restore почтового ящика администратора:
Будьте очень осторожны с восстановлением в другой почтовый ящик. Если вы пропустите ключ -TargetRootFolder данные будут восстановлены в существующие папки и сольются с другими письмами.
Массовое восстановление
Вы можете попасть в ситуацию когда вам необходимо восстановить все данные из базы восстановления. К примеру предположим что нам нужно восстановить папку Контактов из всех почтовых ящиков. В этом случае используем следующую команду:
foreach($mailbox in Get-MailboxStatistics -Database RecoveryDB) {
New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox $mailbox.DisplayName -TargetMailbox $mailbox.DisplayName -SourceRootFolder Contacts
}
Для мониторинга выполнения используем такую команду:
Get-MailboxRestoreRequest -Status Queued
Как вы могли заметить, в процессе восстановления существует большое количество доступных опций. Рекомендую изучать все возможные ситуации заранее, а не разбираться на лету когда проблема произойдет. Вы должны правильно восстанавливать данные и периодически тестировать данную процедуру.
Комментариев нет:
Отправить комментарий