\[Editor's Note: Email your Exchange Server and Outlook solutions (400 words maximum) to R2R at firstname.lastname@example.org. Please include your phone number. We edit submissions for style, grammar, and length. If we print your contribution, you'll get $100.\]
Recently, someone asked me how to reduce the amount of space his company's Information Store (IS) was taking up, because the IS was getting close to outgrowing the drive on which it resided. He wanted to use the Eseutil utility to perform an offline defragmentation to compact the Store.
I told him not to do it. Offline defrags are for disaster recovery. Microsoft recommends that you not run Eseutil unless you've removed a large number of objects from the database. (The Microsoft article "XADM: Cannot Determine Free Space Available in the Exchange Database" at http://support.microsoft.com/support/kb/articles/q186/2/9.asp explains when you should perform an offline defrag and gives the steps for running Eseutil.) Remember that Exchange runs online defrags every day, and even a lot of white space in the database isn't necessarily bad.
To determine the amount of white space in your database, look in the event log for event ID 1221 generated from MSExchangeIS Private and MSExchangeIS Public. In Exchange Server 5.5, the event's description The database has nnn megabytes of free space after online defragmentation has terminated, where nnn is the number of megabytes, shows you how much free space priv.edb and pub.edb, respectively, have available. (The Exchange 2000 Server event log has a similar description for each mailbox store and public store.) Add the amount of free space for the databases, and subtract that number from the size of the hard disk to obtain a reasonably accurate, if cautious, idea of the amount of free space. Remember that while the Exchange services are running, Exchange might store transactions in areas besides priv.edb or pub.edb, which can add about 30MB of data. A lot of white space will inflate the size of the database, but don't worry about it because the server will eventually use this space.
However, if you're running out of space, the best thing to do is to add another hard disk to your Exchange server and move the IS to that disk. Here's how:
- Run a complete online backup.
- Stop the Exchange services, then set them to Manual so that the services don't try to start when you reboot the machine.
- Shut down your server.
- Add the new hard disk. (Depending on your configuration, this step might entail expanding your RAID array—your server's documentation has instructions for expanding the RAID array.) This disk can even be an IDE disk, if necessary.
- Boot the server.
- Format the new disk. In Windows NT, go to Start, Programs, Administrative Tools, Disk Administrator. Right-click the new disk, select Create New Partition, select whether it's a primary or extended partition, enter the amount of space you want for the partition, then click OK. Right-click the new partition, select Commit Changes, then click OK. Right-click the unformatted disk, select Format, NTFS, Quick Format, then click OK. (In Windows 2000, go to Start, Programs, Administrative Tools, Computer Management, then select Disk Management when the Computer Management applet comes up.)
- Set Exchange services to Automatic, and start them.
- Set database locations by using either Performance Optimizer (from Start, Programs, Exchange) or the Database Paths tab of the server's Properties dialog box. In Exchange 2000, move the database by changing the Store Properties, and let Exchange move the database for you.
- Run a complete online backup.
Yes, this process requires downtime, and yes, it means you'll be in on a weekend. However, adding another hard disk to your Exchange server when you want to schedule it beats rebuilding the server after you get down to less than 10MB of space on the disk.