Sunday, July 6, 2008

Exchange 2007 Database

This article explains the architecture of the exchange 2007 database and also about its new feature when compared to the previous versions. As we aware exchange 2003 database uses the .edb (rich text file) and .stm files(streaming file). For more details please refer my blog session. In simple words, the rich text file holds the actual messages, the rich text information and the Message Application programming (MAPI) information. The streaming file holds non-MAPI information like MIME contents. There is no more .stm file, all stored in .edb file.

How Exchange stores data:

Database built on a heavily extended version of JET. The JET Database is an old and simple database type which is used for all mail storage in the exchange 2007. Why Microsoft relying on the JET still?, it’s a bit interesting stuff. Microsoft doesn’t want to change the database from JET to SQL database because already in exchange 2007 has enough changes like 64 bit architecture and many other new improved features. Single Instance Storage (SIS) provides large disk space saving. SIS is nothing but, when you send 1 MB attachment mail for 10 users, actually only one copy (1 MB of file) is stored in the DB. Databases use transaction logs (and memory) to initially store data. The mail flow exist as below

All incoming mails à transaction log à Database

Transaction log is like heart beat of the database. All the message routing is logged in a file before getting into the database (edb file) is called the transaction log. The analogy behind this transaction log is used for the restoring the recent data of the database in times of disaster. After successful backup, the committed logs are removed in order to avoid the disk space accumulation. So the last full backup copy plus the uncommitted transaction log will reproduce the recent copy of the database.

Storage Capacity:

In exchange, the maximum storage limit for a database is restricted to certain level, whereas in exchange 2007, it is unlimited theoretically. Please find the difference b/w the standard and enterprise edition in terms of the storage capacity.

In Standard edition:Storage group – up to 5,Database per SG – up to 5,Database limit – 16 TB.
Enterprise edition: Storage group – up to 50,Database per SG – up to 50,Database limit – 16 TB.

The above are the storage limits of the databases, but there are some size caps. The size caps are nothing but artificial size limit set at the registry level. For example for standard edition, there is artificial 50 GB cap on database sizes (for SP1 = 150 GB). This can be increased as per your wish and need, by just creating some entry in the registry as below.

HKLM\system\currentcontrolset\services\MSexchangeIS\servername\private{respective-DB-GUID}

In the above location just add a new DWORD value “Database Size Limit in GB” and set the decimal value as 200 (in this case increasing the size limit to 200 GB). In addition, the default mailbox size limit is 2 GB (can be changed).

Difference b/w exchange 2007 database and the previous version:

The following the differences between the exchange 2007 database and the exchange database of older version.

  1. The name of the store has been changed to Database.
  2. There is no more .stm file anymore. All data is in the .edb file.
  3. Transaction logs have shrunk from 5 MB to 1 MB.
  4. Transaction log numbering limits have been expanded from a million to 4 billion.
  5. Lost Log Resilience keeps last several log files in memory.

Relationship b/w Storage groups and Database:

  1. Storage groups are virtual containers for databases.
  2. They can hold up to five databases each.
  3. Transaction logs are handled at the storage group level.
  4. LCR – Local Continuous Replication - is a new feature of exchange 2007 will enables us to have a copy of the database in some other location. LCR can be used only if you use single database per storage group.

Guidelines for Best practices:

  1. Try 1:1 model for storage groups and databases.
  2. Isolate DB and transaction logs on separate disk for redundancy purpose.
  3. Leave Circular logging disabled.
  4. Perform regular Full backups.
  5. Check the available disk space for the transaction logs because it increases in faster rate and occupies plenty spaces.
  6. If you have multiple DB’s, set maintenance schedules so they don’t conflict each other.
  7. If it is 1:1 model, make use of LCR-Local Continuous Replication option.
  8. Don’t forget about the artificial size cap.

Hope the above is informative.

Please feel free to contact me for any questions.

Thanks

Logu

Logu_microsoft@hotmail.com

91-98414 99143.

4 comments:

Deepak Wanjale said...

Thnax for the details

Anonymous said...

Train Signal .

Anonymous said...

The authoritative point of view, cognitively..

Alex said...

My sister received a new email, which she couldn't read immediately. But I have already perceived a tool which would receive her and in this proposition as well - exchange server 2007 recovery.