Exchange Offline Defrag

Posted: March 1, 2010 in Exchange Server
Tags: , , , ,

With Exchange 2003 Enterprise, Exchange 2007 and Exchange 2010 there is no need to run an offline defrag of the Exchange database.  All of these versions will allow the creation of another mailbox store.  Once you have another mailbox store you can simply move the mailboxes from the fragmented sore to the new one.  This will provide you with a fully defragmented and error free mail store with the added bonus of no down time.

In Exchange 2003 Standard Edition with Service Pack 2 there is a soft database limit that can be set up to 75GB.  Many believe that simply running an offline defrag of their data store will help them to stay below the limit.  This is simply not true.

The 75GB limit in Exchange 2003 is a soft limit and it is based on the LOGICAL size of the database not the PHYSICAL size. The logical size of the database can be loosely calculated by taking the combined size of the EDB and STM files minus the free space reported in Event 1221 in the Application Event Log.   Guidance on finding the true size of the stores can be found here: http://technet.microsoft.com/en-us/library/aa996139(EXCHG.65).aspx

By default Exchange 2003 will run online maintenance every day, normally at around 5am.  Part of this maintenance is to run an online defrag of the database.  Details of what other tasks are run as part of the online maintenance can be found here: http://support.microsoft.com/kb/324358

Once the online maintenance has been completed there will be an event 1221 generated in the Application event log.  There will be one for each store.  The description will say “The database "<storage_group>\<mailbox_store> (<server_name>)" has <nnn> megabytes of free space after online defragmentation has terminated” this event shows how much free space is in the EDB file (it does not include the STM file).

Creating “white space”

The free space that is reported by Event 1221 is often referred to as “white space”.  This free space will be used by Exchange before expanding the physical size of the database.  If your database has reached the 75GB limit then you will need to create free space to bring the logical size of the database below the limit.

The easiest way to do this is to delete any unwanted mailboxes and ask your users to archive some mail or delete mail that is no longer required.

Depending on your deleted item retention period this may take a long time to be seen as free space.  If you are trying to alleviate an immediate problem then you can speed this process up by setting the deleted item retention periods to 0.  This will make any items that are deleted,  permanently deleted rather than sent to the dumpster, where you can recvover them with the tools, Recover Deleted Items option in the Deleted Items folder within Outlook.

This will then hopefully bring you below the logical limit of your database.

Only if PHYSICAL storage on your server is a problem should you perform an offline defrag of the database to recover the free space reported by Event 1221.  If there is no free space reported by Event 1221 then an offline defrag is a complete waste of time.

Offline Defrag

If you have read all of the above and you are still convinced you need to perform an offline defrag of the Exchange database then I would recommend you follow these guidelines:

  • Perform a FULL backup of the Exchange Information store using either Windows Backup or a 3rd Party Backup product.  It must be an Exchange aware backup and it must be a FULL backup of the store not a brick level backup.  This will ensure all the transaction logs are flushed.
  • Dismount the store and make a copy of the STM and EDB Files to another drive.  Consideration needs to be taken for the fact that the defragmentation process needs a minimum of 110% of the size of the store in free space.  So if your store is 75GB you need an extra 83GB of free space.  If the drive that the store is on does not have enough space then move it do a different volume and perform the defrag there.
  • Run the ESEUTIL /D “c:\program files\exchsrvr\mdbdata\priv1.edb” command to start the defragmentation

Please note that depending on the specification of the server and any other additional tasks that it may be performing you should expect a defrag to take anywhere from 4 – 7 GB per hour.  So if you have an 80GB file it could take up to (and probably longer) 20 hours to perform a full defrag.  During this time the Exchange Server will be unavailable to users.

Advertisements
Comments
  1. Mutahir says:

    Great Blog 🙂
    Demazter,

    Its always a pleasure to read your views / experiences.

    Keep up the good work, I am bookmarking this ! Pity I can’t vote for points 🙂

    Have a good day ahead
    Mutahir

    • demazter says:

      Thanks Mutahir,
      Glad you like the blog. It’s early days yet but watch out for lots more content in the future. Specifically around Exchange 2010.
      Don’t forget you can subscribe to receive updates if you want to:)
      Thanks
      Glen

  2. Mutahir says:

    I just subscribed ; I will email you some suggestions as well and you can turn this into a huge knowledgebase as well. I am in the process of structuring something but I am still in the learning phase – so may be i will write a bit but you will be amongst the first to know.

    Anyway – best of luck with this project. Keep in touch
    Mutahir

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s