The defragmentation option makes used storage contiguous, eliminates unused
storage, and compacts the database, which reduces the database's size. Eseutil copies database records to a new database. When defragmentation is complete, the original database is deleted or saved to a user-specified location, and the new version is renamed as the original. If the utility encounters a bad record, the utility stops and displays an error message.
Defragmenting an Exchange Server 5.5 database
Note Defragmenting a database requires free disk space equal to 110
percent of the size of the database that you want to process.
To determine the actual space required, follow these steps:
- Make sure that the information store service is not running.
- At a command prompt, run the following command:
eseutil /ms �database.edb�
- Calculate the free space by multiplying the number of free pages by 4 KB.
- Subtract the figure that you obtained in step 3 from the physical size of the database.
- The figure that you obtained in step 4 represents the data in the database. Multiply this figure by 110 %. The resulting figure that you obtain is the space that you need to have available to defragment the database.
- Divide the figure that you obtained in step 3 by 9 GB per hour. The figure that you obtain is the approximate time that it will take to defragment the database.
Note 9 GB per hour is the speed at which the Eseutil utility runs. This number is only for reference. The exact number depends on your hardware and production environment.
To defragment the Exchange Server 5.5 database, follow these steps:
- Stop the service of the database you wish to defragment by using the Services tool in Control Panel.
- For the Exchange Directory database, stop the Microsoft Exchange Directory service.
- For the Exchange Mailbox or Public Folder databases, stop the Microsoft Exchange Information Store service.
- At the command prompt, change to the Winnt\System32 folder, and then type the eseutil /d command, a database switch, and any options that you want to use.
For example, the following command runs the standard defragmentation
utility on the directory and saves the copy in the user-defined file:
C:\winnt\system32> eseutil /d /ds /tc:\dbback\tempdfrg.edb /p
Use one of the following database switches to run Eseutil on a specific
database.
Option Description
----------------------------------------
/ds Directory
/ispriv Private information store
/ispub Public information store
Use one or more of the following options to specify the operations that you want to perform on the database.
Option Description
-----------------------------------------------------------------------
/b <path> Makes a backup copy of the original uncompacted database
at the specified location.
/p Retains and preserves the original uncompacted database
in its original location and stores the new compacted
database in the default file Exchsrvr\Bin\Tempdfrg.edb.
/t <file_name> Creates and renames the new compacted database in the
specified path.
/o Does not display the Microsoft Exchange Server banner.
Defragmenting an Exchange 2000 or Exchange 2003 database
Note Defragmenting a database requires free disk space equal to 110 percent of the size of the database being processed.
- In Exchange System Manager, right-click the information store that you want to defragment, and then click Dismount Store.
- At the command prompt, change to the Exchsrvr\Bin folder, and then type the eseutil /d command, a database switch, and any options that you want to use.
For example, the following command runs the standard defragmentation utility on a mailbox store database:
C:\program files\exchsrvr\bin> eseutil /d c:\progra~1\exchsrvr\mdbdata\priv1.edb
Use the following database switch to run Eseutil defragmentation on a specific database:
eseutil /d <database_name> [options]
Defragmentation/Compaction
Performs off-line compaction of a database.
Syntax:
eseutil /d <database_name> [options]
Parameters: <
database_name> is the file name of the database that you want to compact.
You are not required to use any of the following options, but you can use one or more (separated by a space) to specify the operations that you want to perform on the database.
Option Description
----------------------------------------------------------------
/b<database> Make a backup copy under the specified name
/t<database> Set the temporary database name (the default is
Tempdfrg.edb)
/s<file> Set the streaming file name (the default is NONE)
/f<file> Set the temporary streaming file name (the default
is Tempdfrg.stm)
/p Preserve the temporary database (in other words,
do not instate)
/o Suppress logo
/i Do not defragment streaming file
Note If instating is disabled (for example, if you use the
/p option), the original database is preserved uncompacted, and the temporary database contains the defragmented version of the database.
For more information about Exchange Server versions 4.0 and 5.0, click the following article number to view the article in the Microsoft Knowledge Base:
163627
How to defrag an EDB file on a non-Exchange server
For more information about how to run Eseutil on a computer without Exchange Server, click the following article number to view the article in the Microsoft Knowledge Base:
244525
How to run Eseutil on a computer without Exchange Server
The Tempdfrg.edb file is created on the logical drive from which the
eseutil /d command is run unless you use the
/t switch. For example, to create a Tempdfrg.edb on the root of drive D, run the following command:
D:\>eseutil /d /ispriv
You can also use the
/t switch to set the name for the temp database and for a different location. For example, to create a Sample.edb on the root of drive D when you are running the eseutil command from drive C, run the following command:
C:\>eseutil /d /ispriv /td:\Sample.edb