Site icon Franky's Web

Exchange 2010: Fixing the "Dirty Shutdown State"

In a previous article, I described how to restore a complete Exchange server. However, it can also happen that the Exchange database can no longer be brought online. There are many reasons for this: Full partitions or server crashes. In this article I would like to show measures that can be used to restore the database.

Database in "dirty shutdown state" (soft recovery)

If the database can no longer be made available after an Exchange Server crash, this is often due to a "dirty shutdown". Dirty shutdown means that the database could not be shut down normally and inconsistencies have occurred between the database and the log files as a result. Dirty shutdown does not mean that the database is defective, but before the database can be switched back online, the log files must be compared with the database. The "eseutil" tool can be used to check whether the database is in the dirty shutdown state.

To check the shutdown state of the database, open a command line and change to the directory in which the database is located. Then the command "eseutil /mh "NameDerDantenbank.EDB"" is executed. The output of the command shows a lot of information, the value "State" shows the current status of the database.

The Exchange error message when mounting the database is unfortunately somewhat more general:

-------------------

Microsoft Exchange error

-------------------

The database 'Mailbox Database' could not be provided.

Mailbox Database

Error

Error:

The specified database could not be provided. Specified database: Mailbox Database; Error code: Error during Active Manager operation: Error Error during database action: Error during operation with the following message: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-550)

. [Database: Mailbox Database, Server: EX1.frankysweb.local].

Error during Active Manager operation: Error Error during database action: Error during operation with the following message: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-550)

. [Database: Mailbox Database, Server: EX1.frankysweb.local]

Error during Active Manager operation: Error Error during operation with the following message: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-550)

[Server: EX1.frankysweb.local]

MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-550)

Eseutil can also be used to put the database back into the "Clean Shutdown State". Eseutil must be called with the parameter /R followed by the logfile prefix

The /L and /D parameters can also be used to specify alternative paths to log files. In my case, this was not necessary as I was in the corresponding directory. After the logs have been imported into the database, the shutdown state can be checked again with "eseutil /mh"

If everything went well, "Clean Shutdown" is now displayed again and the database can be mounted.

This procedure is also known as soft recovery. If soft recovery is no longer possible, hard recovery remains. However, this results in data loss, as the logs are not restored to the database but are "cut off".

Database in "Dirty Shutdown State" (Hard Recovery)

If the log files are no longer available, it is possible to perform a hard recovery. This restores the database to the clean shutdown state without first restoring the log files to the database. However, this results in a loss of data; all elements that have not yet been saved in the database but have only existed in the logs are lost. This method should therefore only be used as a last resort if all else fails. A corresponding warning is displayed when the command is executed

To perform a hard recovery, Eseutil is started with the parameter /P followed by the database name

"eseutil /p "Name of the database.ESB"

After confirming the command, the warning described above must be confirmed with "OK". When Eseutil is finished, the database can be mounted again.

Exit mobile version