Exchange 2003, Exchange 2007, Exchange 2010

What to do when the Transaction Log LUN is full?

Hi everyone,

I think most of us have or will run into this problem some day or another 🙂
With that said, I hope this post will help others that will hit into the same issue.

A time ago I was heading into this issue when doing a large migration.
We were using a 2 node DAG with normal logging enabled.

Anyway, after some hours the LUN was so full that the databases were dismounted.
I didn’t monitor the disks but I noticed that something was wrong with the system since it couldn’t find any mailbox.

So I started to investigate everything from services, logs, traffic and then finally found out that the log LUN was full.

Normally transaction logs are committed and flushed after a full backup, but since we were migrating we have filled them after 4-5 hours.

In my case there was 300Kb free on the LUN, and the database couldn’t be mounted.

Thanks to the eseutil tool, I could check which log files that have been committed and move some of them to free up some space on the LUN.

Start “Exchange Management Shell” and go to the Logpath of DBxx and type: “eseutil /mk E01.chk”
Checkpoint shows: (0x3C6A,FFFF,FFFF), focus on 3C6A.
The value means that all logfiles before this one is committed to the database.

The logfiles have the following names: E0100003C6A.log, in my case it means that all log files before this one is committed.
So I can mark the file E0100003C06.log and earlier and move them to another disk temporary (just in case..).

Move the logs to another LUN to free up some space on the log LUN.
Try to mount the database, most likely it will be mounted.
Let’s start Exchange Management Console, right click the database and click properties and enable circular logging.

When that’s done you have to restart the Information Store and then check so that the databases are mounted.
Wait a few minutes and monitor the folder with the transaction logs they should now be committed and flushed if everything is OK.

In some cases when a DAG is used the copy will get corrupt and needs to be reseeded. (Check the last links in sources)
Here are some command examples (copied from the link below):

“Update-MailboxDatabaseCopy -Identity DB1\MBX1”
“Update-MailboxDatabaseCopy -Identity DB1\MBX1 -SourceServer MBX2”
“Update-MailboxDatabaseCopy -Identity DB1\MBX1 –DatabaseOnly”
“Update-MailboxDatabaseCopy -Identity DB1\MBX1 –CatalogOnly”