Read time 5 minutes

Summary: This article emphasizes the importance of maintaining Exchange log files for database repair and outlines methods to address the Dirty Shutdown state in Exchange 2010. It explains how to check the state of the database and offers two recovery approaches: soft recovery with log files and repair without log files using Eseutil utility. It also highlights considerations and challenges when using Eseutil and suggests Kernel for Exchange Server as an alternative solution for severe data corruption issues.

In both Exchange 2010 and any other Exchange version, it is imperative to maintain access to log files in order to thoroughly repair corrupt Exchange database. Upon initiating, the Exchange Server consistently conducts a thorough examination to confirm whether the database has been properly detached from the transaction log. The primary purpose of this scrutiny is to guarantee that no pending transactions remain uncommitted in the database. Nevertheless, should the system detect any database still linked to transaction logs, Exchange Server will automatically initiate the detachment process by replaying the available log files.

Log files serve as invaluable assets when restoring a database to a previous state, making it advisable not to permanently delete them. Furthermore, transaction logs become pivotal in scenarios where the Exchange Server is in a Dirty Shutdown state, and you aim to recover the database from a recent backup. This article delves into the methods for recovering an Exchange Database in a Dirty Shutdown state, both with and without the presence of log files.

How to check the state of Exchange Server 2010 database?

Many of you are likely familiar with the concept of a transaction, which refers to a series of operations executed on a database to maintain the integrity and completeness of the Exchange Database. These transactions are meticulously documented in log files to monitor alterations and facilitate database restoration to its functional state by rolling back transactions in the event of errors or issues.

Now, you might be wondering how to determine whether the database is in a clean state or a Dirty Shutdown state. Fortunately, there is a straightforward method to confirm this. By executing specific commands, you can assess the state of your Exchange Database.

Note: Make sure you are connected to Exchange Server while running these commands.

Microsoft provides a useful in-built utility that can be used to verify the state of the database as well as to repair and restore the database.

  • To check the state of the public folder database, open CMD on your system and type the below command: Eseutil/mh “Path of the database.”
    C:\program files\exchsrvr\bin>eseutil/mh “drive:\program files\exchsrvr\mdbdata\pub1.edb”

  • To check the private folder state of the database, type the below command:
    C:\program files\exchsrvr\bin>eseutil/mh “drive:\program files\exchsrvr\mdbdata\priv1.edb”

When a database is in a Clean state, it signifies that it has been successfully detached from the transaction and is now in a consistent state. Conversely, when it enters a Dirty Shutdown state, this indicates that the database remains attached to an ongoing transaction, resulting in an inconsistent state. In the context of a Dirty Shutdown, the primary concern is the recovery of the Exchange Database. Now, let’s delve deeper into understanding what precisely constitutes a Dirty Shutdown state.

The Exchange Server database relies on the JET Blue engine technology, commonly referred to as the Exchange Storage Engine. This engine leverages a database cache to enhance input-output operations involving log files. When transaction logs are not applied to the database promptly, the JET engine designates the database pages as “Dirty,” leading to the Exchange database entering a state known as “Dirty Shutdown.”

Fixing Exchange Server 2010 Dirty Shutdown state

There are two methods to fix the Dirty Shutdown state, depending upon the availability of log files.

  1. Soft Recovery Method – With Log Files: When log files are accessible, troubleshooting dirty shutdown error using Eseutil utility becomes a straightforward and uncomplicated process. This approach is referred to as a “Soft Recovery of the Database,” where transaction logs are meticulously replayed alongside log and checkpoint files. To initiate this database recovery with log files, employ the /R switch in conjunction with Eseutil.

    Eseutil /R E00 /L location of log files
    E.g.,
    Eseutil /R E00 /L c:\exchsrvr\logfiles

    In the event of missing log files, the soft recovery method is prone to failure, potentially leading to a cascade of errors. When log files are either absent or in a Dirty Shutdown state, a variety of error messages may arise, including but not limited to:

    • Error – 501 (JET-err _errLogFileCorrupt) – “Log File is Corrupt”
    • Error -515 (JET_errInvalidLogSequence) – “Any logfile from the sequence is missing”
    • Error -514 (JET_errBadLogVersion) – “Log file generated with different Exchange Server or edition.”

    Before implementing any methods, it is imperative to confirm the status of log files. To accomplish this, you can utilize the following:

    Eseutil /ml ” log files path\log prefix”
  2. Repair – Without Log Files: Another method for database repair is available. If you lack a valid backup or encounter inconsistent log files, you can using /p switch with Eseutil to initiate the database repair process. The command should be structured as follows:
    C:\Program File\Exchsrvr\Bin>eseutil /p “C:\Exchsrvr\Mailbox Store (SERVER).edb”

    When executing this command, a prompt will appear; please click “OK” to initiate the repair process. Subsequently, the tool will commence repairing the database. After the repair process concludes, it is essential to verify the database’s status to confirm whether it is in a shutdown state or a clean state.

Things to know before using Eseutil for Dirty Shutdown state
  • Using Eseutil utility requires technical expertise because using it incorrectly can lead to data loss.
  • It is necessary to have 110 percent the size of the database as free space.
  • The Eseutil approach can take significant time depending upon the size of the database.

If you encounter issues that cannot be resolved using Eseutil, your next step is to employ third-party Exchange EDB Recovery software designed to address data corruption across various scenarios. Among these solutions, Kernel for Exchange Server stands out as a highly effective utility. This software offers a comprehensive set of features and functionalities, enabling it to successfully recover data from severely corrupted Exchange databases, regardless of the complexity of the situation.

Conclusion

Resolving the Exchange Dirty Shutdown state, particularly in scenarios where log files are absent, presents a formidable challenge. While Microsoft does offer the Eseutil command-line utility as a potential solution, its effectiveness may vary depending on the circumstances. In this article, we delve into the techniques for addressing the Exchange Dirty Shutdown state using Eseutil commands. Additionally, we suggest considering Exchange server recovery as an alternative option in cases where Eseutil falls short in database repair efforts.

Kernel for Exchange Server