Wiederherstellen einer Datenbank bis zu einem Punkt in einer Sicherung

Dieses Thema ist nur für SQL Server-Datenbanken relevant, die das vollständige oder massenprotokollierte Wiederherstellungsmodell verwenden.

Es kann vorkommen, dass Sie eine Datenbank bis zu einem bestimmten Zeitpunkt, bis zu einer bestimmten Markierung oder Protokollfolgenummer (LSN, Log Sequence Number) vor dem Auftreten eines Fehlers wiederherstellen möchten. Wenn z. B. durch eine Transaktion Daten fehlerhaft geändert wurden, sollten Sie den Status der Datenbank bis zu einem Wiederherstellungszeitpunkt vor der Eingabe der fehlerhaften Daten wiederherstellen. Jede Wiederherstellung, die den Wiederherstellungspunkt für die Datenbank angibt, wird als eine Wiederherstellung bis zu einem bestimmten Zeitpunkt bezeichnet.

Die folgende Abbildung zeigt eine Wiederherstellung bis zu einem Wiederherstellungspunkt in der Mitte eines Transaktionsprotokolls, das zum Zeitpunkt t9 erfasst wurde. Änderungen im Rest der Sicherung und in der folgenden, zum Zeitpunkt t10 erfassten Protokollsicherung werden verworfen.

Wiederherstellung bis zu einem Punkt in der Mitte einer Protokollsicherung

Der Zielwiederherstellungspunkt wird mit einem der folgenden Elemente angegeben:

  • Einem bestimmten Zeitpunkt innerhalb eines Transaktionsprotokolls.

  • Einer benannten Markierung, die in einen Transaktionsprotokolldatensatz eingefügt wurde.

  • Einer Protokollfolgenummer (Log Sequence Number, LSN).

HinweisHinweis

Das Wiederherstellen bis zu einer LSN ist ein auf Anbieter von Tools zugeschnittenes Feature, das nur in speziellen Fällen anzuwenden ist.

Eine angegebene Zeit oder Transaktion wird immer aus einer Protokollsicherung wiederhergestellt, sodass der Zielwiederherstellungspunkt in der Sicherung für ein Transaktionsprotokoll enthalten sein muss. Wenn Sie eine Datenbank für einen bestimmten Zeitpunkt oder eine bestimmte Transaktion wiederherstellen möchten, geben Sie den Zielwiederherstellungspunkt in einer STOPAT-, STOPATMARK- oder STOPBEFOREMARK-Klausel an. In jeder RESTORE LOG-Anweisung der Wiederherstellungssequenz müssen Sie den Zielzeitpunkt oder die Transaktion in einer identischen STOPAT-, STOPATMARK- oder STOPBEFOREMARK-Klausel angeben. Wenn Sie die Protokollsicherung mit dem Wiederherstellungspunkt anwenden, können Sie nur Transaktionen wiederherstellen, die vor diesem Zeitpunkt liegen.

Als Voraussetzung für eine Zeitpunktwiederherstellung müssen Sie zuerst eine vollständige Datenbanksicherung wiederherstellen, deren Endpunkt vor dem Zielwiederherstellungspunkt liegt. Damit Sie besser ermitteln können, welche Datenbanksicherung wiederhergestellt werden soll, können Sie optional die WITH STOPAT-, STOPATMARK- oder STOPBEFOREMARK-Klausel in einer RESTORE DATABASE-Anweisung angeben, um einen Fehler auszulösen, wenn eine Datensicherung zu aktuell für den angegebenen Zielzeitpunkt ist. Die vollständige Datensicherung wird jedoch immer wiederhergestellt, auch wenn sie den Zielzeitpunkt enthält.

HinweisHinweis

Die Protokollsicherung muss sich unter demselben Wiederherstellungspfad befinden wie die vollständige Datenbanksicherung oder die Teilsicherung, die am Beginn der Wiederherstellungssequenz bis zu einem bestimmten Zeitpunkt wiederhergestellt wird.

Wenn die Wiederherstellung abgeschlossen ist, wird die Zeit der Datenbank anhand des Wiederherstellungszeitpunktes bestimmt, bis zu dem Sie die primäre Datei wiederhergestellt haben. Etwaige nachfolgende Wiederherstellungen benötigen Wiederherstellungspunkte, die mit der Datenbank zu diesem Zeitpunkt konsistent sind.

Wenn in einer Teilwiederherstellungssequenz eine FILESTREAM-Dateigruppe ausgeschlossen wird, wird die Wiederherstellung bis zu einem bestimmten Zeitpunkt nicht unterstützt. Sie können das Fortsetzen der Wiederherstellungssequenz erzwingen. Die FILESTREAM-Dateigruppen, die nicht in die RESTORE-Anweisung eingeschlossen werden, können jedoch zu keinem Zeitpunkt wiederhergestellt werden. Wenn Sie eine Wiederherstellung bis zu einem bestimmten Zeitpunkt erzwingen möchten, geben Sie die CONTINUE_AFTER_ERROR-Option zusammen mit der Option STOPAT, STOPATMARK oder STOPBEFOREMARK an. Diese müssen Sie auch in den folgenden RESTORE LOG-Anweisungen angeben. Wenn Sie CONTINUE_AFTER_ERROR angeben, ist die Teilwiederherstellungssequenz erfolgreich und die FILESTREAM-Dateigruppe wird unwiederherstellbar.

HinweisHinweis

Wenn jedoch beim massenprotokollierten Wiederherstellungsmodell die Protokollsicherung massenprotokollierte Änderungen enthält, ist die Wiederherstellung bis zu einem bestimmten Zeitpunkt nicht möglich. Die Datenbank muss bis zum Ende einer Transaktionsprotokollsicherung wiederhergestellt werden.

In diesem Abschnitt