File Structure of the Exchange Store

Exchange 2007

Microsoft Exchange Server 2007 will reach end of support on April 11, 2017. To stay supported, you will need to upgrade. For more information, see Resources to help you upgrade your Office 2007 servers and clients.


Applies to: Exchange Server 2007, Exchange Server 2007 SP1, Exchange Server 2007 SP2, Exchange Server 2007 SP3

Topic Last Modified: 2008-07-28

You manage the Exchange store by working with its logical components, such as storage groups and databases. However, Microsoft Exchange Server 2007 stores data in a specialized set of data files, such as Exchange database (.edb) files, transaction logging (.log) files, and checkpoint (.chk) files. Unless you are backing up or restoring data, you will rarely interact with these files directly.

Each storage group corresponds to an instance of the Extensible Storage Engine (ESE). On each Exchange server, Exchange 2007 creates data directories for each storage group. The data directory contains the database files for each of the databases in the storage group as well as the log files for the storage group. The following figure illustrates the file structure that corresponds to a specific logical structure as defined in the Exchange Management Console.

Logical structure of the storage groups and databases on a single server and the resulting file structure

Exchange 2007 Storage Groups and Files

Exchange database (.edb) files are the repository for mailbox data. They are accessed by the ESE directly and have a B+tree structure that is designed for quick access, thereby enabling users to access any page of data within four I/O cycles. The Exchange database is composed of multiple B+trees, with ancillary trees that work with the main tree by holding indexing and views.

Exchange 2007 does not use the stream (.stm) file format that was used in Exchange Server 2003. Data that was formerly divided between .edb and .stm files is now stored only in .edb files.

Exchange 2007 writes operations (such as creating or modifying a message) to a log (.log) file for that database's storage group. Committed transactions are later written to the database itself (in an .edb file). This approach guarantees that all completed and in-progress transactions are logged, so data integrity is maintained in case of a service interruption. The databases in a storage group share a single set of transaction logs that are named with consecutive numbers (for example, E0000000001.log and E0000000002.log).

Checkpoint (.chk) files store information that indicates when a transaction is successfully saved to the database files on the hard disk. Exchange 2007 uses checkpoint files to allow an instance of the ESE to automatically replay log files into an inconsistent database when recovering from a service interruption, starting with the next unwritten transaction.

For more information about transaction logging, see Understanding Transaction Logging.

For recommendations about configuring storage groups and databases, see Recommendations for Configuring Storage Groups and Databases.

For more information about managing storage groups and databases in Exchange 2007, see Managing Storage Groups and Databases.


Community Additions