Exchange 2010: Dial-Tone Recovery

#In diesem Artikel habe ich die Wiederherstellung einer Exchange Datenbank beschrieben, dies sollte allerdings nur die letzte Wahl eines Administrators sein um die Exchange Funktionalität wiederherstellen zu können. Wenn schon die komplette Datenbank aus der Sicherung wiederhergestellt werden muss, kann man sich das Dial-Tone Verfahren zu Nutze machen.

Was ist der Unterschied, zwischen einer normalen Datenbank Wiederherstellung und der Dial-Tone Recovery?

Bei einer normalen Exchange Datenbank Wiederherstellung ist die Datenbank solange offline, bis sie aus der Datensicherung wiederhergestellt wurde und wieder bereitgestellt wird. Je nach Datensicherungskonzept kann die Wiederherstellung eine gewisse Zeit in Anspruch nehmen, in dieser Zeit können sich keine Benutzer mit dem Exchange Server verbinden. Abhilfe schafft hier die Dial-Tone Recovery. Es wird zunächst eine neue leere Datenbank bereitgestellt, in der die Postfächer der Benutzer gespeichert sind. Jeder der betroffenen Benutzer hat jetzt wieder die Möglichkeit sich mit dem Exchange Server zu verbinden und Mails zu Versenden oder zu Empfangen. So wird der Geschäftsbetrieb bis zu einem gewissen Grad aufrechterhalten. Der Administrator verschafft sich so etwas mehr Zeit die Datenbank aus der Sicherung wiederherzustellen. Sobald das geschehen ist, fängt die Arbeit aber erst an J

Wie sieht die Testumgebung aus?

Um zu verdeutlichen wie man eine Dial-Tone Recovery durchführt, habe ich eine kleine Testumgebung aufgebaut


DC1 fungiert als Domänen Controller und auf EX1 sind die 3 Exchange Rollen Mailbox, Client-Access und Hub-Transport installiert. Es gibt 3 Benutzer mit Postfächern: Maggie, Lisa und Bart. Alle 3 Benutzer haben schon ein paar Mails in Ihrem Postfach. Die Exchange Datenbank ist auf Laufwerk H: gespeichert. Um den Ausfall der Datenbank zu simulieren, hänge ich Laufwerk H: später einfach vom Betriebssystem ab und stelle ein neues leeres Laufwerk bereit. Das ist dann in etwa so als würde eine Festplatte (oder RAID-Array etc.) ausfallen und durch eine neue ersetzt werden.

Die Datenbank in der die Postfächer gespeichert sind heißt „Produktiv DB“ und liegt wie schon erwähnt auf Laufwerk H:

Ohne funktionierendes BackUp kann die Datenbank natürlich nicht wiederhergestellt werden, also sichere ich das Laufwerk H: mit der „Windows Server Sicherung“ einmal auf das Laufwerk Z. Das Laufwerk benutze ich nur um das BackUp dort abzulegen. Natürlich kann das BackUp auch mit jeder anderen Exchange kompatiblen Sicherungssoftware durchgeführt werden. Ich verwende die Windows Server Sicherung weil sie beim Betriebssystem mitgeliefert wird und für diesen Test ihren Zweck erfüllt. Ich werde noch einen gesonderten Artikel für BackUp und Wiederherstellung mit der Windows Server Sicherung verfassen.

Wie man hier sieht hat Lisa 3 Nachrichten in Ihrem Postfach

Die Datenbank wurde gesichert und das Laufwerk H: gelöscht. Alle Dateien der Datenbank sind nicht mehr vorhanden:

In der Exchange Management Konsole können wir erkennen, dass die Datenbank nicht mehr bereit gestellt ist

Beim Versuch die Datenbank wieder einzubinden wird diese Fehlermeldung angezeigt, da alle Dateien der Datenbank gelöscht wurden.

Ich binde nun ein neues Laufwerk in den Server ein und mounte es als Laufwerk G: dann wird die Sicherung der Datenbank auf das neue Laufwerk zurückgespielt.

Die Sicherung wurde in den Ordner „G:\Rücksicherung“ wiederhergestellt

Das ist nun die Ausgangssituation, nun kann die Dial Tone Recovery durchgeführt werden. Zum jetzigen Zeitpunkt ist kein Benutzer dessen Postfach in der gelöschten Datenbank gespeichert wurde in der Lage auf sein Postfach zuzugreifen.

