Как удалить или переименовать почтовую базу по умолчанию в Exchange Server?
При установке нового Exchange Server 2019/2016/2013/2010 с ролью почтовых ящиков (mailbox) автоматически создается база по умолчанию. База создается в каталоге установки Exchange (C:Program FilesMicrosoftExchange ServerV15Mailbox). Имя базы данных генерируется также автоматически (в моем случае это «Mailbox Database 1200388344»). Если вы попробуете удалить почтовую базу по умолчанию, вы столкнетесь с ошибкой “
This mailbox database contains one or more mailboxes
”. Дело в том, что в этой почтовой базе хранится ряд системных почтовых ящиков, которые необходимы для работы Exchange.
This mailbox database contains one or more mailboxes, mailbox plans, archive mailboxes, public folder mailboxes or arbitration mailboxes. To get a list of all mailboxes in this database, run the command Get-Mailbox -Database. To get a list of all mailbox plans in this database, run the command Get-MailboxPlan. To get a list of archive mailboxes in this database, run the command Get-Mailbox -Database -Archive. To get a list of all public folder mailboxes in this database, run the command Get-Mailbox -Database -PublicFolder. To get a list of all arbitration mailboxes in this database, run the command Get-Mailbox -Database -Arbitration. To disable a non-arbitration mailbox so that you can delete the mailbox database, run the command Disable-Mailbox . To disable an archive mailbox so you can delete the mailbox database, run the command Disable-Mailbox -Archive. To disable a public folder mailbox so that you can delete the mailbox database, run the command Disable-Mailbox -PublicFolder. Arbitration mailboxes should be moved to another server; to do this, run the command New-MoveRequest . If this is the last server in the organization, run the command Disable-Mailbox -Arbitration -DisableLastArbitrationMailboxAllowed to disable the arbitration mailbox. Mailbox plans should be moved to another server; to do this, run the command Set-MailboxPlan -Database .
Как переименовать и перенести почтовую базу по умолчанию в Exchange Server?
Сначала нужно определить имя базы данных, путь к файлу EDB и логам. Запустите консоль Exchange Management Shell (EMS) или подключитесь к своему Exchange Server удаленно с помощью PowerShell:
Get-MailboxDatabase -server mbx3.winitpro.ru| fl Name, EdbFilePath, LogFolderPath
Чтобы изменить имя базы, воспользуйтесь командлетом Set-MailboxDatabase (не обязательно отмонтировать базу):
Set-MailboxDatabase “Mailbox Database 1200388344” -Name MBX3-01
Также вы можете переименовать базу данных из графического интерфейса Exchange Admin Center.
Exchange по умолчанию помещает базу данных на системный диск (C:). Обязательно перенесите файлы базы данных на другой диск. Благодаря этому рост размена edb файла и лог файлов почтовой базы Exchange не займет все свободное место на системном диске Windows.
Для переноса базы данных используется PowerShell командлет Move-DatabasePath. Сначала нужно отмонтировать базу:
Dismount-Database -Identity MBX3-01
Затем запустите перенос файлов базы данных и лог-файлов:
Move-DatabasePath MBX3-01 -EdbFilePath E:DBMBX3-01.edb -LogFolderPath E:DB MBX3-01
После окончания переноса можно смонтировать базу:
Mount-Database -Identity MBX3-01
Удаляем базу данных по умолчанию в Exchange Server
Для удаления базы, требуется перенести все ящики пользователей и служебные ящики в другую базу данных. Командлет Get-Mailbox без дополнительных параметров не выводит системные и служебные ящики в базе. Для поиска арбитражных почтовых ящиков необходимо выполнить команду:
Get-Mailbox -Arbitration -Database "Mailbox Database 1200388344"
Set-ADServerSettings -ViewEntireForest $true
Теперь переместим эти ящики в другую базу:
Get-Mailbox -Arbitration -Database "Mailbox Database 1200388344" | New-MoveRequest -TargetDatabase MBX3-02
Кроме арбитражных ящиков в дефолтной почтовой базе также могут ящики пользователей, почтовый ящик администратора и Discovery Search Mailbox (используется для поиска писем в ящиках Exchange. Их тоже нужно переместить:
Get-Mailbox -Database "Mailbox Database 1200388344" | New-MoveRequest -TargetDatabase MBX3-02
Также в почтовой базе могут быть другие типы ящиков: Monitoring, Auditing (используется для хранения событий аудита о действиях пользователей в ящиках), архивные ящики, ящики общих папок. Последовательно проверьте, что в вашей базе нет этих ящиков:
$mbxdb="Mailbox Database 1200388344"
Get-Mailbox -Database $mbxdb -Auditlog
Get-MailBox -Database $mbxdb -Archive
Get-MailBox -Database $mbxdb -PublicFolder
Get-MailBox -Database $mbxdb -GroupMailbox
Get-MailBox -Database $mbxdb -Monitoring
При обнаружении таких ящиков их нужно переместить с помощью pipe:
| New-MoveRequest -TargetDatabase MBX3-02
(ящик Monitoring можно отключить
| Disable-Mailbox -Confirm:$false
)
Проверьте, что в базе данных не осталось ящиков пользователей:
Get-Mailbox -Database "Mailbox Database 1200388344"
Get-MailboxStatistics -Database "Mailbox Database 1200388344" | Where { $_.DisconnectReason -eq "Disabled" } | ft DisplayName,Database,DisconnectDate,MailboxGUID
После удаления базы эти ящики нельзя будет восстановить.
Проверьте, что процесс переноса закончился успешно (статус Completed):
Get-MoveRequest | Get-MoveRequestStatistics
После завершения переноса обязательно очистите очередь миграции:
Get-MoveRequest | Remove-MoveRequest
Теперь почтовую базу данных по умолчанию можно удалить:
Remove-MailboxDatabase "Mailbox Database 1200388344"
После этого вручную удалите каталог с базой данных с диска:
Remove-Item -LiteralPath "C:Program FilesMicrosoftExchange ServerV15MailboxMailbox Database 1200388344" -Force -Recurse
PowerShell
Как удалить или переименовать почтовую базу по умолчанию в Exchange Server?