Database Availability Group (DAG) — это технология обеспечения высокой доступности mailbox-серверов Exchange, появившаяся в Exchange 2010. Принцип ее работы заключается в создании нескольких копий одной базы, размещенных на разных серверах. При выходе из строя сервера с активной копией база автоматически активируется на другом сервере, обеспечивая непрерывную работу почты. Кроме того, базы можно переключать и вручную, что может пригодится при установке на сервер обновлений или регламентных работах.
В принципе для обслуживания можно воспользоваться готовыми скриптами, которые находятся в директории установки Exchange, папке Scripts: StartDagServerMaintenance.ps1 для перевода сервера в режим обслуживания и StopDagServerMaintenance.ps1 для вывода из этого режима. Однако, по опыту, эти скрипты не всегда отрабатывают корректно, поэтому я предпочитаю все действия производить вручную, тем более что их не так и много. Для перевода сервера, в ходящего в DAG, надо:
1) Убрать с него активные копии баз;
2) Запретить их активацию на время обновления;
3) Перевести Primary Active Manager на другой сервер (если он находится на данном сервере).
Примечание. Active Manager отслеживает состояние баз данных в DAG и отвечает за их переключение в случае проблем. Он может быть в двух состояниях — Primary Active Manager и Standby Active Manager. Состояние Primary Active Manager одновременно может быть только на одном из серверов в DAG, на остальных Active Manager в состоянии Standby. Независимо от состояния, Active Manager наблюдает за состоянием баз на сервере, однако решение о переключении в случае проблем принимает PAM.
Начнем с переключения Primary Active Manager. Одновременно он может быть только на одном из серверов в DAG и нам надо выяснить, на каком именно. Для этого сначала получаем название группы DAG командой:
Get-DatabaseAvailabilityGroup
И затем выводим свойства этой группы:
Get-DatabaseAvailabilityGroup -Identity ″dag″ -Status | fl name, servers, primaryactivemanager
Как видите, PAM находится на сервере MBX01, который мы собираемся обновлять.
Для переноса Primary Active Manager нам потребуется модуль управления кластером. В Windows Server 2012 он подгрузится сам, в более ранних ОС надо импортировать его вручную, командой:
Import-Module FailoverClusters
Далее выводим список групп кластера:
Get-ClusterGroup
Переносим Primary Active Manager на сервер MBX02:
Move-ClusterGroup -Name ″Cluster Group″ -Node mbx02
И проверяем, что Primary Active Manager успешно переехал.
Теперь надо убрать с сервера все активные копии баз и убедиться в том, что пассивные копии не смогут быть активированы во время установки обновлений. Проверяем состояние баз на сервере командой:
Get-MailboxDatabaseCopyStatus -Server mbx01
Базы должны быть либо в состоянии Mounted (активные копии), либо Healthy (пассивные копии). Запрещаем активацию баз:
Get-MailboxDatabaseCopyStatus -Server mbx01 | Suspend-MailboxDatabaseCopy -ActivationOnly -Confirm:$false
И выносим с сервера все активные базы:
Move-ActiveMailboxDatabase -Server mbx01 -Confirm:$false
На всякий случай проверяем результат:
Get-MailboxDatabaseCopyStatus -Server mbx01 | ft name, activ*
И приступаем к установке обновлений.
После завершения установки обновлений возвращаем сервер в строй. Сначала разрешаем активацию копии базы на сервере командой:
Get-MailboxDatabaseCopyStatus -Server mbx01 | Resume-MailboxDatabaseCopy -Confirm:$false
И переносим на него активные копии базы, либо по одной:
Move-ActiveMailboxDatabase -Identity db01 -ActivateOnServer mbx01 -Confirm:$false
Либо можем сразу перенести все активные базы с сервера mbx02 на сервер mbx01:
Move-ActiveMailboxDatabase -Server mbx02 -ActivateOnServer mbx01 -Confirm:$false
Дальше повторяем процедуру для следующего сервера DAG.
А если МВ и КАС совмещены на серверах (для Е2013) — процедура такая же? Никаких доптелодвижений не нужно?