Website-Icon Frankys Web

Exchange 2010: Datenbank wiederherstellen (die Holzhammer Methode!)

Vorwort: Die im folgenden Beitrag beschriebene Methode sollte nur in Ausnahmefällen angewendet werden. Ich musste die unten aufgeführten Schritte durchführen als der Exchange Datenbank Eintrag in der Active Directory beschädigt war und sich nicht wieder herstellen lies. Allerdings sind nach dieser Aktion eine ganze Menge Aufräumarbeiten nötig. Es kann aber nicht schaden, diese Schritte im Kopf zu haben, wenn plötzlich das Active Directory crasht. Daher beschreibe ich sie hier. Bitte zuerst den ganzen Artikel lesen, BEVOR er umgesetzt wird.

Die Situation: Zunächst ein paar Worte zu der Fehlersituation, die Exchange Datenbanken waren zunächst noch online geschaltet, allerdings hatten die Datenbank Container in der Active Directory Konfigurations-Partition scheinbar Fehler. Der Exchange Server wurde, dann planmäßig nach Update-Installation gebootet, was zur Folge hatte, dass die Datenbanken nicht mehr gestartet werden konnten. Die Exchange Server waren Mitglied einer DAG, jedoch funktionierte in diesem Fall auch der Schwenk auf die passive Kopie der Datenbank nicht. Die Datenbanken befanden sich laut ESEUTIl im Clean-Shutdown State, die Fehlermeldung beim Mounten der Datenbank entsprach jedoch jener Meldung die angezeigt wird, wenn die Datenbanken im Dirty-Shutdown State sind. Leider habe ich es versäumt Screenshots der Fehlermeldungen zu erstellen, daher beschreibe ich nur die Vorgehensweise.

Hintergrund: Etliche Konfigurationsdaten zu den Exchange Datenbanken werden innerhalb des Active Directorys gespeichert, die Konfiguration der Datenbanken lässt sich mit ADSI-Editor anzeigen und auch bearbeiten, hier ein Screenshot einer Mailbox-Datenbank aus Active Directory Sicht:

Im Normalfall brauch man hier nicht via ADSI-Editor manuell Hand anlegen. In meinen Fall war es allerdings nötig. Wie schon erwähnt, konnte nicht genau geklärt werden wodran das Problem letztendlich bestand (Berechtigungen? Replikation?). Alle Versuche die Datenbanken wieder online zu schalten schlugen fehl, es blieb also nur die Holzhammer Methode um die Datenbanken möglichst schnell wieder online zu bekommen.

Die Vorgehensweise: Zuerst habe ich die Datenbank Container via ADSI-Editor gelöscht. Exchange lässt das Löschen von Datenbanken nicht zu, solange noch Postfächer in der Datenbank vorhanden sind, also musste dieser Schritt per ADSI-Editor erledigt werden. Ich habe also den Eintrag “CN=MBDB01” gelöscht.

Der Exchange Server kennt nun diese Datenbank und ihre Konfiguration nicht mehr.

Jetzt wird mittels ESEUTIL geprüft ob die Datenbank im Clean-Shutdown State ist, wie das geht habe ich hier beschrieben. Nachdem “ESEUTIL /MH” anzeigt das sich die Datenbank im Clean-Shutdown State befindet, werden alle Dateien, bis auf die .EDB Datei gelöscht.

Jetzt wird eine neue leere Mailbox Datenbank angelegt:

New-MailboxDatabase -Name NEUEDB -Server SMAIL01 -EdbFilePath d:\NeueDB\NeueDB.edb –LogFolderPath d:\NeueDB

Nun wird die Datenbank einmal gemounted, damit die Datenbank-Dateien erzeugt werden, im Anschluss wird Bereitstellung direkt wieder aufgehoben:

Mount-Database -Identity NEUEDB
Dismount-Database -Identity NEUEDB

Als Nächstes werden alle Dateien, die im Verzeichnis “D:\NeueDB” liegen gelöscht

Dann wird die ursprüngliche Mailbox Datenbank nach d:\NeueDB kopiert und nach nach NeueDB.EDB umbenannt. in meinem Fall habe ich also nur die EDB-Datei von D:\TMP (siehe Screenshot weiter oben) nach d:\NEUEDB kopiert und in NEUEDB.EDB umbenannt.

Jetzt noch festlegen, dass die Datenbank “NEUEDB” bei Wiederherstellung überschrieben werden darf:

Set-MailboxDatabase -Identity NEUEDB -AllowFileRestore $true

Nun kann die Datenbank “NEUEDB” gemountet werden

Mount-Database -Identity NEUEDB

Soweit so gut, allerdings verweisen die Postfächer noch auf die alte Datenbank:

Bevor die Benutzer sich wieder anmelden können, muss die richtige Datenbank (jetzt NEUEDB) für die Postffächer konfiguriert werden, das geschieht mit folgendem Befehlen:

get-mailboxdatabase | clean-mailboxdatabase
get-mailboxstatistics –database NEUEDB | set-mailbox –database NEUEDB
get-mailboxdatabase | clean-mailboxdatabase

Jetzt sind alle Postfächer die ursprünglich in der Datenbank MBDB01 lagen in die neue Datenbank NEUEDB umgezogen. Die Benutzer können sich wieder anmelden.

Hinweis: Diese Methode zieht, wie schon erwähnt, noch Aufräumarbeiten nach sich. Systemmailboxen müssen ggf. neu angelegt werden. Postfachbeschränkungen müssen ggf. auch angepasst werden. Dieser Artikel zeigt nur eine weitere Möglichkeit auf eine Datenbank wieder verfügbar zu machen. In meinem Fall war ein defektes Active Directory Schuld, dies ist nach meiner Erfahrung jedoch relativ selten. Bevor diese Methode angewendet wird, schaut euch erst mal die Alternativen an:

https://www.frankysweb.de/?cat=12

Die mobile Version verlassen