Windows Server 2008

Storage Groups in Exchange 2007

One big change in Exchange 2007 is the amount of Storage groups and databases that are supported. Exchange 2007 enterprise edition supports up to 50 database’s and 50 storage groups. The standard edition allows you a maximum of 5 databases and 5 storage groups. Microsoft used to say don’t create an additional storage group until you have filled the current storage group with 5 databases.

With Exchange 2007 they are trying to push people to use one storage group per database. This way the log files and database sizes are kept smaller and redundancy is better. For example, if you have 1 storage group and 1 database and the file gets corrupt or you lose a disk then EVERYONES email will be down. If you have multiple storage groups spread across multiple disks then only the people who were members of the specific storage group will be affected. Whilst we are talking about disks what is the recommended storage strategy? Well you should keep your log files and databases on separate disk for redundancy and performance reasons. Generally its bests to keep the log files on a mirrored configuration (RAID0) and keep your mailbox databases on a RAID5 partition. In this configuration you have total disk redundancy in the event of a failure.

So what files are held in storage groups and databases? I’ve included a screenshot below with the contents of a storage group:

Screenshot - 10_02_2008 , 11_50_31

Each Storage group contains a set of transaction log files. Each time an email is sent into the database for delivery then it is also written into the transaction log files. This provides 2 benefits. The first one is that if there are delays in writing to the database because its busy this acts as a sorting of queuing system. Second is that if you lose your database and you have to restore from backup then the most recent emails will be written to the database from the transaction log files. If you didn’t have the transaction log files then your database would be exactly as it was when you backed it up last. This is also why its important to keep the log files and databases on separate disks.

If you look at the screenshot I will explain the file types.

E00.log is the current transaction log files. Any changes written or awaiting to the written to the database are written to this file

E000000000000000A.log, B, C etc are older transaction log files. When the E00.log is full, it is written to these files.

*.JRS files are the emergency transaction log files. If your disk gets full and the mailbox database cant be written to anymore then these 2 are used.

Tmp.edb if a temporary file for active transactions

And finally we have the actual database. This is normally named whatever you have called your mailbox store. In my case its called Mailbox database.edb.

In the next topic I shall create and look at the options for mailboxes and storage groups and create one in the GUI and one in Powershell.

Be Sociable, Share!