Использование режима обслуживания в Exchange Server

В этой статье рассмотрим, как правильно перевести хост Exchange Server 2019/2016 в режим обслуживания. Сервер группы высокой доступности (Database Availability Group, DAG) Exchange нужно перевести в режим обслуживания (maintenance mode), если вы планируете установить обновления на хосте Exchange (обновления Windows или Exchange CU) или выполнить обслуживание аппаратной платформы сервера. При переводе сервера в maintenance mode нужно перенести активные базы с сервера, и переключить очередь на другие сервера.

В Exchange Server есть два встроенных PowerShell скрипта, связанных с режимом обслуживания:

  • StartDagServerMaintenance.ps1 – позволяет перенести активные базы данных, роль диспетчера Primary Active Manager (PAM) на другой сервер и заблокировать обратный перенос почтовых баз до окончания обслуживания;
  • StopDagServerMaintenance.ps1 – позволяет вывести сервер Exchange из режима обслуживания, выполнив обратные процедуры.

Эти скрипты находятся в каталоге установки Exchange в папке Scripts (CD $ExScripts). Используется следующий синтаксис этих скриптов:

.\StartDagServerMaintenance.ps1 -ServerName <ServerName> -MoveComment Maintenance -PauseClusterNode
.\StopDagServerMaintenance.ps1 -serverName <ServerName>

Эти скрипты помогают автоматизировать часть операций. Но в большинстве случаев администраторы Exchange предпочитают выполнять все действия по переводу сервера в режим обслуживания вручную.

Ниже рассмотрен пример готового PowerShell скрипта, который можно использовать для перевода Exchange в режим обслуживания. Команды нужно выполнять на компьютере с установленным Exchange Management Shell и модулем RSAT-Clustering:

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
Import-Module FailoverClusters

Либо вы можете удаленно подключиться к Exchange серверу с помощью PowerShell:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://msk-mbx1.winitpro.ru/PowerShell/ -Authentication Kerberos -Credential (Get-Credential)

Import-PSSession $Session
Задайте имена серверов Exchange:
# сервер, который переводится в режим обслуживания
$maintance_srv = "msk-mbx1.winitpro.ru"
# целевой сервер, на который нужно перенести очереди
$target_srv = "msk-mbx2.winitpro.ru"
#Отключаем компонент HubTransport на сервере и переводим его в режим Draining
Set-ServerComponentState $maintance_srv –Component HubTransport –State Draining –Requester Maintenance
Restart-Service MSExchangeTransport
#Можно проверить, что статус HubTransport изменился на Draining
Get-ServerComponentState -Identity $maintance_srv -Component Hubtransport

Get-ServerComponentState Hubtransport - перевод Exchange Server в режим обслуживания

Если сейчас выполнить команду Get-ServerComponentState -Identity $maintance_srv , то все компоненты Exchnage (кроме Monitoring и RecoveryActionsEnabled) должны быть в состоянии Incative.

#Теперь нужно перенести очереди сообщений на другой сервер
Redirect-Message -Server $maintance_srv -Target $target_srv
# Проверьте, что очереди очистились с помощью команды:
Get-Queue
# Поставьте на паузу ноду кластера, при этом роль Primary Active Manager (PAM) будет перенесена на другой сервер группы DAG
Suspend-ClusterNode –Name $maintance_srv

# Перевод всех смонтированных копий почтовых баз на другие сервера
Set-MailboxServer $maintance_srv –DatabaseCopyActivationDisabledAndMoveNow $true
# Запретите активацию почтовых баз на сервере
Set-MailboxServer $maintance_srv –DatabaseCopyAutoActivationPolicy Blocked

Дождитесь переключения почтовых баз (потребует несколько минут). Убедитесь, что список смонтированных баз на сервер пуст:

Get-MailboxDatabaseCopyStatus -Server $maintance_srv | where {$_.Status -like "Mounted"}
# Перевод компонентов Exchange в режим обслуживания
Set-ServerComponentState $maintance_srv –Component ServerWideOffline –State InActive –Requester Maintenance
# Проверьте, что сервер находится в режиме обслуживания:
Get-ServerComponentState -Identity $maintance_srv -Component ServerWideOffline
Get-MailboxDatabaseCopyStatus

Теперь вы можете выполнить необходимые вам процедуры обслуживания хоста Exchange. После окончания работ с сервером нужно выполнить обратную процедуры вывода Exchange из режима обслуживания:

Set-ServerComponentState $maintance_srv –Component ServerWideOffline –State Active –Requester Maintenance
# Статус можно проверить так (должен стать Active):
Get-ServerComponentState $maintance_srv -Component ServerWideOffline

Get-ServerComponentState ServerWideOffline

Resume-ClusterNode –Name $maintance_srv
Set-MailboxServer $maintance_srv –DatabaseCopyAutoActivationPolicy Unrestricted
Set-MailboxServer $maintance_srv –DatabaseCopyActivationDisabledAndMoveNow $false
Set-ServerComponentState $maintance_srv –Component HubTransport –State Active –Requester Maintenance

Проверьте статус Exchange Server с помощью:

Test-ServiceHealth $maintance_srv

Распределите почтовые базы по серверам DAG в соответствии с заданными предпочтениями с помощью скрипта RedistributeActiveDatabases.ps1:

cd $exscripts
.\RedistributeActiveDatabases.ps1 -DagName msk-dag –BalanceDbsByActivationPreference

Если нужно перенести все активные копии почтовых баз с одного сервера на другой, выполните:

Move-ActiveMailboxDatabase -Server $target_srv -ActivateOnServer $maintance_srv -Confirm:$false

Выполните проверку доступности MAPI:

Test-MAPIConnectivity -Server $maintance_srv

Проверьте статус баз и репликацию в DAG:

Get-MailboxDatabaseCopyStatus
Test-ReplicationHealth -DatabaseAvailabilityGroup


Предыдущая статья Следующая статья


Комментариев: 5 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)