Monday, 23 March 2015

Transactional Logging (including Circular Logging)

Transacional logging in Exchange is similar to that of transactional logging in he database world. A transaction log holds a list of all transactions that have gone into a database - whether that be informaion is added, deleted or modified - details such as the user, time and so on are also logged. This prevents users from accessing the database at the same moment and causing any conflicts.

Typically a transaction log can be used to bring a mailbox database up-to-date if for example the mailbox database is restored from a backup - the transactional data can be replayed to the database with a utility such as eseutil. Trasnactional logs are also limited in size (and hence here are often many of them) to help in the event of data corruption (there is less chance of all of the logs corrupting.)

Within the log directory all log files will have a 3 character prefix and contain the .log file extension. There is also a file with a .chk file extension that identifies the most up-to-date transaction log and he database they belong too.

When Exchange mounts a mailbox database it goes through the following process:

- Read the last transaction log property - you can view this yourself by using eseutil /mh switch.

- Check the .chk file in the log directory to make sure what should have been the last log file to consume / read.

- If the .chk file states that the last transaction log is higher than the one that is recorded in the database it will begin replaying he newer transaction logs.

Circular Logging is a feature that is applied in scenerios where disk space is low on the server or where you do no have an Exchange backup utility that is capable of reading the Exchange logs. It fundamentally limits the amount of logs generated, hence keeping disk space usage low - although on a down-side preventing you from perfoming features such "Point in Time" recovery.


Post a Comment