Wiedergeben von Transaktionsprotokolldateien: Soft Recovery und Hard Recovery in Exchange Server 2003

 

Letztes Änderungsdatum des Themas: 2005-07-25

Für die Verwendung in Microsoft® Exchange Server 2003 müssen die Begriffe Protokollwiederherstellung und Datenbankwiederherstellung unterschieden werden. Datenbankwiederherstellung ist der Vorgang, Datenbank- und Protokolldateien wieder an ihrem Ort auf dem Server einzufügen, und Protokollwiederherstellung ist der Vorgang, Transaktionsprotokolle in die wiederhergestellte Datenbank wiederzugeben.

Typen der Protokollwiederherstellung

Es bestehen zwei Arten von Wiederherstellung:

  • Soft Recovery   Ein Transaktionsprotokoll-Wiedergabevorgang, der beim erneuten Bereitstellen einer Datenbank nach unerwartetem Beenden oder beim Wiederherstellen von Transaktionsprotokollen in eine Offline- oder Dateikopiesicherung einer Datenbank verwendet wird.
  • Hard Recovery   Ein Transaktionsprotokoll-Wiedergabevorgang, der nach dem Wiederherstellen einer Datenbank aus einer Onlinesicherung verwendet wird.

Soft Recovery

Im normalen Soft Recovery-Szenario beendet ein externes Ereignis unerwartet eine Exchange-Datenbank, doch bleiben Datenbank- und Protokolldateien dabei intakt und an Ort und Stelle. Wenn die Datenbank erneut bereitgestellt wird, liest Exchange die Prüfpunktdatei und beginnt mit der Wiedergabe des Transaktionsprotokolls, das als Prüfpunktprotokoll aufgeführt ist. Wenn keine Prüfpunktdatei vorhanden ist, beginnt die Wiedergabe mit der ältesten im Transaktionsprotokollordner für die Speichergruppe verfügbaren Protokolldatei.

Exchange schreibt in der Protokolldatei gefundene abgeschlossene Transaktionen, die noch nicht geschrieben wurden, in die Datenbank und macht alle unvollständigen Transaktionen rückgängig. Exchange beginnt nie, eine Transaktion in die Datenbankdateien zu schreiben, bis alle Operationen, aus denen sie besteht, in den Protokolldateien gesichert wurden. Transaktionen in der Datenbank müssen nicht physikalisch rückgängig gemacht oder zurückgesetzt werden, wenn alle Transaktionsprotokolle, für die kein Commit ausgeführt wurde und die zum Zeitpunkt des unerwarteten Beendens vorhanden waren, vorhanden sind, wenn die Wiedergabe beginnt.

Wichtig

Eine Grundannahme des Soft Recovery-Vorgangs ist, dass keine Datenbank- oder Protokolldateien durch den Fehler – oder nach dem Auftreten des Fehlers durch den Administrator – verschoben, gelöscht oder vernichtet worden sind.

Wenn eins der erforderlichen Transaktionsprotokolle aus der Wiedergabesequenz entfernt wird, schlägt die Soft Recovery in Exchange sofort fehl. Wenn erforderliche Transaktionsprotokolle fehlen, müssen Sie entweder die Wiederherstellung mit einer älteren, wiederhergestellten Kopie der Datenbank ausführen (einer, die diese Protokolle nicht benötigt) oder die Datenbank mit den Datenbankdienstprogrammen für Exchange Server (Eseutil.exe) reparieren.

