На текущий момент старые серверы с ролью mailbox не выполняют полезных функций: пользовательские данные перенесены в новые почтовые базы, OAB создаётся на новых серверах и клиенты используют уже её. Настало время выводить эти старые серверы из эксплуатации. Но прежде чем запускать установщик на удаление необходимо удалить со старых серверов следующее:
- пустые базы почтовых ящиков
- старую OAB
- пустые базы общих папок
Удаляем пустые базы почтовых ящиков
Если базы в DAG, то необходимо предварительно удалить все копии баз за исключением последней. Последние копии баз удаляются обычным способом:
Get-MailboxDatabase -Server oldserver | Remove-MailboxDatabase
Важно помнить, что удаляемая база не должна быть связана с запросами на импорт/экспорт и восстановление, а так же не должна содержать арбитражные ящики.
Удаляем старую OAB
После миграции OAB на новые серверы ничто не мешает старую OAB удалить:
Remove-OfflineAddressBook 'Old Address Book'
Удаляем базы общих папок
Очевидный стоп-фактор процесса – наличие данных в общих папках. К этому моменту эти данные должны быть смигрированы либо в общие ящики, либо в новые общие папки (Modern Public Folders). Остатки общих папок можно переместить в выделенную базу, которую будем удалять последней:
MoveAllReplicas.ps1 -Server oldserver -NewServer newserver
Процесс переноса можно отслеживать по наличию локальных копий перемещаемых папок:
Get-PublicFolderStatistics -Server oldserver
Кроме остатков папок базы почтовых ящиков могут ссылаться на удаляемую базу общих папок. Все эти ссылки необходимо удалить. Следующий командлет работать не будет:
Set-MailboxDatabase somedatabase -PublicFolderDatabase $null
И тут нам на помощь придёт утилита ADSIEdit. Необходимо будет подключиться к разделу конфигурации и в нужных базах, расположенных тут – CN=Services > CN=Microsoft Exchange > CN=(your organization name) > CN=Administrative Groups > CN=Exchange Administrative Group (FYDIBOHF23SPDLT) > CN=Databases очистить аттрибут msExchHomePublicMDB. Подробно процесс в картинках можно посмотреть тут.
Когда не останется баз, связанных с удаляемой базой общих папок, и не останется локальных копий общих папок, можно будет удалять базу:
Get-PublicFolderDatabase -Server oldserver | Remove-PublicFolderDatabase
Удаляем последнюю базу общих папок
Перед удалением последней базы общих папок чистим её от остатков папок:
Get-PublicFolder -Server newserver "\" -Recurse | Remove-PublicFolder -Recurse Get-PublicFolder -Server newserver "\Non_Ipm_Subtree" -Recurse | Remove-PublicFolder -Recurse
Для счастливых обладателей общих папок, существующих с версий 2003 и раньше, возникнет проблема – часть папок удалить не получится. Вот эти волшебные папки:
- Все папки оффлайновых адресных книг, расположенные в \Non_Ipm_Subtree\OFFLINE ADDRESS BOOK\
- Папка \Internet Newsgroups
Согласно этой ссылке это “нормальное” и ожидаемое поведение. Существует небольшой финт ушами, который позволит эту проблему обойти. Для этого мы отключаем базу общих папок, удаляем всё содержимое папки, в которой хранятся файлы базы и монтируем базу назад. В итоге мы получаем девственно чистую базу без артефактов прошлых эпох. Так как старая база никаких ценных данных не содержала, то мы при этом процессе ничего не теряем. После этого последнюю базу общих папок можно удалять:
Remove-PublicFolderDatabase -Server newserver -RemoveLastAllowed
Ключ -RemoveLastAllowed обязателен.
Удаление mailbox-сервера
После того, как удалены все базы и OAB mailbox-сервер можно удалить либо через штатный GUI в Program and Files, либо через командную строку:
Setup.com /mode:Uninstall /role:M
Полезные ссылки:
How to Remove the Default Public Folder Database for an Exchange Mailbox Database
Unable to delete the OAB system folders in Exchange 2007?
1 thought on “Миграция на Exchange 2016: удаляем старые mailbox-серверы”