В этом коротном мануале разберём процесс обновления Exchange Server 2019 с CU14 до CU15 в DAG (Database Availability Group).
Пошагово рассмотрим подготовку Active Directory, перевод сервера в режим обслуживания, сам процесс обновления и проверку после установки.
Подготовка Active Directory
Перед установкой CU15 необходимо убедиться, что текущая версия Exchange имеет возможность установки апдейта (Не нужно ставить промежуточные патчи).
Убеждаемся, что схема AD, домен и конфигурация подготовлены под новую версию Exchange.
Для этого получаем текущие значения:
# Версия exchange схемы
$sc = (Get-ADRootDSE).SchemaNamingContext
$ob = "CN=ms-Exch-Schema-Version-Pt," + $sc
Write-Output "RangeUpper: $((Get-ADObject $ob -pr rangeUpper).rangeUpper)"
# Версия Exchange объекта (Doman)
$dc = (Get-ADRootDSE).DefaultNamingContext
$ob = "CN=Microsoft Exchange System Objects," + $dc
Write-Output "ObjectVersion (Default): $((Get-ADObject $ob -pr objectVersion).objectVersion)"
# Версия Exchange объекта (configuration)
$cc = (Get-ADRootDSE).ConfigurationNamingContext
$fl = "(objectClass=msExchOrganizationContainer)"
Write-Output "ObjectVersion (Configuration): $((Get-ADObject -LDAPFilter $fl -SearchBase $cc -pr objectVersion).objectVersion)"
В моем случаи я получил значения (до обновления):
RangeUpper: 17003
ObjectVersion (Default): 13243
ObjectVersion (Configuration): 16762
Далее сравниваем значения с табличкой:
Exchange 2019 Version | rangeUpper (Schema) | objectVersion (Domain) | objectVersion (Configuration) |
---|---|---|---|
Exchange 2019 CU15 | 17003 | 13243 | 16763 |
Все актуально, кроме - ObjectVersion (Configuration).
Качаем iso-образ с обновлением и монтируем его на сервер. Далее запускаем команду:
cd L:\
setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms_DiagnosticDataON
После выполнения проверяем, что ObjectVersion (Configuration) изменилось на 16763
.
Важно:
Пользователь, под которым выполняется обновление схемы, должен быть членом групп:
- Enterprise Admins
- Schema Admins
- Domain Admins
B обновление схем производится один раз, при работе со следующим сервером пропускаем данный этап.
Перевод сервера в режим обслуживания (Maintenance Mode)
Перед обновлением в DAG необходимо вывести сервер из работы, чтобы избежать перебоев в обслуживании почтовых ящиков.
Перевод транспорта в режим Drain
Set-ServerComponentState -Identity "EXCH01" -Component HubTransport -State Draining -Requester Maintenance
Redirect-Message -Server "EXCH01" -Target "EXCH03" -Confirm:$false
Отключение активации баз
Set-MailboxServer "EXCH01" -DatabaseCopyAutoActivationPolicy Blocked
Set-MailboxServer "EXCH01" -DatabaseCopyActivationDisabledAndMoveNow $true
Get-MailboxDatabaseCopyStatus * | Sort Name | Select Name, Status
Активация Maintenance Mode для узла DAG
cd $exscripts
.\StartDagServerMaintenance.ps1 -ServerName "EXCH01" -MoveComment Maintenance -PauseClusterNode
Set-ServerComponentState "EXCH01" -Component ServerWideOffline -State Inactive -Requester Maintenance
Проверяем политику активации и очередь:
Get-MailboxServer "EXCH01" | Format-List DatabaseCopyAutoActivationPolicy
Get-Queue
Запуск обновления CU15
После того как сервер выведен в Maintenance Mode, запускаем установку CU15:
cd L:\
Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataON /Mode:Upgrade
Обновление ставится в среднем от 40 минут до 2х часов. Это нормально, поэтому просто ожидаем.
Возврат сервера в работу
После успешного завершения установки снимаем Maintenance Mode:
cd $exscripts
.\StopDagServerMaintenance.ps1 -ServerName "EXCH01"
Set-ServerComponentState -Identity "EXCH01" -Component HubTransport -State Active -Requester Maintenance
Set-ServerComponentState -Identity "EXCH01" -Component ServerWideOffline -State Active -Requester Maintenance
# Восстанавливаем политику активации баз, если меняли
Set-MailboxServer "EXCH01" -DatabaseCopyAutoActivationPolicy Unrestricted
Set-MailboxServer "EXCH01" -DatabaseCopyActivationDisabledAndMoveNow $false
Restart-Service MSExchangeTransport
Проверяем, что все компоненты активны:
Get-ServerComponentState "EXCH01" | Format-Table Component,State -Autosize
Пост проверка
В конце еще раз убеждаемся в целостности работы сервисов:
Get-ClusterNode "EXCH01"
Test-ServiceHealth "EXCH01"
Test-MAPIConnectivity -Server "EXCH01"
Get-MailboxDatabaseCopyStatus -Server "EXCH01" | Sort Name | Select Name, Status
Get-MailboxDatabaseCopyStatus * | Sort Name | Select Name, Status
Get-DatabaseAvailabilityGroup | Select -ExpandProperty Servers | Test-ReplicationHealth | Sort Name
Get-MailboxServer | Select Name, DatabaseCopyAutoActivationPolicy
Отключение Extended Protection
После обновления начиная с CU14 по умолчанию включается Extended Protection.
Если в вашем сетапе это работает не корректно, либо просто не настроено, то для отключения используем команду:
.\ExchangeExtendedProtectionManagement.ps1 -DisableExtendedProtection
Заключение
Процесс обновления Exchange в DAG-группе требует чёткой последовательности действий.
- Подготовка AD,
- Вывод сервера в обслуживание
- Установка обновления
- Возврат в работу и обязательная проверка.