Durchführung der Dial Tone Recovery

Zuerst legen wir eine neue leere Datenbank für die Benutzer an, damit es den Usern wieder möglich ist Mails zu empfangen und zu verschicken. Am schnellsten geht das mit der Exchange Management Shell

New-MailboxDatabase -Name „Dial Tone DB“ -EdbFilePath „G:\Dial Tone DB\Dial Tone DB.edb“ -LogFolderPath „G:\Dial Tone DB“ -Server FWEX01

Die Postfächer der Benutzer verweisen allerdings noch immer auf die defekte Datenbank, also verweisen wir nun die Benutzer Postfächer auf die neue leere Dial Tone Datenbank

Get-Mailbox -Database „Produktiv DB“ | Set-Mailbox -Database „Dial Tone DB“

Jetzt wird die neue Datenbank bereitgestellt, sobald das erfolgt ist sind die Benutzer wieder in der Lage Mails zu empfangen und zu verschicken, allerdings mit einem leeren Postfach.

Mount-Database „Dial Tone DB“

Wie man hier sehen kann, kann Lisa auf ihr Postfach zugreifen aber die 3 Nachrichten sind weg. Benutzer mit Outlook und aktivierten Cache Modus, haben allerdings das Glück das sie weiterhin auf ihre Mails, Termine etc. zugreifen können da sich die Daten ja noch im lokalen Cache des Clients befinden. Wir haben nun also Zeit gewonnen um die Daten wiederherzustellen.

Die Datenbank die zuvor nach G:\Rücksicherung zurückgespielt wurde muss nun in den Clean Shutdown State gebracht werden. Mit Eseutil kann zunächst überprüft werden welchen Status die Datenbank hat. Wir sehen hier das die Datenbank sich im Dirty Shutdown State befindet

eseutil /MH ‚.\Produktiv DB.edb‘

Ebenfalls mit Eseutil kann die Datenbank wieder in den Clean Shutdown State gebracht werden

Eseutil /R E00 /I /D

Jetzt sollte die Datenbank wieder den Clean Shutdown State haben. Dies kann wieder mit eseutil /MH ‚.\Produktiv DB.edb‘ überprüft werden

Jetzt erstellen wir eine Recovery Datenbank. Das kann auch bequem per Shell erledigt werden. Ich erstelle die Datenbank im Verzeichnis „H:\Recovery DB“

New-MailboxDatabase -Name „Recovery DB“ -Server FWEX01 -EdbFilePath „G:\Recovery DB\Recovery DB.edb“ -LogFolderPath „G:\Recovery DB“ –Recovery


Damit die Datenbankdateien auf dem Laufwerk erstellt werden müssen dir die Datenbank einmal bereitstellen, dann können wir die Datenbank direkt wieder offline schalten

Mount-Database „Recovery DB“

Dismount-Database „Recovery DB“

Jetzt nehmen wir auch die Dial Tone Datenbank (Dial Tone DB) offline. Die Folge ist also dass die Benutzer nicht mehr auf Ihr Postfach zugreifen können. Aber dafür haben Sie ja gleich Ihre Daten wieder J

Auf der Shell wird dafür der Befehl Dismount-Database „Dial Tone DB“ ausgeführt

An dieser Stelle folgen nun ein paar Kopier/Verschiebe Aktionen auf dem Laufwerk, hier ist Vorsicht angesagt. Ich versuche die Prozesse so genau wie möglich zu beschreiben (siehe auch Grafik).

Zuerst verschieben wir den Inhalt des Verzeichnisses „H:\Recovery DB“ nach „H:\TEMP“. Das Verzeichniss „H:\Recovery DB“ sollte nun also leer sein (1)

Dann Verschieben wir den Inhalt von „H:\Dial Tone DB“ nach „H:\Recovery DB“. Dann benennen wir die Datenbank Datei „Dial Tone DB.EDB“ nach „Recovery DB.EDB“ um. Die bisherige Dial Tone Datenbank ist jetzt also die Recovery Datenbank (2)

