Überprüfen ob sich Mitglieder des Clusters bereits im Maintenance Mode befinden:
[PS] C:\> Get-DatabaseAvailabilityGroup -Status
Name Member Servers Operational Servers
---- -------------- -------------------
DAG2 {MTA-1, MTA-2} {MTA-1, MTA-2}
DAG Member in den Maintenance Mode versetzen
DisableRealtimeMonitoring
[PS] C:\> Set-MpPreference -DisableRealtimeMonitoring $true
Das Cmdlet Set-MpPreference
mit dem Parameter DisableRealtimeMonitoring
deaktiviert den Windows Defender auf dem System. Der Windows Defender wird idR automatisch deaktiviert, sobald das System eine installierte Antiviren Software eines Drittherstellers erkennt. Damit wird verhindert, dass sich der Windows Defender wieder aktiviert, sobald der eigentliche Virenscanner vorübergehend deaktiviert wird.
Get-MailboxDatabaseCopyStatus (Optional)
Mit dem Cmdlet Get-MailboxDatabaseCopyStatus
kann der Status und der Zustand der vorhandenen Datenbank-Kopien abgefragt werden. Dieser Schritt ist zwar nicht zwingend erforderlich für die Prozedur der Serverwartung, gibt aber einen Überblick ob alle Datenbankkopien grundsätzlich mal in Ordnung sind.
[PS] C:\> Get-MailboxDatabaseCopyStatus
Name Status CopyQueue ReplayQueue LastInspectedLogTime ContentIndex
Length Length State
---- ------ --------- ----------- -------------------- ------------
DB1\MTA-1 Mounted 0 0 Healthy
DB2\MTA-1 Mounted 0 0 Healthy
DB3\MTA-1 Mounted 0 0 Healthy
DB4\MTA-1 Mounted 0 0 Healthy
Set-ServerComponentState → HubTransport → Draining
[PS] C:\> Set-ServerComponentState MTA-1 -Component HubTransport -State Draining -Requester Maintenance
Dieses Kommando ist etwas irreführend. Der Hubtransport
Server überträgt damit nicht die Nachrichten in der Mail Queue, was der Status Draining
(Ausleeren) andeutet, sondern setzt alle Nachrichten auf diesem Server in den Status Pending Delivery
, bis die Nachrichten an einen anderen Mailbox-Server verschoben werden. Außerdem nimmt der Server keine neuen Mails mehr an.
Restart-Service (Optional)
Damit der Vorgang der Entleerung der Mail Queues beschleunigt wird, empfiehlt Microsoft folgende Diente neu zu starten:
[PS] C:\> Restart-Service MSExchangeTransport
[PS] C:\> Restart-Service MSExchangeFrontEndTransport
Redirect-Message
[PS] C:\> Redirect-Message -Server MTA-1 -Target mta-2.domain.local
Das Cmdlet Redirect-Message
, überträgt alle aktiven Nachrichten aus allen Mail Queues auf diesem Server an den Target
-Server. Da dies nur die zum Zeitpunkt der Ausführung vorhandenen Mails betrifft, muss dieses Kommando später nicht mehr zugenommen werden, wenn der Server wieder aus dem Maintenance Modus genommen wird.
Suspend-ClusterNode
[PS] C:\> Suspend-ClusterNode MTA-1
Das Cmdlet Suspend-ClusterNode
deaktiviert den Failover-Clusterknoten. Damit wird dem Cluster mitgeteilt, dass dieser Knoten nicht mehr am Cluster teilnimmt.
DatabaseCopyActivationDisabledAndMoveNow
[PS] C:\> Set-MailboxServer MTA-1 -DatabaseCopyActivationDisabledAndMoveNow $True
Der Parameter DatabaseCopyActivationDisabledAndMoveNow
gibt an, ob das automatische Aktivieren von Datenbanken auf diesem Mailbox-Server verhindert werden soll. Vorausgesetzt auf anderen Mailbox-Servern sind betriebsbereite (healthy) Kopien der Datenbanken vorhanden. Außerdem werden alle eingebundenen Datenbanken auf dem Server sofort auf andere Server verschoben, wenn Kopien vorhanden und in Ordnung sind.
DatabaseCopyAutoActivationPolicy
In DatabaseCopyAutoActivationPolicy
wird die Richtlinie konfiguriert, welche Datenbank-Kopie im Regelbetrieb die aktive sein soll.
Ermitteln Sie den Status der Richtlinie zur automatischen Aktivierung der Datenbank. Diese Information wird am Ende wieder benötigt, wenn man den Server aus den Wartungs-Modus nehmen möchte:
[PS] C:\> Get-MailboxServer MTA-1 | Select DatabaseCopyAutoActivationPolicy
Wenn Ihnen etwas anderes als Blocked
angezeigt wird, müssen Sie diese Richtlinie vorübergehend deaktivieren. Unrestricted
ist der Default Wert:
[PS] C:\> Set-MailboxServer MTA-1 -DatabaseCopyAutoActivationPolicy Blocked
Mit dem Parameter Blocked
wird die Richtlinie außer Kraft gesetzt und verhindert somit das automatische Aktivieren einer Datenbank.
Set-ServerComponentState → ServerWideOffline → Inactive
Jetzt erst wird der Server in den Wartungs-Modus versetzt.
[PS] C:\> Set-ServerComponentState MTA-1 -Component ServerWideOffline -State Inactive -Requester Maintenance
Neben den einzelnen Komponenten, die individuell verwaltet werden können, gibt es auch eine Komponente namens ServerWideOffline
, mit der der Zustand aller Komponenten verwaltet wird. Ausgenommen davon sind die Komponenten Monitoring
und RecoveryActionsEnabled
. Diese müssen aktiv bleiben müssen, weil sonst die Managed Availability
(MA), also der überwachte Komponentenstatus, nicht mehr funktioniert und kein OnlineResponder
die in ServerWideOffline
zusammengefassten Komponenten automatisch wieder auf Activ
setzen kann.
DAG Member aus dem Wartungsmodus nehmen
Set-ServerComponentState → ServerWideOffline → Active
Den Wartungsmodus beenden:
[PS] C:\> Set-ServerComponentState MTA-1 -Component ServerWideOffline -State Active -Requester Maintenance
Resume-ClusterNode
Den Cluster-Knoten wieder fortsetzen:
[PS] C:\> Resume-ClusterNode MTA-1
DatabaseCopyAutoActivationPolicy
Setzen Sie die Richtlinie zur automatischen Aktivierung der Datenbank auf ihre ursprüngliche Einstellung zurück. Wenn sie zuvor auf Blocked
eingestellt war, lassen Sie sie so eingestellt. Die Standardrichtlinie ist Unrestricted
:
[PS] C:\> Set-MailboxServer MTA-1 -DatabaseCopyAutoActivationPolicy Unrestricted
DatabaseCopyActivationDisabledAndMoveNow
Datenbank Autoaktivierung einschalten
[PS] C:\> Set-MailboxServer MTA-1 -DatabaseCopyActivationDisabledAndMoveNow $False
Set-ServerComponentState → HubTransport → Active
Hub-Transportkomponente wieder auf aktiv setzen, damit sie Verbindungen annehmen kann:
[PS] C:\> Set-ServerComponentState MTA-1 -Component HubTransport -State Active -Requester Maintenance
Dienste neu starten
Auch hier empfiehlt Microsoft folgende Dienste neu zu starten:
[PS] C:\> Restart-Service MSExchangeTransport
[PS] C:\> Restart-Service MSExchangeFrontEndTransport
Datenbanken aktivieren
Wenn Sie alle aktiven Kopien vom Server verschoben haben, können Sie sie auf der Grundlage der Aktivierungs-Policy einfach zurückschieben, indem Sie das von Microsoft bereitgestellte Skript RedistributeActiveDatabases.ps1
ausführen.
[PS] C:\Program Files\Microsoft\Exchange Server\V15\Scripts> .\RedistributeActiveDatabases.ps1 -BalanceDbsByActivationPreference -Confirm:$false
*************************************** Balance DAG DBs Dienstag, 29. November 2022 13:23:00 *************************************** Dag : DAG2 ServerCount : 2 DatabaseCount : 4 CopiesCount : 8 ---------------------------- Starting Server Distribution ---------------------------- ServerName TotalDbs ActiveDbs PassiveDbs PreferenceCountList MountedDbs DismountedDbs DagName ---------- -------- --------- ---------- ------------------- ---------- ------------- ------- MTA-1 4 0 4 {4, 0} 0 0 DAG2 MTA-2 4 4 0 {0, 4} 4 0 DAG2 ----------------------- Starting Database Moves ----------------------- Verschiebung von 'DB2' von 'MTA-2' (AP = 2) zu 'MTA-1' (AP = 1) wird in Erwägung gezogen... Datenbank 'DB2' erfolgreich von 'MTA-2' zu 'MTA-1' verschoben. ServerName ActiveDbs PassiveDbs ---------- --------- ---------- MTA-1 1 3 MTA-2 3 1 `n Verschiebung von 'DB4' von 'MTA-2' (AP = 2) zu 'MTA-1' (AP = 1) wird in Erwägung gezogen... Datenbank 'DB4' erfolgreich von 'MTA-2' zu 'MTA-1' verschoben. ServerName ActiveDbs PassiveDbs ---------- --------- ---------- MTA-1 2 2 MTA-2 2 2 `n Verschiebung von 'DB3' von 'MTA-2' (AP = 2) zu 'MTA-1' (AP = 1) wird in Erwägung gezogen... Datenbank 'DB3' erfolgreich von 'MTA-2' zu 'MTA-1' verschoben. ServerName ActiveDbs PassiveDbs ---------- --------- ---------- MTA-1 3 1 MTA-2 1 3 `n Verschiebung von 'DB1' von 'MTA-2' (AP = 2) zu 'MTA-1' (AP = 1) wird in Erwägung gezogen... Datenbank 'DB1' erfolgreich von 'MTA-2' zu 'MTA-1' verschoben. ServerName ActiveDbs PassiveDbs ---------- --------- ---------- MTA-1 4 0 MTA-2 0 4 `n ---------------- Summary of Moves ---------------- Successfully moved : 4 Moved to less preferred : 0 Failed to move : 0 Not moved : 0 Start time : Dienstag, 29. November 2022 13:22:50 End time : Dienstag, 29. November 2022 13:23:13 Duration : 00:00:22.5331481 DbName : DB1 ActiveOnPreferenceAtStart : 2 ActiveServerAtStart : MTA-2 ActiveOnPreferenceAtEnd : 1 ActiveServerAtEnd : MTA-1 IsOnMostPreferredCopy : True MoveStatus : MoveSucceeded DbName : DB2 ActiveOnPreferenceAtStart : 2 ActiveServerAtStart : MTA-2 ActiveOnPreferenceAtEnd : 1 ActiveServerAtEnd : MTA-1 IsOnMostPreferredCopy : True MoveStatus : MoveSucceeded DbName : DB3 ActiveOnPreferenceAtStart : 2 ActiveServerAtStart : MTA-2 ActiveOnPreferenceAtEnd : 1 ActiveServerAtEnd : MTA-1 IsOnMostPreferredCopy : True MoveStatus : MoveSucceeded DbName : DB4 ActiveOnPreferenceAtStart : 2 ActiveServerAtStart : MTA-2 ActiveOnPreferenceAtEnd : 1 ActiveServerAtEnd : MTA-1 IsOnMostPreferredCopy : True MoveStatus : MoveSucceeded
Windows Defender Real Time Monitoring aktivieren
[PS] C:\> Set-MpPreference -DisableRealtimeMonitoring $false
Status der Datenbank-Kopien ermitteln
[PS] C:\> Get-MailboxDatabaseCopyStatus
Zusammenfassung
In den Wartungsmodus versetzen
Set-MpPreference -DisableRealtimeMonitoring $true Get-MailboxDatabaseCopyStatus Set-ServerComponentState MTA-1 -Component HubTransport -State Draining -Requester Maintenance Restart-Service MSExchangeTransport Restart-Service MSExchangeFrontEndTransport Redirect-Message -Server MTA-1 -Target mta-2.domain.local Suspend-ClusterNode MTA-1 Set-MailboxServer MTA-1 -DatabaseCopyActivationDisabledAndMoveNow $True Get-MailboxServer MTA-1 | Select DatabaseCopyAutoActivationPolicy Set-ServerComponentState MTA-1 -Component ServerWideOffline -State Inactive -Requester Maintenance
Aus dem Wartungsmodus nehmen
Set-ServerComponentState MTA-1 -Component ServerWideOffline -State Active -Requester Maintenance Resume-ClusterNode MTA-1 Set-MailboxServer MTA-1 -DatabaseCopyAutoActivationPolicy Unrestricted Set-MailboxServer MTA-1 -DatabaseCopyActivationDisabledAndMoveNow $False Set-ServerComponentState MTA-1 -Component HubTransport -State Active -Requester Maintenance Restart-Service MSExchangeTransport Restart-Service MSExchangeFrontEndTransport .\RedistributeActiveDatabases.ps1 -BalanceDbsByActivationPreference -Confirm:$false Set-MpPreference -DisableRealtimeMonitoring $false Get-MailboxDatabaseCopyStatus