In einem vorherigen Artikel habe ich die Wiederherstellung eines kompletten Exchange Servers beschrieben. Es kann allerdings auch vorkommen das sich die Exchange Datenbank nicht mehr online schalten lässt. Gründe dafür gibt es viele: Vollgelaufene Partitionen oder Abstürze des Servers. In diesem Artikel möchte ich Maßnahmen aufzeigen die bei der Wiederherstellung der Datenbank angewendet werden können.
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.
Die Exchange Fehlermeldung beim Mounten der Datenbank ist leider etwas allgemeiner gehalten:
——————————————————–
Microsoft Exchange Fehler
——————————————————–
Die Datenbank ‚Mailbox Database‘ konnte nicht bereitgestellt werden.
Mailbox Database
Fehler
Fehler:
Die angegebene Datenbank konnte nicht bereitgestellt werden. Angegebene Datenbank: Mailbox Database; Fehlercode: Fehler bei Active Manager-Vorgang: Fehler Fehler bei der Datenbankaktion: Fehler bei Vorgang mit folgender Meldung: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-550)
. [Datenbank: Mailbox Database, Server: EX1.frankysweb.local].
Fehler bei Active Manager-Vorgang: Fehler Fehler bei der Datenbankaktion: Fehler bei Vorgang mit folgender Meldung: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-550)
. [Datenbank: Mailbox Database, Server: EX1.frankysweb.local]
Fehler bei Active Manager-Vorgang: Fehler Fehler bei Vorgang mit folgender Meldung: 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)
Wenn die Protokolldateien nicht mehr vorhanden sind, gibt es die Möglichkeit das Hard Recovery durchzuführen. Dabei wird die Datenbank wieder in den Clean Shutdown State gebracht, ohne vorher die Protokolldateien in die Datenbank zurückzuspielen. Dabei kommt es allerdings zu Datenverlust, alle Elemente die noch nicht in der Datenbank gespeichert wurden, sondern bislang nur in den Protokollen existiert haben sind verloren. Diese Methode sollte also nur als letzter Schritt durchgeführt werden, wenn alle anderen Stricke reißen. Eine entsprechende Warnung wird beim Ausführen des Befehls angezeigt
Um ein Hard Recovery durchzuführen, wird Eseutil mit dem Parameter /P gefolgt vom Datenbanknamen gestartet
„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.