2. Managing Mailbox Databases
A mailbox database
is an Exchange database for storing mailboxes. It manages the data in
mailboxes, tracks deleted messages and mailbox sizes, and assists in
message transfers. As an Exchange professional, you need to know how to
create and remove a mailbox database, how to mount and dismount it, how
to modify its size limit, and how to change the database path. You need
to know how to configure database properties and how to set the
maintenance schedule.
To create and configure a
mailbox database, you require the Organization Management, Server
Management, or Storage Management role. The following high-level
procedure creates a mailbox database in the EMC:
In the Console tree, click Mailbox under Organization Configuration.
In the Action pane, click New Mailbox Database.
On
the Introduction page of the New Mailbox Database Wizard, specify a
name for the new mailbox database. Click Browse and select the server on
which you want to create the database server. Click OK and then click
Next.
If
you want to change the location of the Database File Path, click Browse
on the Set Paths page. To change the location of the log folder path,
click Browse under Log Folder path. Select the Mount This Database check
box if you want to mount the database. Mounting puts the database
online so that its contents are available to users. Click Next.
On the New Mailbox Database page, click New. This creates the mailbox database.
On
the Completion page, confirm that the new mailbox database was created
successfully. A status of Completed indicates successful completion. If
the task fails, review the summary and click Back to make any required
configuration changes.
Click Finish to close the New Mailbox Database Wizard. The new mailbox database appears on the Database Management tab.
You can create a mailbox database in EMS using the New-MailboxDatabase
cmdlet. For example, the following command creates the mailbox database
MyMailboxDatabase and specifies the .edb database file path
C:\MyDatabaseFiles\MyMailboxDatabase.edb and the log folder path
D:\MyDatabaseFiles\LogFolder:
New-MailboxDatabase -Name "MyMailboxDatabase" -Server VAN-EX1 -EdbFilePath
C:\MyDatabaseFiles\MyMailboxDatabase.edb -LogFolderPath D:\MyDatabaseFiles\
LogFolder
Note:
NEW-MAILBOXDATABASE
For more information about the New-MailboxDatabase cmdlet, including its associated command syntax, see http://technet.microsoft.com/en-us/library/aa997976.aspx.
2.1. Mounting a Database
The procedure to mount a
database is straightforward. In the EMC, click Mailbox under
Organization Configuration and in the Result pane select the server on
which the database is located. In the Work pane, select the mailbox
database that you want to mount and then click Mount in the Action pane.
If you create a new database using the EMC, you can choose to select
the Mount This Database check box, in which case the newly created
database is automatically mounted.
If the mailbox database is
already mounted and you want to dismount it, the procedure is the same
except you click Dismount in the Action pane. A warning appears asking
if you want to dismount the database, and you click Yes.
In the EMS, you use the Mount-Database cmdlet. For example, the following command mounts the mailbox database MyMailboxDatabase. If you use the New-MailboxDatabase cmdlet in the EMS to create a mailbox database, you need to mount it after it is created.
Mount-Database -Identity MyMailboxDatabase.
The following command dismounts the mailbox database MyMailboxDatabase:
Dismount-Database -Identity MyMailboxDatabase
Note:
MOUNTING AND DISMOUNTING A DATABASE
The Microsoft Exchange Information Store (MSExchangeIS) service needs to be running before you can mount or dismount a database.
2.2. Removing a Database
The procedure for removing a
mailbox database is also straightforward. In the EMC, you click Mailbox
under Organization Configuration, click the mailbox database you want to
remove in the Work pane, and then click Remove in the Action pane. A
warning appears asking if you are sure you want to remove the mailbox
database, and you click Yes.
To
remove a mailbox database using the EMS, you use the
Remove-MailboxDatabase cmdlet. For example, the following command
removes the mailbox database MyMailboxDatabase:
Remove-MailboxDatabase -Identity MyMailboxDatabase
You are prompted to confirm that you want to perform the action. Type Y.
Note:
Bear in mind that the New-MailboxDatabase
cmdlet syntax requires the Name parameter, while the syntax of cmdlets
to configure, mount, dismount, or remove a database (for example, Remove-MailboxDatabase) requires the Identity parameter.
Whether you use the EMC or the
EMS to remove a mailbox database, the procedure does not remove the
database (.edb) file. In both cases, you are given the location of the
file, and you can remove it manually. If you use the EMC, you need to
click OK to close the dialog box that gives you this information.
Note:
REMOVE-MAILBOXDATABASE
For more information about the Remove-MailboxDatabase cmdlet, see http://technet.microsoft.com/en-us/library/aa997931.aspx.
2.3. Configuring the Database Size Limit
The Limits tab of the Mailbox Database Properties dialog box, shown in Figure 2-4
earlier in this lesson, lets you specify the limits at which warning
messages are sent, Send is prohibited, and Send and Receive are
prohibited. It does not, however, let you specify the size limit for the
database. To do this, you need to configure the registry of the
Exchange Server 2010 server that hosts the database.
The default database size
limit for Exchange 2010 Standard Edition is 50 GB. There is no default
database size limit for Exchange 2010 Enterprise Edition. The Exchange
store periodically checks database size limits and dismounts a database
if its size limit is reached. You can modify the database size limit by
adding or changing a value in the registry on the server that hosts the
database. This change will be propagated to all servers that hold a copy
of the database.
To specify the size limit
for a mailbox database, you first need to know the global unique
identifier (GUID) of the database. You can obtain this by entering a
command with the following syntax in EMS:
Get-MailboxDatabase -Identity "<server name>\<database name>" | Format-Table Name,GUID
You then use the Registry Editor (regedit.exe) to locate the following registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\<server name>
\Private-<database GUID>
If the Database Size Limit in GB
DWORD exists for the subkey, change its value to the desired size in
gigabytes. If the DWORD does not exist, create it and set its value to
the desired size in gigabytes.
Warning:
Ensure that size limit
changes do not affect your Service Level Agreements (SLAs). If you
increase the size limits of your databases, this might lead to longer
backup and restore times. Take care to ensure that such changes do not
contravene your SLAs.
2.4. Changing the Path to the Mailbox Database
You can use both the EMC and
the EMS to change the mailbox database path. Note that if you want to
move a database path, the database is automatically dismounted (if
necessary) so that it is inaccessible to users. If the database was
previously mounted, it is automatically remounted when the move is
complete. If the database was not mounted before the path is moved, it
is not automatically remounted on completion.
The high-level procedure to use the EMC is as follows:
Click Mailbox under Organization Configuration in the console tree.
On the Database Management tab in the Result pane, click the database you want to configure.
In the Work pane, click Move Database Path.
In
the Move Database Path Wizard, on the Database Paths page, click Move
to move the database path. Configure the Database File Path field.
Change the location of the log folder path by configuring the Log Folder
Path field. View the configuration status of the move operation. Click
Back if the paths specified are not what you require.
On
the Completion page, you confirm whether the move process completed
successfully. If the task fails, review the summary and click Back to
make any configuration changes required. Click Finish.
To use the EMS to move the mailbox database path, you use the Move-DatabasePath cmdlet. For example, to set a new path for the mailbox database MyMailboxDatabase, enter the following command:
Move-DatabasePath -Identity MyMailboxDatabase -EdbFilePath C:\DifferentFolder\
MyMailboxDatabase
If you know the GUID of the mailbox database, you can use this instead of the database name in the Identity parameter.
Note:
MOVE-DATABASEPATH
For more information about the Move-DatabasePath cmdlet, including its associated command syntax, see http://technet.microsoft.com/en-us/library/bb124742.aspx.
2.5. Configuring Mailbox Database Properties
Earlier in this
lesson, we saw that the Mailbox Database Properties dialog box offers
four tabs that let you view the general properties of the mailbox
database, let you set a maintenance schedule and enable circular
logging, let you configure warning and prohibit limits and how long
deleted items are retained, and let you view and select the default
public folder database and the offline address book (OAB) for the
mailbox. You can also use the Set-MailboxDatabase cmdlet in EMS to configure mailbox database properties.
For example, the
following command configures a deleted item retention time of 14 days
for the mailbox database MyMailboxDatabase:
Set-MailboxDatabase -Identity "MyMailboxDatabase" -DeletedItemRetention 14.00:00:00
Note that you can set a deleted
item retention time for an individual mailbox. If you do so, this
overrides the deleted item retention time set on the mailbox database
that contains that particular mailbox.
Exchange database
maintenance includes removing items that have passed their retention
period, removing unused indexes, and other cleanup tasks. Optionally, it
can also include online defragmentation, although you can configure
this to occur continuously. The following command schedules maintenance
to run from Sunday of each week at 10:30 PM until Monday at 1:30 AM:
Set-MailboxDatabase -Identity "MyMailboxDatabase" -MaintenanceSchedule "Sun.10:30 PM-
Mon.1:30 AM"
You can specify days by
numbers, where 0 equals Sunday, 1 equals Monday, and so on. You can also
specify a 24-hour clock so that you do not need to include AM and PM.
For example, the following command schedules maintenance to start on
Saturday at 9:00 PM and finish on the same Saturday at 11:15 PM:
Set-MailboxDatabase -Identity "MyMailboxDatabase" -MaintenanceSchedule 6.21:00-6.23:15
Note:
SET-MAILBOXDATABASE
The Set-MailboxDatabase
cmdlet is very versatile and supports a large number of parameters. For
more information about this cmdlet, including its associated command
syntax, see http://technet.microsoft.com/en-us/library/bb123971.aspx.