===== Обновление кластера DAG ===== Для обновления кластера DAG в простом случае - можно передать базы на другой другой сервер (выбрав опцию //activate// в разделе //databases// в ECP). Однако, лучше выполнить поочередную подготовку серверов через штатную процедуру, описанную в документации MS. ==== С использованием скрипта StartDagServerMaintenance.ps1 ==== === Перевод сервера в режим maintenance === 1. Сообщаем транспортной службе больше не принимать новые сообщения. Set-ServerComponentState MX1 -Component HubTransport -State Draining -Requester Maintenance 2. Инициируем drain транспортной очереди перезапуском службы Restart-Service MSExchangeTransport 3. Перемещаемся в папку встроенных скриптов MS-Exchange CD $ExScripts 4. Запускаем скрипт перевода сервера в режим технического обслуживания. Данный скрипт переместит базы на другой сервер, а также запретит запуск критичных для кластера ролей на сервере, перевод которого в режим технического обслуживания предполагается. .\StartDagServerMaintenance.ps1 -ServerName MX1 -MoveComment Maintenance -PauseClusterNode 5. Переводим сообщения, которые есть в очереди на другой сервер, используя его FQDN Redirect-Message -Server MX1 -Target MX2.domain.ru 6. Переводим основные функции сервера в режим технического обслуживания Set-ServerComponentState MX1 -Component ServerWideOffline -State Inactive -Requester Maintenance ** Проверка режима maintenance ** 1. Смотрим, что все основные компоненты (кроме //Monitoring// и //RecoveryActionsEnabled//) остановлены. Get-ServerComponentState MX1 | Format-Table Component,State -Autosize 2. Смотрим, что сервер не хостит активные БД. Get-MailboxServer MX1 | Format-List DatabaseCopyAutoActivationPolicy 3. Проверяем, что кластер находится в состоянии //paused//. Get-ClusterNode MX1 | Format-List 4. Проверяем, что все сообщения покинули очередь. Get-Queue ---- :!: //Теперь можно производить работы с сервером - устанавливать обновления, перезагружать и т.д.// ---- ** Перевод сервера в обычный режим ** После проведения технических работ нужно вернуть сервер в обычный режим. 1. Сообщаем серверу, что можно принимать клиентские подключения. Set-ServerComponentState MX1 -Component ServerWideOffline -State Active -Requester Maintenance 2. Перемещаемся в папку встроенных скриптов. CD $ExScripts 3. Останавливаем режим обслуживания, который мы прежде запустили скриптом //StartDagServerMaintenance.ps1//. .\StopDagServerMaintenance.ps1 -serverName MX1 4. Сообщаем транспортным очередям, что они могут принимать сообщения Set-ServerComponentState MX1 -Component HubTransport -State Active -Requester Maintenance 5. Триггерим возобновление транспортной активности перезапуском службы Restart-Service MSExchangeTransport 6. Проверяем, что сервер вышел из режима технического обслуживания Get-ServerComponentState mx1 | Format-Table Component,State -Autosize 7. Если с какими-то компонентами есть проблемы - их можно запустить отдельно. Примеры: Set-ServerComponentState MX1 -Component ServerWideOffline -State Active -Requester Functional Set-ServerComponentState MX1 -Component Monitoring -State Active -Requester Functional Set-ServerComponentState MX1 -Component RecoveryActionsEnabled -State Active -Requester Functional Чтобы обновить другой сервер - повторяем операции, описанные в инструкции. ==== Вариант обновления без использования StartDagServerMaintenance.ps1 ==== Если по каким-либо причинам скрипт //StartDagServerMaintenance.ps1// не работает, можно использовать вариант, где включение режима maintenance в DAG выполняется вручную. === Перевод сервера в режим maintenance === #Сообщаем транспортной службе больше не принимать новые сообщения Set-ServerComponentState exchange02 -Component HubTransport -State Draining -Requester Maintenance #Перезапускаем транспортные службы Restart-Service MSExchangeTransport Restart-Service MSExchangeFrontEndTransport #Перенаправляем очередь сообщений на другой сервер в домене Redirect-Message -Server "EXCHANGE02" -Target "EXCHANGE01.domain.ru" #Ставим на паузу ноду кластера Suspend-ClusterNode "EXCHANGE02" #Отключаем автоматическую активацию копий на данном сервере. Эта команда также форсирует перемещение баз данных на другие серверы, которые не находятся в режиме обслуживания. Перемещение баз занимает какое-то время. Set-MailboxServer "EXCHANGE02" -DatabaseCopyActivationDisabledAndMoveNow $true #Блокируем активацию новых копий Set-MailboxServer "EXCHANGE02" -DatabaseCopyAutoActivationPolicy Blocked # Смотрим статус политики активации баз данных Get-MailboxServer "EXCHANGE02" | Select DatabaseCopyAutoActivationPolicy # Перед выполнение тех. обслуживания на данном сервере не должно оставаться активных баз, проверяем это: Get-MailboxDatabaseCopyStatus -Server "EXCHANGE02" | Where {$_.Status -eq "Mounted"} # Переводим сервер в режим технического обслуживания Set-ServerComponentState "EXCHANGE02" -Component ServerWideOffline -State Inactive -Requester Maintenance # Проверяем статус компоненов. Все, кроме "Monitoring" и "RecoveryActionsEnabled" должны быть остановлены. Get-ServerComponentState "EXCHANGE02" | Select Component, State Проводим запланированные технические работы. === Перевод сервера в обычный режим === # Обратим изменения, сделанные на прошлом этапе и введем сервер в обычный режим обратно Set-ServerComponentState EXCHANGE02 -Component ServerWideOffline -State Active -Requester Maintenance Resume-ClusterNode EXCHANGE02 Set-MailboxServer EXCHANGE02 -DatabaseCopyActivationDisabledAndMoveNow $False Set-MailboxServer EXCHANGE02 -DatabaseCopyAutoActivationPolicy Unrestricted Set-ServerComponentState EXCHANGE02 -Component HubTransport -State Active -Requester Maintenance Restart-Service MSExchangeTransport Restart-Service MSExchangeFrontEndTransport # Если базы Exchange не вернулись автоматом на свой приоритетный серер, выполняем скрипт ребалансировки: cd "C:\Program Files\Microsoft\Exchange Server\V15\Scripts" .\RedistributeActiveDatabases.ps1 -BalanceDbsByActivationPreference -Confirm:$false Подробнее о приоритете активации баз тут: [[Приоритет активации баз в DAG]]\\ {{tag>Exchange Microsoft WindowsServer Mail DAG}}