Applies to: Exchange Server 2013
Topic Last Modified: 2012-11-02
After a mailbox database is created, you can move it to another volume, folder, location, or path by using either the EAC or the Shell. For step-by-step instructions about how to move the database path for a non-replicated mailbox database, see Move a mailbox database 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.
What do you need to know before you begin?
- Estimated time to complete this task: 2 minutes, plus the time
to move the data, which depends on a variety of factors, such as
the size of the database, the speed, available bandwidth and
latency of the network, and storage speeds.
- You need to be assigned permissions before you can perform this
procedure or procedures. To see what permissions you need, see the
"Mailbox database copies" entry in the High Availability and
Site Resilience Permissions topic.
- 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.
- For information about keyboard shortcuts that may apply to the
procedures in this topic, see Keyboard Shortcuts in
the Exchange Admin Center.
Tip: |
---|
Having problems? Ask for help in the Exchange forums. Visit the forums at: Exchange Server, Exchange Online, or Exchange Online Protection. |
Use the Shell to move a replicated mailbox database to a new path
Note: |
---|
You can't use the EAC 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 | Format-List *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 preserved so the database copies don't
require re-seeding after they have been re-added.
- Move the mailbox database path to the new location. For
detailed steps, see Move a mailbox
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:
How do you know this worked?
To verify that you've successfully moved the path for a mailbox database copy, do one of the following:
- In the EAC, navigate to Servers > Databases.
Select the database that was copied. In the Details pane, the
status of the database copy and its content index are displayed,
along with the current copy queue length. Verify that the status is
Healthy.
- In the Shell, run the following command to verify the mailbox
database copy was created and is healthy.
Copy Code Get-MailboxDatabaseCopyStatus <DatabaseCopyName>