All about Exchange 2007 databases

Posted on:

June 16th, 2009

Exchange 2007 Database Overview

How Exchange stores data:

The exchange database is built on a heavily extended version of JET and each database has a 16tb limit. This extended version of JET is called ESE. Extensible Storage Engine. Any time you see ESE messages in the Event log you know it has to do with items with the Exchange Database. Exchange 2007 like Exchange 2003 has Single Instance Storage (SIS) which provides large space savings.

SIS example: Say Bob emails 50 a large 50MB attachment to people who are all on the same Exchange 2007 server. Instead of there being 2500MB added to the database. All recipients basically point to a single file. Basically there would only be a 50MB increase in the size of the database.

Like Exchange 2003, Exchange 2007 uses Database transaction logs and memory to initially store data. Each Storage Group has it’s own transaction logs. Transaction logs accumulate until you do a FULL BACKUP of the Exchange Mailbox store. As you will see later transaction logs are used in disaster recovery and are critical.

What changed from Exchange 2007 to Exchange 2003

What is different with databases in Exchange 2007

  1. The Term “Mail Store” has been changed to “Mail Database”.
  2. There are no longer any “.stm files”. All data is now located in the “.edb files”.
  3. Transaction logs have decreased from 5mb to 1mb.
  4. Transaction logs numbering limits have been expanded from a million to 4 billion.
  5. Lost Log Resilience keeps last several log files in memory. You can do a full recover even if there is some issues with the last few logs.

Storage groups and databases

The relationship between Storage Groups and Databases

Relationship between Storage Groups and Databases for Exchange 2007

Storage groups are virtual containers for databases. As you can see Storage groups can be responsible for several databases. Actually you can have up to 5 databases in each storage group. The databases can be stored on different drives as seen in the picture.

Transaction logs are handled at the storage group level. All of the transaction logs are contained in one location. You can check the location of the log path by opening up “Exchange Management Console” and then “right clicking” “First storage group”.  Both the Log and system path are listed.

A thing called “Local Continuous Replication” limits you to a single database per storage group.

Limitations

Limitations of the Exchange 2007 database

There are 3 size caps that you will encounter in Exchange 2007.

  1. Theoretical Size Cap 16TB.
  2. Practical Size Cap
  3. Artificial Cap. 50GB on database size. (Sp1 = 150GB)

NOTE – If you want to change the artificial database limit on 2007 Exchange.

Memory Cost

Exchange best practices state that Exchange 2007 needs 2GB just to run. The best practices also states that for each user you should have a minimum of 5MB reserved for each mailbox. For example:

If you were going to implement an Exchange 2007 server and there was 200 users. You would find out the memory requirements quickly by adding 2Gb + 200(5MB) = 2GB + 1GB = 3GB total. Your server must be able to support this amount of ram.

Default Mailbox Size Limit

The default Mailbox size is 2GB.

Best practices

Try to follow these Microsoft Recommended guidelines

  1. As we already stated before you should try to portion at least 2Gb + 5MB / mailbox per exchange server.
  2. Use the 1:1 model of Storage Groups to Databases.
  3. Isolate databases and transaction logs on separate PHYSICAL partitions.
  4. Leave Circular logging disabled.
  5. Perform regular FULL backups
  6. Store logs somewhere with plenty of space
  7. Makes sure that EACH database’s “Maintenance Schedule” is different. You can find the “Maintenance Schedule” by “Right Clicking” – Mailbox – General – Maintenance Schedule.
  8. At a bare minimum implement a “Local Continuous Replication”.
  9. Don’t forget about the artificial 50GB limit.

Leave a Reply