Jetzt ist das Verzeichniss „H:\Dial Tone DB“ leer und das Verzeichnis „H:\Recovery DB“ enthält die ursprüngliche Dial Tone Datenbank. Jetzt kopieren verschieben wir den Inhalt von „H:\Rücksicherung“ nach „H:\Dial Tone DB“ (sollte die Sicherungssoftware Unterordner erstellt haben, diese bitte weglassen, wir benötigen nur die EBD und LOG Dateieen). Die EDB-Datei müssen wir ebenfalls wieder umbenennen, aus „Produktiv DB.EDB“ wird jetzt wieder „Dial Tone DB.EDB“ (3)

Damit wir die „Dial Tone DB“ (die jetzt die wiederhergestellten Daten aus der Produktiv DB enthält) müssen wir den folgenden Befehl ausführen

Set-MailboxDatabase „Dial Tone DB“ -AllowFileRestore:$true

Jetzt könne wir die Dial Tone Datenbank wieder bereitstellen und die Benutzer sind in der Lage auf ihr Postfach zuzugreifen. Die Datenbank enthält also wieder die 3 Nachrichten die Lisa in Ihrem Postfach hatte.

Mount-Database „Dial Tone DB“

Da Lisa aber in der Zeit der Wiederherstellung mit der „alten“ Dial Tone Datenbank gearbeitet hat (Die Daten haben wir nach „H:\Recovery DB“ verschoben) , müssen wir nun diese Daten in die aktuelle Dial Tone DB bekommen. Dazu stellen wir die Recovery DB bereit

Set-MailboxDatabase „Recovery DB“ -AllowFileRestore:$true

Mount-Database „Recovery DB“


Jetzt können wir die Daten der Recovery DB (die unsere Übergangsdatenbank war) mit der neuen produktiv Datenbank „Dial Tone DB“ abgleichen

Get-Mailbox -Database „Dial Tone DB“ | Restore-Mailbox -RecoveryDatabase „Recovery DB“


Jetzt befinden sich in dem Postfach des Benutzers die Mails, Termine, etc die aus der Sicherung wiederhergestellt werden und auch die Mails die der Benutzer in der Übergangszeit versendet und empfangen hat. Die Zeit des Ausfalls wurde so also minimiert, auch wenn es einen größeren Aufwand als eine simple Wiederherstellung bedeutet.

Zu guter Letzt kann noch etwas aufgeräumt werden:

Dismount-Database „Recovery DB“

Remove-MailboxDatabase „Recovery DB“

Die Verzeichnisse „H:\Recovery DB“ und „H:\TMP“ können nach erfolgreicher Wiederherstellung gelöscht werden. Wer möchte kann auch noch die neue produktive Dial Tone Datenbank wieder nach „Produktiv DB“ umbenennen.

Eine kleine Anmerkung folgt zuletzt, in meinem Artikel habe ich beschrieben, dass zuerst die Sicherung zurückgespielt wird und dann eine Dial Tone Datenbank zur Verfügung gestellt wird. Das ist natürlich so nicht praktikabel. Wenn eine Dial-Tone Recovery durchgeführt wird, dann wird natürlich zuerst die Dial Tone Datenbank bereitgestellt, damit die Benutzer wieder in der Lage sind, sich mit Exchange zu verbinden. Erst dann wird die Rücksicherung der Datenbank durchgeführt. Ich wollte in diesem Artikel nicht näher auf den Rücksicherungsprozess eingehen, daher die etwas vertauschte Reihenfolge. Ich hoffe der Artikel ist trotzdem verständlich, wenn nicht dann einfach Bescheid geben.

2 Gedanken zu „Exchange 2010: Dial-Tone Recovery“

  1. Hi zusammen,
    mir hat der Beitrag geholfen. Die Urspruengliche Datenbank konnte nicht mehr eingebunden werden, damit waere der Kauf eines kostenpflichtigen Produktes notwendig geworden. Allerdings der Befehl: Get-Mailbox -Database „Dial Tone DB“ | Restore-Mailbox -RecoveryDatabase „Recovery DB“ konnte unter MS Exchg. 2013 nicht ausgefuehrt werden, da der Parameter „Restore-Mailbox“ nicht bekannt war. Die Wiederherstellung erfolgte ausserhalb der Arbeitszeit, daher waren keine Daten aus der RecoveryDB verloren.
    Vielen Dank fuer Deine Veroeffentlichung dieser Anleitung!

    Antworten

Schreibe einen Kommentar