Exchange 2010 DAG Maintance

When you need to performing maintenance on DAG nodes here is the process you want to go through In my environment I have two nodes in a dag. For more nodes the same process
All the commands below are run in an administrative exchange prompt.

Type add first: cd $exscripts and press enter.

Now you are in the Scripts folder.

Node 1:
Process for maintenance on database servers
.\StartDagServerMaintenance.ps1 -ServerName <Dag Node 1>

Run maintenance on <Dag Node 1>

When you are finished on Node 1
.\StopDagServerMaintenance.ps1 -ServerName <Dag Node 1>

Node 2:
.\StartDagServerMaintenance.ps1 -ServerName <Dag Node >

run maintenance on <Dag Node >

When you are finished on Node 2
.\StopDagServerMaintenance.ps1 -ServerName <Dag Node >

When done performing maintenance on one or multiple servers (hopefully one at a time to maintain full database availability for end users!) you can end up with a sub-optimal active database layout, especially if you have a cross-site DAG. To resolve this you have to rebalance the databases based on the priorities set for them upon creation.
Rebalance databases across dag
.\RedistributeActiveDatabases.ps1 -DagName <Your DAG Name> -BalanceDbsByActivationPreference -ShowFinalDatabaseDistribution -Confirm:$false

If you get any errors you may have to re-index the search catalog for the passive database. Rather than hunting down which ones need to be fixed you can just fix them all with the custom I wrote below (or for only the mail servers with issues). When finished these commands then try to run the maintenance or rebalance scripts again.
Fix/Rebuild Search Catalogs
Get-MailboxDatabaseCopyStatus -Server <Dag Node 1> | where {$_.Status -like "Healthy"} | -MailboxDatabaseCopy –catalogonly

Get-MailboxDatabaseCopyStatus -Server <Dag Node > | where {$_.Status -like "Healthy"} | -MailboxDatabaseCopy -catalogonly

Translate »
%d bloggers like this: