Exchange Server Maintenance Mode

Lesedauer: 8 Minuten

Ü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

Deaktivieren Sie im ersten Schritt eine ggf. installierte Antiviren Software eines Drittherstellers für die Installation von Updates!

[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.

Der Target Host muss als FQDN angegeben werden!

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.

Dieser Vorgang kann einige Zeit dauern. Sie können den Status der Datenbanken mit dem Kommando
Get-MailboxDatabaseCopyStatus -Server MTA-1 überprüfen

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

Aktivieren Sie Sie ggf. einen Virenscanner und Spamfilter eines Drittanbieters, wenn sich dieser beim Neustart nicht wieder automatisch aktiviert!

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

Loading

Updated on 5. Dezember 2022
Was this article helpful?

Related Articles