One of the most often avoided maintenance
tasks in an Exchange environment is performing database maintenance. It
is, however, also one of the most important steps an administrator can
take to ensure a healthy environment.
By
performing regular database maintenance, administrators can prevent
downtime, maintain service level agreements (SLAs), minimize database
corruption, and reduce the possibility of data loss.
As
messaging environments have evolved from “nice to have” to “business
critical,” database maintenance has evolved from “should be done” to
“must be done.” Any database that is not regularly maintained will
suffer from some level of corruption and, if left unchecked, might fail.
In addition to lack of routine maintenance, other potential causes of database corruption include the following:
Improper shutting down of the system, including unexpected power outages
A poorly maintained disk subsystem
Hardware failures
Failure to use or review systems or operational management tools
Manual modification of Exchange databases
Deletion of Exchange transaction logs
1. Automatic Database Maintenance
Exchange
Server 2007 automatically performs database maintenance procedures on a
nightly basis during the scheduled maintenance window. The following
tasks are automatically performed by this process:
1. | Purge the indexes on the mailbox and public folder stores.
|
2. | Perform tombstone maintenance on mailboxes and public folders.
|
3. | Remove expired messages from the dumpster for the mailbox and public folder stores.
|
4. | Remove expired messages from public folders.
|
5. | Remove deleted public folders with tombstones over 180 days old.
|
6. | Clean up message conflicts within public folders.
|
7. | Update server version information on public folders.
|
8. | Check for and remove duplicate site folders on public folder stores.
|
9. | Clean up deleted mailboxes on mailbox stores.
|
10. | Check the message table for orphaned messages (messages with a reference count of 0).
|
11. | Perform an online defragmentation of the store.
|
Exchange
performs these tasks in order, completing as many as possible within
the time allotted by the scheduled maintenance window. If the tasks are
unable to complete, Exchange begins where it left off during the next
scheduled maintenance opportunity. As long as at least one of the
previously listed tasks has completed successfully, Exchange Server
spends the last 15 minutes of the cycle performing an online
defragmentation of the database. The defragmentation process continues
for one hour after the end of the maintenance cycle.
By
default, the maintenance schedule is set to run daily from 1:00 a.m. to
5:00 a.m. Because the maintenance cycle can be extremely resource
intensive, this default schedule is intended to perform the maintenance
during periods when most of an organization’s mail users are not
connected. However, organizations should also take their Exchange
backup schedules into consideration. Backing up an Exchange database
causes the online defragmentation to be suspended until after the
backup has completed.
Configuring Database Maintenance Schedules
Administrators
can stagger the maintenance schedules for different databases. For
example, database 1 might have the maintenance cycle performed from
1:00 a.m. to 2:00 a.m., and the next store from 2:00 a.m. to 3:00 a.m.,
and so on. To view or change the default maintenance schedule on a
database, perform the following steps:
1. | Open the Exchange Management Console. |
2. | In the console tree, expand Server Configuration and select Mailbox.
|
3. | In
the action pane, select the server you want to view. In the work pane,
expand the storage group that contains the database you want to view,
and then select the appropriate database.
|
4. | In the action pane, click Properties.
|
5. | On the General tab, locate the Maintenance Schedule.
|
6. | To
change the default schedule, select one of the options from the
drop-down box, or click Customize to create your own schedule. |