Dies sind einige der Grundregeln für die Wiedergabe von Transaktionsprotokolldateien:

  • Protokolldateien aus einer Datenbank können nicht in einer anderen Datenbank wiedergegeben werden.   Die Operationen innerhalb der Protokolldateien erfolgen auf unterer Ebene. Protokolldateien enthalten keine Informationen der Art "Nachricht A an Postfach B übermitteln". Ein besseres Beispiel für eine Protokolldateioperation ist "Schreibe diesen Datenstrom von 123 Bytes an den Byteoffset 456 auf Datenbankseite 7890".
    Stellen Sie sich vor, dass Sie jemandem Anweisungen zum Bearbeiten eines Dokuments geben möchten, und Ihre Anweisungen sind "Auf Seite fünf, Absatz vier, im dritten Satz, füge den Satz 'Sein oder nicht Sein' nach dem zweiten Wort ein". Wenn diese Anweisungen auf ein anderes als das vorgesehene Dokument angewendet werden, wäre das Ergebnis eine zufällige Beschädigung des Dokuments. Analog hierzu würde, wenn die falschen Protokolldateien in eine Exchange-Datenbank wiedergegeben würden, ein ähnliches Ergebnis eintreten. Exchange weist daher eine Reihe von Sicherheitsvorkehrungen auf, um diese Beschädigung zu verhindern.
    Wenn Sie eine Exchange-Datenbank defragmentieren oder reparieren, können Transaktionsprotokolle, die dieser Datenbank zuvor zugeordnet waren nicht mehr in diese wiedergegeben werden. Wenn Sie versuchen, Protokolldateien nach einer Defragmentierung oder Reparatur wiederzugeben, überspringt Exchange die unpassenden Transaktionsprotokolle. Erwägen Sie wieder die Analogie der Dokumentbearbeitung. Wenn ein Absatz seit der Erstellung der Anweisungen verschoben, bearbeitet oder gelöscht wurde, wäre das Anwenden der veralteten Anweisungen ebenso destruktiv wie ihre Anwendung auf ein ganz anderes Dokument.
  • Sie können keine Protokolldateien wiedergeben, sofern nicht alle Protokolldateien, für die kein Commit ausgeführt wurde, vom letzten Ausführungszeitpunkt der Datenbank verfügbar sind.   Sie müssen im Besitz aller Protokolldateien beginnend mit dem Prüfpunkt sein, als die Datenbank gesichert wurde. Dann können Sie Protokolldateien von diesem Punkt an wiedergeben, solange sie in einer ununterbrochenen Reihenfolge vorliegen. Wenn in der Mitte oder am Anfang der Sequenz eine einzelne Protokolldatei fehlt, wird die Wiedergabe hier beendet.
  • Es können keine Protokolldateien wiedergegeben werden, wenn die Datenbanken an einen anderen Dateipfad verschoben wurden.   Diese Einschränkung gilt nicht, wenn Sie Exchange 2000 Server SP2 oder höher verwenden, weil Eseutil.exe die Wiedergabe auch dann ausführt, wenn eine Pfadänderung vorliegt. In den folgenden Abschnitten wird genauer beschrieben, wie der Wiedergabevorgang funktioniert.
  • Sie können keine Protokolldateien wiedergeben, wenn die Prüfpunktdatei auf das falsche Protokoll verweist.   Exchange behandelt ein Prüfpunktprotokoll, als wäre es das erste verfügbare Protokoll und ignoriert alle älteren Protokolldateien. Wenn Sie eine ältere Dateikopie der Datenbank wiederherstellen, liegt der Prüfpunkt zu weit entfernt, und Exchange versucht, die Protokolldateiwiedergabe mit einer Protokolldatei zu beginnen, die zu neu ist. Sie können dieses Problem lösen, indem Sie die Prüfpunktdatei entfernen; dadurch zwingen Sie Exchange, alle verfügbaren Protokolle zu durchsuchen. (Beim Wiederherstellen einer Onlinesicherung ignoriert Hard Recovery die Prüfpunktdatei.)
  • Sie können keine Protokolldateien wiedergeben, wenn Datenbankdateien für die Speichergruppe entfernt worden sind.   Alle Datenbanken, die zum Zeitpunkt des unerwarteten Beendens ausgeführt wurden, müssen noch vorhanden sein, damit Soft Recovery funktionieren kann. Diese Einschränkung kann durch die Verwendung von Eseutil.exe zum Ausführen von Soft Recovery überwunden werden.
    Wenn für andere Datenbanken in einer Speichergruppe Soft Recovery ausgeführt wird, während eine Datenbank fehlt, kann die Wiedergabesituation für zukünftige Protokolldateien kompliziert sein. Durch das Fehlschlagen von Soft Recovery gibt Exchange dem Administrator die Möglichkeit, die Situation zu analysieren und zu entscheiden, ob ohne die Datenbank fortgefahren werden soll.

