When you’re operating an Exchange Server 2016 database availability group you’re going to eventually encounter a failed database copy. The most likely cause is a storage hardware issue, but there are many other ways that database copies can fail.
A failed database will show up in the output of Get-MailboxDatabaseCopyStatus, for example:
[PS] C:\>Get-MailboxDatabaseCopyStatus * | sort name Name Status CopyQueueLength ReplayQueueLength LastInspectedLogTime ContentIndexState ---- ------ --------------- ----------------- -------------------- ----------------- DB05\EX2016SRV1 Mounted 0 0 Healthy DB05\EX2016SRV2 Healthy 0 0 11/18/2015 10:45:39 PM Healthy DB06\EX2016SRV1 Healthy 0 0 11/18/2015 10:36:11 PM Healthy DB06\EX2016SRV2 Mounted 0 0 Healthy DB07\EX2016SRV1 Mounted 0 0 Healthy DB07\EX2016SRV2 Healthy 0 0 11/18/2015 10:46:44 PM Healthy DB08\EX2016SRV1 FailedAndSuspended 27 2 11/18/2015 4:50:59 PM Suspended DB08\EX2016SRV2 Mounted 0 0 Healthy
Recovery is a manual process if you are not using Autoreseed in your deployment. Once you’ve fixed the underlying issue (e.g. replaced the failed disk) you can reseed the database copy.
[PS] C:\>Suspend-MailboxDatabaseCopy DB08\EX2016SRV1 [PS] C:\>Update-MailboxDatabaseCopy DB08\EX2016SRV1
If the database and log paths on the server you’re reseeding to already contain files you can add the -DeleteExistingFiles switch to overwrite them.
[PS] C:\>Update-MailboxDatabaseCopy DB08\EX2016SRV1 -DeleteExistingFiles
Also, by default the source for the reseed will be the database copy that is currently active. If you’d prefer to reseed from a different server that may be closer, and therefore faster to reseed from, then you can add the -SourceServer parameter as well.
[PS] C:\>Update-MailboxDatabaseCopy DB08\EX2016SRV1 -SourceServer EX2016SRV2
The duration of the reseed operation will depend on the size of the database and transaction log data that needs to be copied across the network to the server.
After the reseed is complete the database copy should be back to a healthy state and will resume continuous replication.
I have an interesting issue that drove me crazy.
I have a DAG with 4 members. One of my databases with 1 active copy and 3 passive copy on other servers, all are in a failed and suspended state (one is dismounted)
CopyStatus shows the DB is trying to get mounted on exch1 and a few minutes later it becomes failed and suspended and is mounting on exch2. And this seems to be a loop.
Errors says it’s failed after 3 reseed.
How is that Even possible that 4copies of a database fails at the same time!?
I also tried ESEUTIL.EXE, which also end up in errors and crashes on all dismounted/removed .edb files, both HardRepair and SoftRepair..
It is a data loss now.. with 4 copies!! Any Idea or guess? I just don’t want this happen again
Restore from backup
how about the mailbox name has a space, this command doesn’t work
like : Update-MailboxDatabase -Identity “Database n 1″\mailbox1
How to make this work?
Do it like this: Update-MailboxDatabase -Identity “Database n 1\mailbox1″
For the initial copy of a database, is downtime required or will mailboxes continue to service whilst the initial copy is running to a secondary server?
I am having an interesting issue. When reseeding a database, after a minute or so I get an error saying that the connection was closed by the source server. any suggestions?
Thanks for the info. I have tried this multiple times but keep running into the Error: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. after the copying has been going on for a few hours. I have check to see if we are having any network issues or if the firewall is causing the problem but I can’t find anything showing a connection being dropped.
If you have a firewall or any type of WAN accelerator or network device that is doing packet inspection or filtering of traffic, that could very easily break the replication. Add a bypass for the Exchange server IP’s to talk to each other completely unimpeded.
Thanks for the great article.
One thing it doesn’t seem to mention trying (unless it’s assumed that this has already been attempted prior to getting to this article) is running Suspend-MailboxDatabaseCopy followed by Resume-MailboxDatabaseCopy.
This has worked on one of my databases, seemingly successfully.
Unfortunately by the time I’d considered trying this I’d already started a full reseed of the other failed DB, so that’s still in the middle of a lengthy copy process.
Thx for all the great articles , Paul. It is really much appreciated! Please keep it up!
thank you for info. I had issue once I created a brand new mailbox database, waiting for AD replication… the new mailbox status heathy and content index status is heathy. However, after I add a mailbox database copy of the newly created database, waiting for replication, the new database copy on the secondary server status is healthy, content index status is failedandsuspended. I use update-mailboxdatabasecopy db1 -catalogOnly -sourceserver server1 several times, still no help. even try to reseed update-mailboxdatabasecopy db1 -sourceserver server1 –DeleteExistingFiles , it doesn’t help either, I even removed the mailboxdatabase copy completed, re-add it again with no luck. I run Exchange 2016 CU2. I have multiple servers, I tried to add the DB1 to server3 with the same issue. Any idea? TIA
Give it a bit. It should show up as healthy after a few hours.
Thanks for the information. How many database can be reseeded at one time.
Each database can seed/reseed one copy at a time.
If you have one database, say DB1, you can seed one copy of that database at a time. If you have 4 copies of DB1, you need to seed or reseed each of them one at a time.
If you have two or more databases, say DB1 and DB2, each of those databases can seed a copy at the same time.