Update Servers/Microsoft Exchange/Scripts/DAG/Database Management.md
All checks were successful
GitOps Automatic Deployment / GitOps Automatic Deployment (push) Successful in 7s
All checks were successful
GitOps Automatic Deployment / GitOps Automatic Deployment (push) Successful in 7s
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
### Purpose
|
||||
## Purpose
|
||||
If you operate an Exchange Database Availability Group (DAG) with 2 or more servers, you may need to do maintenance to one of the members, and during that maintenance, it's possible that one of the databases of the server that was rebooted etc will be out-of-date. In case this happens, it may suspend the database replication to one of the DAG's member servers.
|
||||
|
||||
### Checking DAG Database Replication Status
|
||||
## Checking DAG Database Replication Status
|
||||
You will want to first log into one of the DAG servers and open the *"Exchange Management Shell"*. From there, run the following command to get the status of database replication. An example of the kind of output you would see is below the command.
|
||||
|
||||
```powershell
|
||||
@ -22,7 +22,7 @@ Get-MailboxDatabaseCopyStatus * | Format-Table Name, Status, CopyQueueLength, Re
|
||||
|
||||
When both the "**CopyQueueLength**" and "**CopyReplayLength**" queues have reached zero, the replica database(s) will have reached 100% parity with the production (active/mounted) database.
|
||||
|
||||
### Changing Active/Mounted DAG Member
|
||||
## Changing Active/Mounted DAG Member
|
||||
You may find that you need to perform work on one of the DAG members, and that requires you to failover the responsibility of hosting the Exchange environment to one of the other members of the DAG. You can generally do this with one command, seen below:
|
||||
```powershell
|
||||
Move-ActiveMailboxDatabase -Identity "DB01" -ActivateOnServer "MX-DAG-02" -MountDialOverride BestAvailability
|
||||
@ -35,10 +35,10 @@ Move-ActiveMailboxDatabase -Identity "DB01" -ActivateOnServer "MX-DAG-02" -Mount
|
||||
`-MountDialOverride`
|
||||
Instructs Exchange to mount the database as long as at least one healthy copy is available. This option maximizes uptime by allowing a database to mount even if some copies are unhealthy, prioritizing availability over strict health checks.
|
||||
|
||||
### Troubleshooting
|
||||
## Troubleshooting
|
||||
You may run into issues where either the `Status` or `ContentIndexState` are either Unhealthy, Suspended, or Failed. If this happens, you need to resume replication of the database from the production active/mounted server to the server that is having issues. In the worst-case, you would re-seed the replica database from-scratch.
|
||||
|
||||
#### If `Status` is Unhealthy or Suspended
|
||||
### If `Status` is Unhealthy or Suspended
|
||||
If one of the DAG members has a status of "**Unhealthy**", you can run the following command to attempt to resume replication.
|
||||
```powershell
|
||||
Resume-MailboxDatabaseCopy -Identity "DB01\MX-DAG-02"
|
||||
@ -49,13 +49,13 @@ If this fails to cause replication to resume, you can try telling the database t
|
||||
Resume-MailboxDatabaseCopy -Identity "DB01\MX-DAG-02" -ReplicationOnly
|
||||
```
|
||||
|
||||
#### If `ContentIndexState` is Unhealthy or Suspended
|
||||
### If `ContentIndexState` is Unhealthy or Suspended
|
||||
If you see that the "ContentIndexState" is unhappy, you can run the following command to force it to re-seed / rebuild itself. (This is non-destructive this this is happening on a replica database).
|
||||
```powershell
|
||||
Update-MailboxDatabaseCopy "DB01\MX05" -CatalogOnly -BeginSeed
|
||||
```
|
||||
|
||||
#### If Replica Database is FUBAR
|
||||
### If Replica Database is FUBAR
|
||||
If the replica database just is not playing nice, you can take the *nuclear option* of completely rebuilding the replica database.
|
||||
|
||||
!!! warning
|
||||
|
Reference in New Issue
Block a user