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.
Datenbank im „Dirty Shutdown State“ (Softrecovery)
Wenn sich nach einem Absturz des Exchange Servers die Datenbank nicht mehr bereitstellen lässt, ist der Grund dafür oft der „Dirty Shutdown“. Dirty Shutdown bedeutet, dass die Datenbank nicht normal heruntergefahren werden konnte und es infolge dessen zu Inkonsistenzen zwischen der Datenbank und den Protokolldateien gekommen ist. Dirty Shutdown bedeutet also nicht dass die Datenbank defekt ist, bevor die Datenbank aber wieder online geschaltet werden kann, müssen die Protokolldateien mit der Datenbank abgeglichen werden. Ob sich die Datenbank im Dirty Shutdown Stae befindet, kann mit dem Tool „eseutil“ überprüft werden.
Zum Überprüfen des Shutdown State der Datenbank öffnet man eine Kommandozeile und wechselt in das Verzeichnis in dem sich die Datenbank befindet. Dann wird der Befehl „eseutil /mh „NameDerDantenbank.EDB““ ausgeführt. Die Ausgabe des Befehls zeigt viele Informationen an, die Wert „State“ zeigt den aktuellen Status der Datenbank an.
The Exchange error message when mounting the database is unfortunately somewhat more general:
——————————————————–
Microsoft Exchange error
——————————————————–
Die Datenbank ‚Mailbox Database‘ konnte nicht bereitgestellt werden.
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)
Mit Eseutil kann die Datenbank auch wieder in den „Clean Shutdown State“ gebracht werden. Eseutil muss dazu mit dem Parameter /R gefolgt von dem Logfile Präfix aufgerufen werden
Mit den Parametern /L und /D lassen sich auch alternative Pfade zu Protokolldateien angeben. In meinem Fall war dies nicht notwendig da ich mich ja im entsprechenden Verzeichnis befunden habe. Nachdem die Protokolle in die Datenbank eingespielt wurden, kann wieder mit „eseutil /mh“ der Shutdown State überprüft werden
Wenn alles gut gegangen ist, wird nun wieder „Clean Shutdown“ angezeigt und die Datenbank lässt sich mounten.
Dieses Verfahren wird auch als Softrecovery bezeichnet. Wenn ein Softrecovery nicht mehr möglich ist bleibt noch das Hard Recovery. Dabei kommt es allerdings Datenverlust, da die Protokolle nicht zurück in die Datenbank gespielt werden, sondern „abgeschnitten“ werden.
Datenbank im „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 der Datenbank.ESB“
Nach dem Bestätigen des Befehls muss die oben beschriebene Warnung mit „OK“ bestätigt werden. Wenn Eseutil fertig ist, lässt sich die Datenbank wieder mounten.