Перемещение почтовых ящиков Exchange в другую базу данных

by itisgood

Администратор Exchange может перемещать почтовые ящики пользователей в лесу Active Directory из одной базы данных в другую между серверами Exchange или между базами данных почтовых ящиков на одном сервере через веб-интерфейс центра администрирования Exchange или интерфейс командной строки PowerShell.

Подумайте, вы можете перенести почтовые ящики между базами данных с помощью Exchange Management PowerShell в Exchange 2016/2013/2010.

Чтобы переместить почтовый ящик из одной базы данных в другую, необходимо создать запрос на перемещение (если миграция происходит в том же лесу Active Directory, это называется локальным запросом на перемещение, если вы хотите переместить почтовый ящик между лесами AD – это запрос на удаленное перемещение).

Для перемещения почтового ящика пользователя используется командлет New-MoveRequest.

Чтобы создать локальный запрос на перемещение для почтового ящика определенного пользователя, выполните следующую команду:

New-MoveRequest -Identity jsmith@theitbros.com -TargetDatabase lonDB2 -BadItemLimit 100

Параметр TargetDatabase указывает имя базы данных почтовых ящиков, в которую следует переместить почтовый ящик.

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

Если вы укажете BadItemLimit 0, это означает, что если в почтовом ящике будут какие-либо поврежденные элементы, запрос на перемещение завершится с ошибкой, и почта останется в исходной почтовой базе данных.

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

Чтобы отслеживать процент миграции почтовых ящиков, вы можете использовать командлет Get-MoveRequestStatistics.

Например, чтобы получить статус передачи почтового ящика jsmith@theitbros.com, выполните команду:

Get-MoveRequestStatistics -Identity jsmith@theitbros.com

Обратите внимание на столбец PercentComplete – он указывает процент выполнения задачи.

Общий размер почтового ящика указан в столбце TotalMailboxSize.

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

Get-MoveRequest | Get-MoveRequestStatistics

Вы можете переместить все почтовые ящики в определенной базе данных в другую базу данных.

Для удобства отслеживания статуса перемещения вы можете указать имя задачи пакетного перемещения (параметр BatchName):

Get-Mailbox -Database lonDB1 | New-MoveRequest -BatchName "lonDB1tolonDB2” -TargetDatabase lonDB2 -Priority High -BadItemLimit 50 –AcceptLargeDataLoss

Статус задания на перемещение  можно получить следующим образом:

Get-MoveRequest -BatchName lonDB1tolonDB2 | Format-List DisplayName,Alias,Status,*database*

Вы можете временно приостановить передачу почтовых ящиков с помощью команды:

Get-MoveRequest | ? {$_.Batchname –like “*lonDB1tolonDB2”}|Set-MoveRequest –SuspendWhenReadytoCompleate

Чтобы продолжить передачу почтового ящика:

Get-MoveRequest | ? {$_.Batchname –like “*lonDB1tolonDB2”}|Resume-MoveRequest

Чтобы перенести все почтовые ящики с определенного сервера MBX, используйте команду:

Get-Mailbox -Server exlonmbx1 | New-MoveRequest -TargetDatabase nyDB2

Если в базе данных есть системные почтовые ящики, их необходимо передавать отдельно:

Get-Mailbox -Database lonDB1 -Arbitration | New-MoveRequest -TargetDatabase lonDB2

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

Для этого используйте командлет New-MigrationBatch (доступен в Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online).

New-MigrationBatch -Local -AutoStart -AutoComplete -Name "lonDBMove01" -CSVData ([System.IO.File]::ReadAllBytes("C:\PS\lonDBMove01.csv")) -TargetDatabases lonDB2 -BadItemLimit 10

CSV-файл lonDBMove01.csv должен содержать список почтовых ящиков для перемещения (если вы хотите передать только архивный почтовый ящик, используйте параметр MailboxType – ArchiveOnly, если основной почтовый ящик – PrimaryOnly).

You may also like

Leave a Comment