Applies to: Exchange Server 2010 SP3, Exchange Server 2010 SP2
Topic Last Modified: 2011-03-19
Updating, also known as seeding, is the process in which a copy of a mailbox database is added to another Mailbox server. This becomes the baseline database for the copy. 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 in order 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 cannot
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 copy of the active database on the target mailbox
server. Automatic seeding only occurs during the creation of a new
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 Database Copy
wizard You can use the Update Database
Copy wizard in the Exchange Management Console (EMC) 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 database availability group. If
you use this method, there will be an interruption in service
because the procedure requires you to dismount the database.
Updating a database copy can take a very long time, especially if the database being copied is very large, or if there is high network latency or low network bandwidth. Once the seeding process has started, don't close the EMC or the 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 do not 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 Managing Mailbox Database Copies.
Prerequisites
- The mailbox database copy must be suspended. For detailed
steps, see Suspend or Resume a
Mailbox Database Copy.
- The Remote Registry service must be running on the server
hosting the passive database copy you're updating.
What Do You Want to Do?
Use the EMC to update a mailbox database copy
You need to be assigned permissions before you can perform this procedure. To see what permissions you need, see the"Mailbox database copies" entry in the High Availability Permissions topic.
- In the console tree, navigate to Organization
Configuration > Mailbox.
- In the result pane, click the Database Management
tab.
- In the work pane, on the Database Copies tab,
right-click the database copy you want to update, and then select
Update Database Copy.
- On the Update
Database Copy page, configure the available options for
updating a database copy:
- 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, check the Select a source server for
seeding checkbox, and then click Browse to select the server
containing the passive copy you want to use for the source.
- Configure the task's behavior if files exist in the path of the
database copy being seeded. If any existing files are in the
database path, you can either select Delete them and continue to
update process to remove all existing files and proceed with
the seeding operation, or you can select Cancel the update
process to terminate the task.
- By default, once seeding has completed, continuous replication
will automatically resume for the database. If you don't want
replication to automatically resume, select Leave the database
copy suspended. I will manually resume replication later.
- Optionally specify a DAG network to be used for seeding. Click
Browse to select the DAG network you want to use.
- 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, check the Select a source server for
seeding checkbox, and then click Browse to select the server
containing the passive copy you want to use for the source.
- Once you have configured the available options, click
Update to update the database copy.
- On the
Completion page, the Summary states whether the
operation was successful. The summary also displays the Shell
command that was used to perform this procedure.
- Click Finish to exit the wizard.
Use the Shell to update a mailbox database copy
You need to be assigned permissions before you can perform this procedure. To see what permissions you need, see the"Mailbox database copies" entry in the High Availability Permissions topic.
This example shows how to seed a copy of a database named DB1 on MBX1.
Copy Code | |
---|---|
Update-MailboxDatabaseCopy -Identity DB1\MBX1 |
This example shows how to seed a copy of a database named DB1 on MBX1 using MBX2 as the source Mailbox server for the seed.
Copy Code | |
---|---|
Update-MailboxDatabaseCopy -Identity DB1\MBX1 -SourceServer MBX2 |
This example shows how to seed a copy of a database named DB1 on MBX1 without seeding the content index catalog.
Copy Code | |
---|---|
Update-MailboxDatabaseCopy -Identity DB1\MBX1 -DatabaseOnly |
This example shows how to seed the content index catalog for the copy of a database named DB1 on MBX1 without seeding the database file.
Copy Code | |
---|---|
Update-MailboxDatabaseCopy -Identity DB1\MBX1 -CatalogOnly |
Manually copy an offline database
You need to be assigned permissions before you can perform this procedure. To see what permissions you need, see the"Mailbox database copies" entry in the High Availability Permissions topic.
- 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.
Copy Code Set-MailboxDatabase DB1 -CircularLoggingEnabled $false
- Dismount the database. You can use the Dismount-Database
cmdlet, as shown in this example.
Copy Code Dismount-Database DB1 -Confirm $false
- 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.
- Mount the database. You can use the Mount-Database
cmdlet, as shown in this example.
Copy Code Mount-Database DB1
- 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, then you would copy
the database files to D:\DB1 on the server that will host the
copy.
- Add the mailbox database copy by using the Add-MailboxDatabaseCopy
cmdlet with the SeedingPostponed parameter, as shown in this
example.
Copy Code Add-MailboxDatabaseCopy -Identity DB1 -MailboxServer MBX3 -SeedingPostponed
- If circular logging is enabled for the database, enable it
again by using the Set-MailboxDatabase
cmdlet, as shown in this example.
Copy Code Set-MailboxDatabase DB1 -CircularLoggingEnabled $true