Erweiterte Soft Recovery-Szenarien

In den meisten Fällen besteht die beste Möglichkeit, Soft Recovery auszuführen, im Bereitstellen einer Datenbank in einer Speichergruppe. Da alle Datenbanken in einer Speichergruppe einen einzelnen Datenstrom von Protokolldateien gemeinsam verwenden, findet Soft Recovery auf der Ebene der gesamten Speichergruppe statt, nicht auf der Ebene der einzelnen Datenbank.

Unter bestimmten Umständen bietet es Vorteile, Soft Recovery mithilfe von Eseutil.exe auszuführen. Dies sind die häufigsten dieser Szenarien:

  • Sie möchten eine Speichergruppe wiederherstellen, in der eine Datenbank fehlt.
  • Sie möchten eine einzelne Datenbank an einem andren Speicherort wiederherstellen, ohne Auswirkungen auf die anderen Datenbanken oder die Protokolldateien der Speichergruppe.

Die vollständige Syntax für die Soft Recovery-Funktion von Eseutil.exe, einschließlich aller möglichen Schalter, lautet:

ESEUTIL /r enn /L[path to log files] /s[path to checkpoint file] /d[path to database file] /i

Beispiel: ESEUTIL /r e01 /Lf:\mdbdata /sc:\exchsrvr\mdbdata /dg:\mdbdata /i

noteAnmerkung:
Befehlszeilenparameter von Eseutil.exe berücksichtigen Groß- und Kleinschreibung nicht; sie werden in gemischter Schreibung, wie oben, dargestellt, um eine Verwechslung der Zeichen "L" und "I" zu vermeiden.

Die Beispiele oben zeigen die Wiederherstellung der Datenbanken für eine Speichergruppe, in der das Präfix der Protokolldatei E01 ist, die Protokolldateien sich in f:\mdbdata befinden, die Prüfpunktdateien unter c:\exchsrvr\mdbdata gespeichert sind, die Datenbank- und Streamingdateien sich in g:\mdbdata befinden und fehlende Datenbanken ignoriert werden(aufgrund des Schalters /i am Befehlsende).

Die minimal erforderliche Eseutil.exe-Befehlszeile zum Ausführen von Soft Recovery ist:

ESEUTIL /r Enn

Dieser Befehl funktioniert nur an einer Eingabeaufforderung, die auf das Transaktionsprotokollverzeichnis festgelegt ist. Folgende Punkte müssen bei der Verwendung von Eseutil.exe zum Ausführen von Soft Recovery beachtet werden:

  • Wenn Sie keine Dateipfade auf der Befehlszeile angeben, verwendet Eseutil.exe das aktuelle Befehlszeilenverzeichnis als Standardwert sowohl für Protokolldateien als auch für die Prüfpunktdatei.
  • Datenbankdateien müssen sich nicht im Protokolldateipfad befinden. In den Protokolldateien sind die Datenbankpfade aufgezeichnet, daher erkennt Eseutil.exe alle Datenbankpfade durch Lesen der Protokolldateien. Verwenden Sie den Schalter /D, um die in den Protokolldateien gespeicherten Pfade außer Kraft zu setzen, nur dann, wenn Sie sicher sind, dass die in den Protokolldateien aufgezeichneten Pfade falsch sind.
  • Wenn die Prüfpunktdatei nicht im gleichen Pfad wie die Transaktionsprotokolle vorhanden ist, werden alle Protokolldateien während der Wiedergabe durchsucht, statt die Wiedergabe aus dem Prüfpunktprotokoll zu beginnen. Eine vorhandene Prüfpunktdatei kann vorübergehend in den Protokolldateipfad kopiert werden. Nachdem Soft Recovery abgeschlossen wurde, verwendet Exchange diese Kopie der Prüfpunktdatei nicht mehr im normalen Datenbankbetrieb.
    Wenn die Informationen in der Prüfpunktdatei falsch sind, tritt ein Soft Recovery-Fehler auf; die Datenbank wird dabei jedoch nicht beschädigt. Sie können Soft Recovery erneut ausführen, nachdem Sie die Prüfpunktdatei entfernt oder die richtige gefunden haben. Eine Prüfpunktdatei ist für die erfolgreiche Wiederherstellung nicht unverzichtbar, kann aber in erheblichem Umfang Zeit sparen, wenn Sie über eine große Anzahl Protokolldateien verfügen.

