Applies to: Exchange Server 2010 SP3, Exchange Server 2010 SP2
Topic Last Modified: 2011-03-19
After a mailbox database is created, you can move it to another volume, folder, location, or path by using either the EMC or the Shell. For step-by-step instructions about how to move a mailbox database path, see Move the Database Path. That topic provides information about how to move a non-replicated mailbox database to another path.
If the mailbox database being moved is replicated to one or more mailbox database copies, you must follow the procedure in this topic to move the mailbox database path. All copies of a mailbox database must be located in the same path on each server that hosts a copy. For example, if database DB1 is located at C:\mountpoints\DB1 on server EX1, copies of DB1 on servers EX2, EX3, and so on, must also be located at C:\mountpoints\DB1.
Looking for other management tasks related to mailbox database copies? Check out Managing Mailbox Database Copies.
Prerequisites
- To perform the move operation, the database must be temporarily
dismounted, making it inaccessible to all users. If the database is
currently dismounted, it isn't remounted upon completion.
- To perform the move operation, replication for the database
must be disabled for all copies. It's not enough to suspend
replication; you must disable it by using the Remove-MailboxDatabaseCopy
cmdlet to remove the database copies.
Use the Shell to move a replicated mailbox database to a new path
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.
Note: |
---|
You can't use the EMC to move a replicated mailbox database to a new path. |
- Note any replay lag or truncation lag settings for all copies
of the mailbox database being moved. You can obtain this
information by using the Get-MailboxDatabase
cmdlet, as shown in this example.
Copy Code Get-MailboxDatabase DB1 | fl *lag*
- 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
- Remove all mailbox database copies for the database being
moved. For detailed steps, see Remove a Mailbox
Database Copy. After all copies are removed, preserve the
database and transaction log files from each server from which the
database copy is being removed by moving them to another location.
These files are being be preserved so the database copies to not
require re-seeding after they have been re-added.
- Move the mailbox database path to the new location. For
detailed steps, see Move the Database
Path.
Important: During the move operation, the database being moved must be dismounted. Until the move is complete, this process will cause an interruption in service and an outage for all users with mailboxes on the database being moved. After the move operation completes, the database is automatically mounted. - Create the necessary folder structure on each Mailbox server
that previously contained a passive copy of the moved mailbox
database. For example, if you moved the database to
C:\mountpoints\DB1, you must create this same path on each Mailbox
server that will host a mailbox database copy.
- After creating the folder structure, move the passive copy of
the mailbox database and its log stream to the new location. These
are the files that were left from and preserved after Step 3.
Repeat this process for each database copy that was removed in Step
3.
- Add all of the database copies that were removed in Step 3. For
detailed steps, see Add a Mailbox Database
Copy.
- On each server that contains a copy of the mailbox database
being moved, run the following commands to stop and restart the
content index services.
Copy Code Net stop msftesql-Exchange Net start MSExchangeSearch
- Optionally, enable circular logging by using the Set-MailboxDatabase
cmdlet, as shown in this example.
Copy Code Set-MailboxDatabase DB1 -CircularLoggingEnabled $true
- Reconfigure any previously set values for replay lag time and
truncation lag time by using the Set-MailboxDatabaseCopy
cmdlet, as shown in this example.
Copy Code Set-MailboxDatabaseCopy DB1\MBX2 -ReplayLagTime 00:15:00
- As each copy is added, we recommend that you verify the health
and status of the copy prior to adding the next copy. You can
verify the health and status by:
- Examining the event log for any error or warning events related
to the database or the database copy.
- Using the Get-MailboxDatabaseCopyStatus
cmdlet to check the health and status of continuous replication for
the database copy.
- Using the Test-ReplicationHealth
cmdlet to verify the health and status of the database availability
group and continuous replication.
- Examining the event log for any error or warning events related
to the database or the database copy.
For detailed syntax and parameter information, see the following topics: