Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
In diesem Thema wird beschrieben, wie Sie eine Datenbank zu einem bestimmten Zeitpunkt in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL wiederherstellen. Dieses Thema ist nur für SQL Server-Datenbanken relevant, die das vollständige oder massenprotokollierte Wiederherstellungsmodell verwenden.
Wichtig
Wenn jedoch beim massenprotokollierten Wiederherstellungsmodell die Protokollsicherung massenprotokollierte Änderungen enthält, ist die Zeitpunktwiederherstellung nicht möglich. Die Datenbank muss bis zum Ende der Transaktionsprotokollsicherung wiederhergestellt werden.
Vorbereitungen:
Wiederherstellen einer SQL Server-Datenbank zu einem bestimmten Zeitpunkt mit:
Bevor Sie beginnen
Empfehlungen
Verwenden Sie STANDBY, um einen unbekannten Zeitpunkt zu bestimmen.
Zeitpunkt früh in einer Wiederherstellungssequenz angeben
Sicherheit
Berechtigungen
Wenn die wiederherzustellende Datenbank nicht existiert, muss der Benutzer über die Berechtigungen CREATE DATABASE verfügen, um RESTORE ausführen zu können. Wenn die Datenbank vorhanden ist, RESTORE gelten standardmäßig Berechtigungen für Mitglieder der festen Serverrollen sysadmin und dbcreator sowie für den Besitzer (dbo) der Datenbank (bei der Option FROM DATABASE_SNAPSHOT ist die Datenbank immer vorhanden).
RESTORE-Berechtigungen werden Rollen zugewiesen, bei denen die Mitgliedschaftsinformationen dem Server stets unmittelbar zur Verfügung stehen. Da die Mitgliedschaft in einer festen Datenbankrolle nur überprüft werden kann, wenn die Datenbank zugänglich und unbeschädigt ist, was bei der Ausführung von RESTORE nicht immer der Fall ist, verfügen Mitglieder der festen Datenbankrolle db_owner nicht über die Berechtigungen RESTORE.
Verwendung von SQL Server Management Studio
Eine Datenbank zu einem bestimmten Zeitpunkt wiederherstellen
Verbinden Sie sich im Objekt-Explorer mit der entsprechenden Instanz der SQL Server-Datenbank-Engine und erweitern Sie die Serverstruktur.
Erweitern Sie Datenbanken. Wählen Sie je nach Datenbank entweder eine Benutzerdatenbank aus, oder erweitern Sie Systemdatenbanken, und wählen Sie eine Systemdatenbank aus.
Klicken Sie mit der rechten Maustaste auf die Datenbank, zeigen Sie auf Tasks, zeigen Sie auf Wiederherstellung, und klicken Sie anschließend auf Datenbank.
Legen Sie Quelle und Speicherort der wiederherzustellenden Sicherungssätze auf der Seite Allgemein mithilfe des Abschnitts Quelle fest. Wählen Sie eine der folgenden Optionen aus:
Datenbank
Wählen Sie die wiederherzustellende Datenbank aus der Dropdownliste aus. Die Liste enthält nur Datenbanken, die entsprechend dem Sicherungsverlauf von msdb gesichert wurden.
Hinweis
Wenn die Sicherung von einem anderen Server abgerufen wird, verfügt der Zielserver über keine Sicherungsverlaufsinformationen für die angegebene Datenbank. Wählen Sie in diesem Fall Gerät aus, um die wiederherzustellende Datei oder das Gerät manuell festzulegen.
Gerät
Klicken Sie auf die Schaltfläche zum Durchsuchen (...), um das Dialogfeld Sicherungsmedien auswählen zu öffnen. Wählen Sie im Feld Sicherungsmedientyp einen der aufgeführten Medientypen aus. Wenn Sie ein oder mehrere Medien für das Feld Sicherungsmedien auswählen möchten, klicken Sie auf Hinzufügen.
Klicken Sie nach dem Hinzufügen der gewünschten Medien zum Listenfeld Sicherungsmedien auf OK , um zur Seite Allgemein zurückzukehren.
Wählen Sie im Listenfeld Quelle: Sicherungsmedium: Datenbank den Namen der Datenbank aus, die wiederhergestellt werden soll.
Hinweis Diese Liste ist nur verfügbar, wenn Gerät ausgewählt ist. Nur Datenbanken mit Sicherungen auf dem ausgewählten Medium stehen zur Verfügung.
Im Abschnitt Ziel wird das Feld Datenbank automatisch mit dem Namen der Datenbank aufgefüllt, die wiederhergestellt werden soll. Geben Sie zum Ändern des Datenbanknamens den neuen Namen ins Feld Datenbank ein.
Klicken Sie auf Zeitleiste, um das Dialogfeld Sicherungszeitleiste zu öffnen.
Im Abschnitt Wiederherstellen auf klicken Sie auf Bestimmtes Datum und bestimmte Zeit.
Verwenden Sie die Felder Datum und Uhrzeit oder den Schieberegler, um ein bestimmtes Datum und eine bestimmte Uhrzeit anzugeben, für den bzw. die die Wiederherstellung beendet werden soll. Wählen Sie OK aus.
Hinweis
Ändern Sie im Feld Zeitachsenintervall die auf der Zeitachse angezeigte Zeitdauer.
Nachdem Sie einen bestimmten Zeitpunkt angegeben haben, stellt der Datenbankwiederherstellungsberater sicher, dass in der Spalte Wiederherstellen des Rasters Wiederherzustellende Sicherungssätze nur die Sicherungen ausgewählt sind, die für die Wiederherstellung zu diesem Zeitpunkt erforderlich sind. Diese ausgewählten Sicherungen bilden den empfohlenen Wiederherstellungsplan für Ihre Wiederherstellung zu einem bestimmten Zeitpunkt. Sie sollten für Ihre Point-in-Time-Wiederherstellung nur die ausgewählten Sicherungen verwenden.
Weitere Informationen zu den Spalten des Rasters Wiederherzustellende Sicherungssätze finden Sie unter Datenbank wiederherstellen (Seite Allgemein). Informationen zum Datenbank Wiederherstellungs-Berater finden Sie unter Übersicht über Wiederherstellungsvorgänge (SQL Server).
Auf der Seite Optionen im Bereich Wiederherstellungsoptionen können Sie entsprechend Ihren Anforderungen die folgenden Optionen auswählen:
Vorhandene Datenbank überschreiben (WITH REPLACE)
Replikationseinstellungen beibehalten (WITH KEEP_REPLICATION)
Zugriff auf die wiederhergestellte Datenbank einschränken (WITH RESTRICTED_USER)
Weitere Informationen zu diesen Optionen finden Sie unter Datenbank wiederherstellen (Seite Optionen).
Aktivieren Sie eine Option für das Feld Wiederherstellungsstatus . In diesem Feld wird der Status der Datenbank nach dem Wiederherstellungsvorgang bestimmt.
RESTORE WITH RECOVERY ist das Standardverhalten, das die Datenbank betriebsbereit belässt, indem für Transaktionen ohne Commit ein Rollback ausgeführt wird. Zusätzliche Transaktionsprotokolle können nicht wiederhergestellt werden. Wählen Sie diese Option nur aus, wenn Sie alle benötigten Sicherungen jetzt wiederherstellen möchten.
RESTORE WITH NORECOVERY belässt die Datenbank nicht betriebsbereit und führt kein Rollback für Transaktionen ohne Commit aus. Zusätzliche Transaktionsprotokolle können wiederhergestellt werden. Die Datenbank kann erst verwendet werden, wenn sie wiederhergestellt wurde.
RESTORE WITH STANDBY wodurch die Datenbank im schreibgeschützten Modus verbleibt. Diese Option macht Transaktionen rückgängig, für die noch kein Commit ausgeführt wurde, speichert die Aktionen zum Rückgängigmachen aber in einer Standbydatei, damit die Auswirkungen der Wiederherstellung rückgängig gemacht werden können.
Die Beschreibungen der Optionen finden Sie unter Datenbank wiederherstellen (Optionsseite).
Erstellen der Sicherung des Protokollfragments vor dem Wiederherstellen wird ausgewählt, wenn es für den ausgewählten Zeitpunkt erforderlich ist. Sie müssen diese Einstellung nicht ändern, können aber auch dann das Ende des Protokolls sichern, wenn dies nicht erforderlich ist.
Bei Wiederherstellungsvorgängen treten möglicherweise Fehler auf, wenn aktive Verbindungen zur Datenbank bestehen. Aktivieren Sie die Option Bestehende Verbindungen schließen, um sicherzustellen, dass alle aktiven Verbindungen zwischen Management Studio und der Datenbank geschlossen werden. Durch die Aktivierung dieses Kontrollkästchens wechselt die Datenbank in einen Einzelbenutzermodus, bevor Wiederherstellungsvorgänge ausgeführt werden. Außerdem wird dadurch die Datenbank auf einen Multibenutzermodus festgelegt, wenn der Vorgang abgeschlossen ist.
Wählen Sie Bestätigung vor Wiederherstellen jeder einzelnen Sicherung aus, wenn Sie zwischen jedem Wiederherstellungsvorgang zur Bestätigung aufgefordert werden möchten. Dies ist in der Regel nur bei großen Datenbanken und bei der gewünschten Überwachung des Status des Wiederherstellungsvorgangs erforderlich.
Verwenden von Transact-SQL
Vorbereitung
Ein angegebener Zeitpunkt wird immer aus einer Protokollsicherung wiederhergestellt. In jeder RESTORE LOG-Anweisung der Wiederherstellungssequenz müssen Sie Ihre Zielzeit oder Transaktion in derselben STOPAT-Klausel angeben. Als Voraussetzung für eine Wiederherstellung zu einem bestimmten Zeitpunkt müssen Sie zunächst eine vollständige Datenbanksicherung wiederherstellen, deren Abschlusszeitpunkt vor Ihrem angestrebten Wiederherstellungszeitpunkt liegt. Diese vollständige Datenbanksicherung kann älter als die letzte vollständige Datenbanksicherung sein, solange Sie dann jede nachfolgende Protokollsicherung wiederherstellen, bis zu und einschließlich der Protokollsicherung, die den Zielzeitpunkt enthält.
Um zu ermitteln, welche Datenbanksicherung wiederhergestellt werden soll, können Sie optional Ihre WITH STOPAT-Klausel in Ihrer RESTOREDATABASE Anweisung angeben, um einen Fehler auszuheben, wenn eine Datensicherung zu kürzlich für die angegebene Zielzeit ist. Die vollständige Datensicherung wird immer wiederhergestellt, auch wenn sie den Zielzeitpunkt enthält.
Grundlegende Transact-SQL-Syntax
RESTORE LOG database_name FROM <backup_device> WITH STOPAT =time, RECOVERY...
Der Wiederherstellungszeitpunkt ist das letzte Transaktions-Commit, das zum oder vor dem datetime-Wert erfolgt ist, der durch time angegeben wird.
Wenn Sie nur die Änderungen vor einem bestimmten 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.
Eine Datenbank zu einem bestimmten Zeitpunkt wiederherstellen
Hinweis
Ein Beispiel für diese Prozedur finden Sie weiter unten in diesem Abschnitt unter Beispiel (Transact-SQL).
Stellen Sie eine Verbindung mit der Serverinstanz her, auf der Sie die Datenbank wiederherstellen möchten.
Führen Sie die RESTOREDATABASE Anweisung unter Verwendung der Option NORECOVERY aus.
Hinweis
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 aus Ihrer RESTORE Anweisung weggelassen werden, können jedoch nie wiederhergestellt werden. Um eine Point-in-Time-Wiederherstellung zu erzwingen, geben Sie die option CONTINUE_AFTER_ERROR zusammen mit der Option STOPAT, STOPATMARK oder STOPBEFOREMARK an, die Sie auch in den nachfolgenden RESTORE LOG-Anweisungen angeben müssen. Wenn Sie CONTINUE_AFTER_ERROR angeben, ist die Teilwiederherstellungssequenz erfolgreich, und die FILESTREAM-Dateigruppe wird nicht mehr wiederherstellbar.
Stellen Sie die letzte differenzielle Datenbanksicherung wieder her, sofern vorhanden, ohne dabei die Datenbank wiederherzustellen (RESTOREDATABASEdatabase_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 (RESTOREDATABASEdatabase_name FROM <backup_device> WITH STOPAT =time, RECOVERY).
Hinweis
Die Optionen RECOVERY und STOPAT. Wenn die Transaktionsprotokollsicherung den geforderten Zeitpunkt nicht enthält (z. B. wenn der angegebene Zeitpunkt hinter dem Zeitpunkt liegt, bis zu dem das Transaktionsprotokoll reicht), wird eine Warnung erzeugt, und die Datenbank wird nicht wiederhergestellt.
Beispiel (Transact-SQL)
Im folgenden Beispiel wird eine Datenbank auf den Stand von 12:00 AM am April 15, 2020 wiederhergestellt, und es wird ein Wiederherstellungsvorgang gezeigt, bei dem mehrere Protokollsicherungen einbezogen werden. Auf dem Sicherungsmedium ( AdventureWorksBackups) ist die wiederherzustellende vollständige Datenbanksicherung der dritte Sicherungssatz (FILE = 3), die erste Protokollsicherung ist der vierte Sicherungssatz (FILE = 4), und die zweite Protokollsicherung ist der fünfte Sicherungssatz (FILE = 5).
Wichtig
Für die AdventureWorks2025 -Datenbank wird das einfache Wiederherstellungsmodell verwendet. Um Protokollsicherungen zu ermöglichen, wurde die Datenbank vor dem Erstellen einer vollständigen Datenbanksicherung mithilfe von ALTER DATABASE AdventureWorks SET RECOVERY FULL für das vollständige Wiederherstellungsmodell konfiguriert.
RESTORE DATABASE AdventureWorks
FROM AdventureWorksBackups
WITH FILE=3, NORECOVERY;
RESTORE LOG AdventureWorks
FROM AdventureWorksBackups
WITH FILE=4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE LOG AdventureWorks
FROM AdventureWorksBackups
WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks WITH RECOVERY;
GO
Verwandte Aufgaben
Wiederherstellen einer Datenbank bis zu einer markierten Transaktion (SQL Server Management Studio)
ToPointInTime (SMO)
Siehe auch
backupset (Transact-SQL)
RESTORE (Transact-SQL)
RESTORE HEADERONLY (Transact-SQL)