Freigeben über


Wiederherstellen bis zu einem bestimmten Zeitpunkt

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

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 der Transaktionsprotokollsicherung wiederhergestellt werden.

So führen Sie eine Wiederherstellung bis zu einem bestimmten Zeitpunkt aus

Transact-SQL-Syntax zum Wiederherstellen zu einem bestimmten Zeitpunkt

Die Wiederherstellung zu einem bestimmten Zeitpunkt erfolgt immer aus einer Protokollsicherung. In jeder RESTORE LOG-Anweisung der Wiederherstellungssequenz müssen Sie den Zielzeitpunkt oder die Transaktion in einer identischen STOPAT-Klausel angeben. Als Voraussetzung für eine Zeitpunktwiederherstellung müssen Sie zuerst eine vollständige Datenbanksicherung wiederherstellen, deren Endpunkt vor dem Zielzeitpunkt der Wiederherstellung liegt. Diese vollständige Datenbanksicherung kann älter als die letzte vollständige Datenbanksicherung sein, wenn Sie danach jede folgende Protokollsicherung wiederherstellen, bis einschließlich der Protokollsicherung, die den Zielzeitpunkt enthält.

Damit Sie besser ermitteln können, welche Datenbanksicherung wiederhergestellt werden soll, können Sie optional die WITH STOPAT-Klausel in der 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 immer wiederhergestellt, auch wenn sie den Zielzeitpunkt enthält.

Die grundlegende Syntax lautet:

RESTORE LOG database_name FROM <backup_device> WITH STOPAT =time, RECOVERY…

Der Wiederherstellungszeitpunkt ist der Transaktionscommit, der zuletzt vor oder genau zu dem gegebenen datetime-Wert erfolgte, der für time angegeben wird.

Wenn Sie nur die Änderungen vor dem angegebenen Zeitpunkt wiederherstellen möchten, geben Sie für die einzelnen Sicherungen, die Sie wiederherstellen, WITH STOPAT **=**time an. Damit stellen Sie sicher, dass der Zielzeitpunkt nicht überschritten wird.

Normalerweise umfasst die Wiederherstellungssequenz bis zu einem bestimmten Zeitpunkt folgende Phasen:

  • Stellen Sie die letzte vollständige Sicherung wieder her und – sofern vorhanden – die letzte vollständige differenzielle Datenbanksicherung, ohne dabei die Datenbank wiederherzustellen (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY).

  • Wenden Sie jede einzelne Transaktionsprotokollsicherung in derselben Reihenfolge an, in der sie erstellt wurde, und geben Sie dabei den Zeitpunkt an, zu dem die Wiederherstellung des Protokolls beendet werden soll (RESTORE DATABASE database_name FROM <backup_device> WITH STOPAT**=time,** RECOVERY).

Weitere Informationen finden Sie unter Wiederherstellen einer Datenbank bis zu einem Punkt in einer Sicherung.