Wenn Sie die Wiederherstellung beginnen möchten, wenn eine Datenbank in der Speichergruppe fehlt, können Sie diesen Befehl verwenden:

ESEUTIL /r Enn /i

Der /i-Schalter bedeutet, dass fehlende Datenbanken ignoriert werden sollen. Wenn Sie diesen Schalter verwenden und die fehlende Datenbank anschließend bereitstellen, fordert Exchange Sie auf, eine neue Datenbank zu erstellen. Wenn Sie planen, die alte Datenbank zu einem bestimmten Zeitpunkt wiederherzustellen, können Sie die neuen Daten nicht in diese wiedergeben. Sie verfügen nun über zwei separate Versionen der gleichen logischen Datenbank.

Dieses Szenario, bei dem eine Datenbank in der Speichergruppe durch eine leere Datenbank ersetzt wurde, stellt eine Situation dar, in der die Speichergruppe für die Wiederherstellung helfen kann. Sie können die zusätzliche Datenbank in der Speichergruppe für die Wiederherstellung bereitstellen und dann ExMerge verwenden, um der einen Datenbank die Inhalte der anderen hinzuzufügen.

Wenn Sie die Wiederherstellung an einem anderen Speicherort beginnen möchten, um eine einzelne Datenbank ohne Auswirkungen auf die anderen Datenbanken in der Speichergruppe wiederherzustellen, sollten Sie einen neuen, leeren Ordner erstellen und die wiederherzustellenden Datenbankdateien, die wiederzugebenden Transaktionsprotokolle und eine Prüfpunktdatei (gegebenenfalls) in diesen Pfad verschieben. Unter diesem Pfad dürfen keine anderen Datenbankdateien vorhanden sein.

Sobald Sie die Datenbanken und Protokolle in einem Ordner isoliert haben, führen Sie im betreffenden Ordner den folgenden Befehl aus:

ESEUTIL /r Enn /i /d

Durch Verwenden des Schalters /d ohne Pfadangabe wird der in den Protokolldateien festgelegte Datenbankpfad überschrieben. Ferner werden, da in diesem Ordner keine weiteren Datenbanken verfügbar sind, die anderen Datenbanken auf dem Server vor diesen bestimmten Wiederherstellungsvorgang verborgen.

Wenn Sie den Parameter /d nicht ordnungsgemäß anwenden, kann sich der Wiederherstellungsvorgang auf andere Datenbanken auf dem Server auswirken. Selbst im ungünstigsten Fall werden andere Datenbanken jedoch nicht durch den Wiederherstellungsvorgang beschädigt. Die Wiederherstellung kann jedoch für die Datenbank, in der Sie aktuell arbeiten, fehlschlagen. Dieser Wiederherstellungsvorgang kann sich sogar auf die Möglichkeit zukünftiger Wiederherstellungen aus Protokolldateien für andere Datenbanken auswirken.

noteAnmerkung:
Die Wahrscheinlichkeit von Fehlern erhöht sich in dem Maß, in dem die Befehlszeile komplexer wird. Als allgemeine Regel sollten Sie die angegebenen Pfadinformationen auf der Befehlszeile bei der Verwendung von Eseutil.exe minimieren. Wechseln Sie in diesem Fall in das Verzeichnis, in dem die Dateien gespeichert sind, und schließen Sie \exchsrvr\bin in den Systempfad ein.

