I was contacted by my local site engineer to report that a mailbox move is failing. When I checked the status of the mailbox move request, it showed below error in suspended comment field in details tab.
Error: Move for mailbox ‘/o=dummy/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=dummyuser’ is stalled because DataMoveReplicationConstraint is not satisfied for the database ‘dummydatabase’ (agent MailboxDatabaseReplication). Failure Reason: Database 5124343-67e5-65gt-768u-54t6y7j8k9 does not satisfy constraint SecondCopy. Some database copies are behind.
Dont get frustrated with Microsoft errors all the time. This is not an error. This is a way exchange safeguards the data being moved to a DAG database.
If exchange active manager finds Copy Queue Length of the database to which mailbox is being moved over 10,or if the replay queue length is over 50, it stalls the move. The move will not fail right away. The Status detail will show StalledDueToHA. Mailbox move may stay there up to two hours waiting for the log shipping to catch up on the remote server before failing.
So what is the fix or resolution…There are few ways to fix this issue
a. Fix the datbase health. You can get the database copy queue length and replay queue length by using below command in Exchange powershell
b. Set the mailbox database “DataMoveReplicationConstraint” to None which is by default is set to “Second Copy”
Set-mailboxdatabase -dataMoveReplicationConstraint None
This modification requires a recycle of Exchange Replication Manager Service. In cases, where the CQL/RQL is high, the service may hang on stopping and attempting to complete the copies before stopping, so it might take some time. Have patience.
Once the mailboxes are moved and database CQL/RQL length is normal, do not forget to revert the change. Below command can be used to revert the change made in Option B
Set-mailboxdatabase -dataMoveReplicationConstraint SecondCopy