В этом коротном мануале разберём процесс обновления 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 VersionrangeUpper (Schema)objectVersion (Domain)objectVersion (Configuration)
Exchange 2019 CU15170031324316763

Все актуально, кроме - 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-группе требует чёткой последовательности действий.

  1. Подготовка AD,
  2. Вывод сервера в обслуживание
  3. Установка обновления
  4. Возврат в работу и обязательная проверка.