Zum Ausführen von Soft Recovery muss die letzte Protokolldatei in der Wiedergabesequenz den Namen Enn.log aufweisen. Wenn die abschließende Protokolldatei bereits geschlossen und nummeriert wurde, müssen Sie sie umbenennen, damit Soft Recovery erfolgreich ausgeführt werden kann. Diese Anforderung bedeutet nicht, dass Sie die aktuelle Enn.log-Datei ignorieren können, wenn sie beschädigt oder vernichtet wurde, und das vorhergehende Protokoll in der Folge in Enn.log umbenennen können. In Exchange 2000 listet der Logs Required-Wert in den Kopfdaten der Datenbank die Minimalsequenz der für die Wiederherstellung erforderlichen Protokolle auf, beginnend mit dem Prüfpunktprotokoll und fortfahrend bis zum aktuellen Protokoll. Zwar war in früheren Versionen von Exchange kein Logs Required-Wert vorhanden, um die Anwesenheit der erforderlichen Protokolle zu erzwingen, trotzdem trat ein Fehler bei der Wiederherstellung auf, wenn das letzte erforderliche Protokoll nicht gefunden wurde. Der einzige Unterschied zwischen Exchange 2000 und späteren Versionen bestand darin, dass der Fehler in der Wiederherstellung am Ende der Protokolldateiwiedergabe statt am Anfang auftrat.

Hard Recovery

Hard Recovery muss nach dem Wiederherstellen aus einer Onlinesicherung ausgeführt werden. Hard Recovery stellt einen Protokollwiedergabevorgang ähnlich der Soft Recovery dar, es bestehen jedoch einige wichtige Unterschiede. Bei Hard Recovery gilt:

  • Während der Protokolldateiwiedergabe müssen Patchinformationen auf die Datenbank angewendet werden.
  • Die Prüfpunktdatei wird ignoriert. Anstelle der Prüfpunktdatei wird Restore.env verwendet, um zu bestimmen, bei welcher Protokolldatei die Wiederherstellung beginnen soll.
    Exchange 5.5-Administratoren sind möglicherweise mit dem Registrierungschlüssel Wiederherstellung wird ausgeführt vertraut. Restore.env ersetzt die Funktionalität dieses Schlüssels in Exchange 2000. Der Inhalt der Restore.env-Datei kann mithilfe des Befehls Eseutil /cm angezeigt werden.
  • Wenn die Datenbank in einem anderen Pfad als dem wiederhergestellt wurde, aus dem sie gesichert wurde, wird die Protokolldateiwiedergabe erfolgreich ausgeführt, und die in den Protokolldateien angegebenen Datenbankpfade werden ignoriert.
  • Wiederhergestellte Transaktionsprotokolldateien werden zuerst aus einem temporären Ordner wiedergegeben, der vor der Wiederherstellung vom Administrator zugewiesen wird. Darüber hinaus können auch Protokolldateien aus dem normalen Transaktionsprotokollordner wiedergegeben werden.
  • Es tritt kein Fehler in Hard Recovery auf, wenn andere Datenbanken in der Speichergruppe fehlen.

Aus einem Onlinesicherungssatz wiederhergestellte Datenbankdateien (.edb und .stm) werden an den für die Datenbank definierten normalen Pfaden wiederhergestellt. Die Wiederherstellung beginnt mit dem Überschreiben der vorhandenen Datenbankdateien. Wenn die Möglichkeit besteht, dass Sie die vorhandenen Datenbankdateien in Zukunft noch benötigen, müssen Sie sie verschieben oder sichern, bevor Sie die Onlinesicherung wiederherstellen. Bedenken Sie, dass die Wiederherstellung der Onlinesicherung aus einer Reihe von Gründen fehlschlagen kann. Selbst, wenn die vorhandenen Datenbankdateien im Moment nicht gestartet werden können, sind sie wahrscheinlich noch zu reparieren, und die Daten können gegebenenfalls noch gerettet werden.

Wenn Sie mit der Wiederherstellung einer Onlinesicherung beginnen, fordert Sie Exchange auf, einen Speicherort für einen temporären Ordner anzugeben. Das Sicherungsprogramm stellt Transaktionsprotokolldateien aus dem Sicherungssatz an diesem Speicherort wieder her, nicht im normalen Pfad für Transaktionsprotokolldateien. Darüber hinaus erstellt das Sicherungsprogramm die Datei Restore.env im temporären Ordner.

