Skip to content

Reduce Exchange 2016 Mailbox Database Size using ESEUTIL

Reduce Exchange 2016 Mailbox Database size using Eseutil.


In this post I will walk through the steps of reducing the Exchange Mailbox Database size, However the method of reducing the Mailbox Database size varies from different administrators. If you can afford to have downtime on a Mailbox Database then these steps would work for you. Some Exchange Administrators  and in most cases myself ,will simply just create another new Mailbox Database and Move Mailboxes from one Database to another and then delete the old one.

For the purpose of this post , I will be using a build in tool from Microsoft called Eseutil.


Eseutil is a command line utility that works with Extensible Storage Engine (ESE), database (.edb) files, streaming (.stm) files, and log (.log) files associated with an Information Store, in a given Storage Group. The tool can be run on one database at a time from the command line and can be used to perform a range of database tasks from repair, offline defragmentation, and integrity checks in Exchange Server .


The most common Eseutil switches are listed in the table below.

Eseutil Mode





Eseutil defragments the database files. This mode reduces the gross size on disk of the database (.edb) and streaming files (.stm) by discarding most empty pages and ad hoc indexes.

For more information, see these topics:



Eseutil repairs corrupt database pages in an offline database but discards any that can’t be fixed. In repair mode, the Eseutil utility fixes individual tables but does not adjust the relationships between tables. ISInteg should be used to check logical relationships between tables.

For more information, see these topics:



Eseutil displays the Restore.env file and controls hard recovery after restoration from online backup.

For more information, see these topics:



Eseutil replays transaction log files or rolls them forward to restore a database to internal consistency or to bring an older copy of a database up to date.

For more information, see these topics:



Eseutil verifies the page level and Extensible Storage Engine (ESE) level logical integrity of the database but does not verify database integrity at the Information Store level.

For more information, see these topics:

File Dump


Eseutil displays headers of database files, transaction log files, and checkpoint files. The mode also displays database space allocation and metadata.

For more information, see these topics:



Eseutil verifies checksums on all pages in the database and streaming files.

For more information, see these topics:

Copy File


Eseutil performs a fast copy of very large files.

For more information, see these topics:


To get started I will check the current available whitespace for the Mailbox Database DB1 and then Dismount the Database.

Next Dismount the Database

After the Mailbox Database has been Dismounted navigate to the install directory where Exchange has  been installed.

Open eseutil to view the available switches.

Next I will run the Defrag on Dismounted Database called “DB1”

C:\Program Files\Microsoft\Exchange Server\V15\Bin>eseutil.exe /d D:\DB\DB1.edb

Lets go ahead and Mount the Defragmented Database

Next lets view the available whitespace after the Defragmentation of the Database.

The amount of time it takes to run the Defragmentation of a Mailbox Database depends on the size of the Database and the Hardware its running from.



Sharing is caring!

Published inCommand PromptExchange 2016Exchange ServerPowerShellWindowsWindows Server 2012

One Comment

  1. RobinsanShaw RobinsanShaw


Leave a Reply

Your email address will not be published.