Exchange 2010: Beheben des „Dirty Shutdown State“

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.

Dirty Shutdown State

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.

14 Gedanken zu „Exchange 2010: Beheben des „Dirty Shutdown State““

  1. Guter Beitrag – Danke Frank.

    Zur Ergänzung, bei mir war auch die Datenbank im Dirty Shutdown und konnte nur mir /p wieder im CleanShutdown Modus gebracht werden.
    Gemountet konnte sie aber trotzdem nicht werden.
    Nach langem Suchen ist aufgefallen, dass der Laufwerksbuchstabe der Logfiles sich (wie auch immer) geändert hatte.
    Den wieder richtig eingetragen und siehe da – Online und gemountet.
    VG Mike

    Antworten
  2. Vielen Dank Franky,

    und wieder einmal hast du mir sehr viel Arbeit erspart. Super Anleitungen Super Erklärungen wenn ich Probleme mit Exchange habe schaue ich zuerst immer hier vorbei :-)

    Antworten
  3. Hallo,

    bekomme nach mehreren Versuchen mit eseutil /P
    chk File und Log files verschieben

    die Datenbank nicht zum Laufen – hat jemand eine Idee woran es noch liegen könnten

    lg Lukas

    Antworten
  4. Hatte heute den Fall, dass bei einem Kunden mit einem Exchange 2013 Server nach einen Stromausfall die Datenbank im Dirty Shutdown State war.
    Soft Recovery war nicht mehr möglich.

    Hard Recovery funktionierte, allerdings musste ich im Nachgang alle .log und .chk-Dateien der Datenbank verschieben, da sich die Datenbank trotz Clean Shutdown State nach der Reparatur nicht mounten lies.

    Nichtsdestotrotz, wieder mal ein Artikel der das Zeug hat, Leben zu retten :-)

    Antworten
  5. Thanks for the useful information about Exchange server dirty shutdown state. It’s really a very big issue faced by the Exchange administrators and most of the time leads to data loss situations. When we were facing this problem, we fixed it with the help of steps and tools as mentioned here: http://rickytechblog.wordpress.com/2012/08/17/tips-to-fix-exchange-dirty-shutdown-state-in-exchange-server/

    I would like to share it with you and all who are encountering similar problem.

    regards,
    Jim

    Antworten

Schreibe einen Kommentar