Die Funktion der Datei Restore.env bei der Hard Recovery ist der einer Prüfpunktdatei bei Soft Recovery ähnlich. Restore.env definiert den Bereich der Transaktionsprotokolldateien, die für die Hard Recovery im temporären Ordner vorhanden sein müssen. Wenn Sie weitere Dateien im temporären Ordner platzieren – Protokolle, die außerhalb des in Restore.env aufgelisteten Bereichs liegen – werden diese nicht wiedergegeben und möglicherweise vom Wiederherstellungsprozess gelöscht.

Möglicherweise verfügen Sie über zusätzliche Protokolldateien für die Wiedergabe, die nicht aus einem Onlinesicherungssatz stammen. Platzieren Sie in diesem Fall die betreffenden Protokolle im normalen Ordner für die Transaktionsprotokolle der Speichergruppe und nicht im temporären Ordner. Nachdem Hard Recovery die Wiedergabe der aus dem Sicherungssatz wiederhergestellten Protokolle beendet hat, überprüft der Prozess den normalen Transaktionsprotokollordner, um festzustellen, ob das nächste Protokoll in der Reihenfolge verfügbar ist.

noteAnmerkung:
Wenn Sie die Wiederherstellung auf einem anderen Server ausführen oder die ursprüngliche Datenbank gelöscht und neu erstellt haben, werden nur die Transaktionsprotokolle im temporären Ordner wiedergegeben. Transaktionsprotokolle im normalen Datenbankordner werden nicht wiedergegeben. Durch diese Unterscheidung werden Konflikte bei der Wiedergabe von Transaktionsprotokollen in Fällen vermieden, in denen Exchange bekannt ist, dass die Datenbank, in der die Wiederherstellung ausgeführt wird, nicht die Datenbank ist, aus der die Sicherung erfolgte. Eine unter diesen Umständen wiederhergestellte Datenbank wird als Opferdatenbank bezeichnet.
noteAnmerkung:
Sie können zusätzliche Transaktionsprotokolle für eine Opferdatenbank wiedergeben, indem Sie sie im temporären Ordner platzieren. In diesem Sonderfall werden sie vom Wiederherstellungsprozess nicht gelöscht oder ignoriert sondern wiedergegeben. Wenn Sie sich hinsichtlich der Umgebung für die Wiederherstellung nicht sicher sind, platzieren Sie Kopien der zusätzlichen Transaktionsprotokolle sowohl im temporären Ordner als auch im normalen Datenbankordner. Unabhängig vom Opferstatus der Datenbank gibt der Wiederherstellungsprozess den einen oder den anderen Protokollsatz wieder. Bei der Wiederherstellung in einer Speichergruppe für die Wiederherstellung funktioniert die Wiedergabe in der gleichen Weise wie beim Wiederherstellen in einer ursprünglichen Speichergruppe. Sie können zusätzliche Protokolle im Datenbankordner der Speichergruppe für die Wiederherstellung platzieren, und zusätzliche Protokolle im temporären Ordner werden ignoriert und gelöscht.

Angenommen, sechs Protokolldateien, E0000003.log bis E0000008.log, werden aus der Sicherung in den temporären Ordner wiederhergestellt. Nach der Wiedergabe dieser Protokolldateien untersucht die Wiederherstellung den aktuell ausgeführten Protokollordner auf eine Datei E0000009.log, die zur gleichen Protokollsequenz gehört. Interne Markierungen in den Protokolldateien identifizieren sie als zusammengehörig. Die Entscheidung für die Fortsetzung der Wiedergabe wird nicht nur auf der Basis des Protokolldateinamens getroffen.

Wenn Protokolldatei 9 gefunden wird, wird die Wiedergabe solange fortgesetzt, wie das jeweils nächste Protokoll in der Serie verfügbar ist. Wenn Protokolldatei 9 nicht vorhanden ist, erstellt der Wiederherstellungsprozess eine neue Protokolldatei mit dem Namen E00.log im temporären Ordner. Diese Protokolldatei wird nur verwendet, um die für ein Herunterfahren der Datenbank in einem konsistenten Status erforderlichen Änderungen aufzuzeichnen. An diesem Punkt ist die Datenbank vollständig wiederhergestellt. Sie wird automatisch neu gestartet und an die aktuelle Protokolldatei in der Speichergruppe angefügt. Anschließend löscht der Wiederherstellungsprozess alle Dateien im temporären Verzeichnis.