
В этой статье мы покажем вам, как правильно перевести хост Exchange Server 2019/2016 в режим обслуживания. Вы должны перевести группу доступности баз данных (DAG) в режим обслуживания, если собираетесь установить обновления на хост Exchange Server (Windows Updates или Exchange CU) или обслуживать оборудование сервера. При включении режима обслуживания необходимо переместить активные базы данных с сервера Exchange и переключить очередь на другие серверы.
Сервер Exchange Server имеет два встроенных сценария PowerShell для управления режимом обслуживания:
- StartDagServerMaintenance.ps1 — позволяет перенести активные базы данных и роль Primary Active Manager (PAM) на другой сервер и блокирует обратную миграцию баз данных почтовых ящиков до окончания обслуживания;
- StopDagServerMaintenance.ps1 — позволяет вывести сервер Exchange из режима обслуживания, выполнив обратные процедуры.
Эти сценарии находятся в папке Scripts (CD $ExScripts
) в каталоге установки Exchange. Используется следующий синтаксис:
.\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://munexh01.woshub.com/PowerShell/ -Authentication Kerberos -Credential (Get-Credential)
Import-PSSession $Session
Задайте имена ваших серверов Exchange:
# a server that you want to enable the maintenance mode for
$maintance_srv = "munexh01.woshub.com"
# a target server you want to move mail queues to
$target_srv = "munexh02.woshub.com"
# Disable the HubTransport component of the server and put it into Draining mode
Set-ServerComponentState $maintance_srv –Component HubTransport –State Draining –Requester Maintenance
Restart-Service MSExchangeTransport
# Check that the HubTransport status has changed to Draining
Get-ServerComponentState -Identity $maintance_srv -Component Hubtransport
Если вы запустите Get-ServerComponentState -Identity $maintance_srv
, то все компоненты Exchange (кроме Monitoring и RecoveryActionsEnabled) будут иметь статус Inactive.
# Move mail queue to another server
Redirect-Message -Server $maintance_srv -Target $target_srv
# Make sure that the mail queue have been cleared:
Get-Queue
# Pause your cluster node. This will move the Primary Active Manager (PAM) role to another DAG host
Suspend-ClusterNode –Name $maintance_srv
# Move all the mounted copies of mailbox databases to other servers
Set-MailboxServer $maintance_srv –DatabaseCopyActivationDisabledAndMoveNow $true
# Prevent a database activation on the server
Set-MailboxServer $maintance_srv –DatabaseCopyAutoActivationPolicy Blocked
Дождитесь, пока базы данных почтовых ящиков будут успешно перемещены на другой хост (это займет несколько минут). Убедитесь, что список смонтированных баз данных на сервере пуст:
Get-MailboxDatabaseCopyStatus -Server $maintance_srv | where {$_.Status -like "Mounted"}
# Put Exchange components into maintenance mode
Set-ServerComponentState $maintance_srv –Component ServerWideOffline –State InActive –Requester Maintenance
# Check if the server is in maintenance mode
Get-ServerComponentState -Identity $maintance_srv -Component ServerWideOffline
Get-MailboxDatabaseCopyStatus
Теперь вы можете завершить процедуры обслуживания нужного вам узла Exchange. После того как вы все сделали на сервере, вам нужно выполнить обратные шаги, чтобы вывести ваш хост Exchange Server из режима обслуживания:
Set-ServerComponentState $maintance_srv –Component ServerWideOffline –State Active –Requester Maintenance
# You may check the status as shown below (it must change to Active):
Get-ServerComponentState $maintance_srv -Component 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:
Test-ServiceHealth $maintance_srv
Перераспределите активные базы данных почтовых ящиков между узлами DAG в соответствии с настроенными предпочтениями активации с помощью RedistributeActiveDatabases.ps1:
cd $exscripts
.\RedistributeActiveDatabases.ps1 -DagName mun-dag –BalanceDbsByActivationPreference
Move-ActiveMailboxDatabase -Server $target_srv -ActivateOnServer $maintance_srv -Confirm:$false
Выполните проверку доступности MAPI:
Test-MAPIConnectivity -Server $maintance_srv
Проверьте состояние базы данных и репликацию в группе DAG:
Get-MailboxDatabaseCopyStatus
Test-ReplicationHealth -DatabaseAvailabilityGroup