Update a mailbox database copy in Exchange Server

Updating, also known as seeding, is the process in which a copy of a mailbox database is added to another Mailbox server in a database availability group (DAG). The newly added copy becomes the baseline database for the passive copy into which log files copied from the active copy are replayed. Seeding is required under the following conditions:

  • When a new passive copy of a database is created. Seeding can be postponed for a new mailbox database copy, but eventually each passive database copy must be seeded to function as a redundant database copy.

  • After a failover occurs in which data is lost as a result of the passive database copy having become diverged and unrecoverable.

  • When the system has detected a corrupted log file that can't be replayed into the passive copy of the database.

  • After an offline defragmentation of any copy of the database occurs.

  • After the log generation sequence for the database has been reset back to 1.

You can perform seeding by using the following methods:

  • Automatic seeding: An automatic seed produces a passive copy of the active database on the target Mailbox server. Automatic seeding occurs during the creation of a database.

  • Seeding using the Update-MailboxDatabaseCopy cmdlet: You can use the Update-MailboxDatabaseCopy cmdlet in the Exchange Management Shell to seed a database copy at any time.

  • Seeding using the Update Mailbox Database Copy wizard: You can use the Update Mailbox Database Copy wizard in the EAC to seed a database copy at any time.

  • Manually copying the offline database: You can dismount the active copy of the database and copy the database file to the same location on another Mailbox server in the same DAG. If you use this method, there will be an interruption in service because the process requires you to dismount the database.

Updating a database copy can take a long time, especially if the database being copied is large, or if there is high network latency or low network bandwidth. After the seeding process has started, don't close the EAC or the Exchange Management Shell until the process has completed. If you do, the seeding operation will be terminated.

A database copy can be seeded using either the active copy or an up-to-date passive copy as the source for the seed. When seeding from a passive copy, be aware that the seed operation will terminate with a network communication error under the following circumstances:

  • If the status of the seeding source copy changes to Failed or FailedAndSuspended.

  • If the database fails over to another copy.

Multiple database copies can be seeded simultaneously. However, when seeding multiple copies simultaneously, you must seed only the database file, and omit the content index catalog. You can do this by using the DatabaseOnly parameter with the Update-MailboxDatabaseCopy cmdlet.

Note

If you don't use the DatabaseOnly parameter when seeding multiple targets from the same source, the task will fail with SeedInProgressException error FE1C6491.

Looking for other management tasks related to mailbox database copies? Check out Manage mailbox database copies.

What do you need to know before you begin?

Tip

Having problems? Ask for help in the Exchange forums. Visit the forums at: Exchange Server, Exchange Online, or Exchange Online Protection.

Update a mailbox database copy

Use the EAC to update a mailbox database copy

  1. In the EAC, go to Servers > Databases.

  2. Select the mailbox database whose passive copy you want to update.

  3. In the Details pane, under Database Copies, click Suspend under the passive database copy you want to seed. Provide any optional comments, and click save.

  4. In the Details pane, under Database Copies, click Update under the passive database copy you want to seed.

  5. By default, the active copy of the database is used as the source database for seeding. If you prefer to use a passive copy of the database for seeding, click browse... to select the server containing the passive database copy you want to use for the source.

  6. Click save to update the passive database copy.

Use the Exchange Management Shell to update a mailbox database copy

This example shows how to seed a copy of the database DB1 on MBX1.

Update-MailboxDatabaseCopy -Identity DB1\MBX1

This example shows how to seed a copy of the database DB1 on MBX1 using MBX2 as the source Mailbox server for the seed.

Update-MailboxDatabaseCopy -Identity DB1\MBX1 -SourceServer MBX2

This example shows how to seed a copy of the database DB1 on MBX1 without seeding the content index catalog.

Update-MailboxDatabaseCopy -Identity DB1\MBX1 -DatabaseOnly

This example shows how to seed the content index catalog for the copy of the database DB1 on MBX1 without seeding the database file.

Update-MailboxDatabaseCopy -Identity DB1\MBX1 -CatalogOnly

Manually copy an offline database

  1. If circular logging is enabled for the database, it must be disabled before proceeding. You can disable circular logging for a mailbox database by using the Set-MailboxDatabase cmdlet, as shown in this example.

    Set-MailboxDatabase DB1 -CircularLoggingEnabled $false
    
  2. Dismount the database. You can use the Dismount-Database cmdlet, as shown in this example.

    Dismount-Database DB1 -Confirm $false
    
  3. Manually copy the database files (the database file and all log files) to a second location, such as an external disk drive or a network share.

  4. Mount the database. You can use the Mount-Database cmdlet, as shown in this example.

    Mount-Database DB1
    
  5. On the server that will host the copy, copy the database files from the external drive or network share to the same path as the active database copy. For example, if the active copy database path is D:\DB1\DB1.edb and log file path is D:\DB1, you would copy the database files to D:\DB1 on the server that will host the copy.

  6. Add the mailbox database copy by using the Add-MailboxDatabaseCopy cmdlet with the SeedingPostponed parameter, as shown in this example.

    Add-MailboxDatabaseCopy -Identity DB1 -MailboxServer MBX3 -SeedingPostponed
    
  7. If circular logging is enabled for the database, enable it again by using the Set-MailboxDatabase cmdlet, as shown in this example.

    Set-MailboxDatabase DB1 -CircularLoggingEnabled $true
    

How do you know this worked?

To verify that you've successfully seeded a mailbox database copy, do one of the following:

  • In the EAC, navigate to Servers > Databases. Select the database that was seeded. In the Details pane, the status of the database copy and its content index are displayed, along with the current copy queue length.

  • In the Exchange Management Shell, run the following command to verify the mailbox database copy was seeded successfully and is healthy.

    Get-MailboxDatabaseCopyStatus <DatabaseCopyName>
    

    The Status and Content Index State should both be Healthy.