IT-Infrastruktur

Exchange Datenbank reparieren

Kurzfassung - Wenn der Strom des Exchange-Servers ausfällt oder der Festplattenzugriff eines Exchange-Mail-Servers gestört ist, kann es dazu kommen, dass die Exchange-Mailboxen (.edb-Dateien) beim erneuten Starten des Servers oder beim wieder Verbinden der Platten beschädigt sind. Dann sieht es zwar zunächst so aus, als sei der Exchange wieder erfolgreich gestartet, allerdings scheitert der Zugriff in OWA und es werden keine neuen Mails verarbeitet.

Donnerstag, 21. Oktober 2021
Exchange Datenbank reparieren

Beschädigte Exchange-Datenbank nach Stromausfall oder unerwartetem Beenden des Hosts

Die Fehlermeldung in OWA lautet dann wie folgt: “Microsoft.Mapi.MapiExceptionMdbOffline”.

Im Ereignisprotokoll des Servers können z.B. folgende Meldungen anzeigen, dass der Zugriff auf die Datenbanken nicht mehr funktioniert:

  • Exchange ActiveSync tried to access a mailbox on Mailbox server “[SERVERNAME]“. It could not access the mailbox because the Mailbox server is offline.
  • Active Manager failed to mount database Mailboxes on server “[SERVERNAME]“ Error: Fehler bei Active Manager-Vorgang: Fehler bei der Datenbankaktion: Fehler bei Vorgang mit folgender Meldung: MapiExceptionDatabaseError: Unable to mount database. (hr=0x80004005, ec=1108)
Fehlermeldung exchange server
Fehlmeldung exchange server

Der Zustand des Mounts kann auch im ECP überprüft werden. Hier zeigt sich der Status der Datenbanken (Eingebunden, Nicht Eingebunden):

Exchange admin center

Zustand der Exchange-Datenbank mit ESEUTIL überprüfen

Mithilfe des Tools “ESEUTIL” welches sich im Exchange-Installationsverzeichnis befindet (z.B. G:\Exchange\Bin) kann zunächst der genaue Zustand der Datenbank ermittelt werden. Hierzu verwendet man den Parameter /mh unter Angabe des .edb-Files der Datenbank.

G:\Exchange\Bin\eseutil.exe /mh "Q:\Exchange\Mailbox\Mailboxes\Mailboxes.edb"

Im Ergebnis der Überprüfung mit “eseutil /mh” zeigt sich dann, dass die Datenbank im State “Dirty Shutdown” steht - also in einem unsauberen Beendigungsstatus.

Exchange Datenbank eseutil

Soft Repair der Exchange Datenbank ausführen (eseutil.exe /r)

Sofern der Status der Datenbank nicht wie erwartet ist und z.B. im Status “Dirty Shutdown” ist, kann zunächst versucht werden, die Datenbank mithilfe von “eseutil /r” unter der Angabe des Logprefixs zu reparieren.

G:\Exchange\Bin\eseutil.exe /r E02
exchange datenbank eseutil exe

Sollte dies nicht funktionieren und die Fehlermeldung “Operation terminated with error -501 (JET_errLogFileCorrupt, Log file is corrupt) after 0.47 seconds.” erscheinen, muss im nächsten Schritt eine Datenbank-Reparatur mit der sogenannten Hard Recovery Methode durchgeführt werden.

Hard Repair der Exchange Datenbank ausführen (eseutil.exe /p)

Wenn alles nichts hilft, muss die Exchange-Datenbank mithilfe des Befehls eseutil.exe /p im Hard Repair Modus repariert werden.

eseutil /p "Q:\Exchange\Mailbox\PublicBoxes\PublicBoxes.edb"

Das Tool beginnt nun mit dem Scannen und Reparieren der Datei:

exchange datenbank eseutil exe/p

Exchange Datenbanken erneut mounten

Bevor die Datenbanken wieder über das Exchange-ECP eingebunden (gemountet) werden können, kann es erforderlich sein, die .log- und .chk-Dateien, welche sich im gleichen Ordner der Datenbank befinden, an einen anderen Ort zu verschieben. So werden die Dateien neu erstellt und hindern Exchange nicht beim Einbinden der reparierten Datenbank.

Exchange Datenbanken Liste

Nachdem sich im Ordner der Datenbank weder .log- noch .chk-Dateien befinden, kann das einbinden über ECP erneut durchgeführt werden.

Exchange admin center

Mailboxen in andere Mailbox-Database verschieben

Wenn die Reparatur mit eseutil nicht ausreicht, ist der nächste Schritt die Mailboxen aus der beschädigten Mailbox-Database in eine neue zu verschieben. Eine defekte Exchange-Datenbank kann sich in der Ereignisanzeige des Exchange-Servers z.B. wie folgt äußern:

  • Unexpected error encountered in critical block. Location:(47072), scope: (MailboxShared), callstack: ( bei Microsoft.Exchange.Server.Storage.StoreCommonServices.Context.OnCriticalBlockFailed(LID lid, Int32 error, CriticalBlockScope criticalBlockScope)

Dazu muss zunächst eine neue Datenbank erstellt werden. Dies kann im Exchange Admin Center unterhalb von Server → Datenbank erledigt werden. Sobald die neue Datenbank verfügbar ist, kann mit der Migration der Mailboxen begonnen werden. Die Migration kann auch komfortabel über die ECP GUI gestartet werden: Der Menüpunkt heißt Empfänger → Migration.

Exchange admin center migration

Von hier können Sie die betroffenen Mailboxen von der kaputten in die neue Datenbank verschieben. Achten Sie dabei darauf, dass die neue Mailbox-Datenbank die gleichen Grenzwerte besitzt. Sonst könnte die Migration wegen zu großer Postfächer abbrechen.

Nach dem Start der Migration können Sie diese unter “Status für alle Batches” in der GUI einsehen oder den nachfolgenden Powershell-Befehl verwenden:

Get-Mailbox | Get-MoveRequestStatistics | Sort PercentComplete

Nach Abschluss der Migration zur neuen Datenbank sollten die Postfächer aller BenutzerInnen wieder funktionieren.

Zurück zur Übersicht
Telefon
Telefon
Kontaktformular
Kontaktformular

Sie haben weitere Fragen? Schildern Sie uns Ihr Anliegen und wir melden uns schnellstmöglich bei Ihnen zurück.

Ich habe die Datenschutzerklärung zur Kenntnis genommen. Ich stimme zu, dass meine Angaben zur Kontaktaufnahme und für Rückfragen dauerhaft gespeichert werden. Absenden
Live-Chat
Live-Chat

Wie können wir Ihnen behilflich sein? Chatten Sie mit uns! Einer unserer Experten wird unverzüglich für Sie zur Verfügung stehen.

Ich habe die Datenschutzerklärung zur Kenntnis genommen. Ich stimme zu, dass meine Angaben zur Kontaktaufnahme und für Rückfragen dauerhaft gespeichert werden. Chat starten