Dateiwiederherstellungen (vollständiges Wiederherstellungsmodell)
Gilt für: SQL Server
Dieses Thema ist nur für Datenbanken relevant, die mehrere Dateien oder Dateigruppen enthalten, die das vollständige oder massenprotokollierte Wiederherstellungsmodell verwenden.
Das Ziel einer Dateiwiederherstellung besteht darin, eine oder mehrere beschädigte Dateien wiederherzustellen, ohne dabei die gesamte Datenbank wiederherstellen zu müssen. Ein Dateiwiederherstellungsszenario besteht aus einer einzigen Wiederherstellungssequenz, bei der die entsprechenden Daten kopiert werden, ein Rollforward ausgeführt wird und die Daten wiederhergestellt werden.
Wenn die wiederherzustellende Dateigruppe Lese-/Schreibzugriff aufweist, muss nach der Wiederherstellung der letzten Daten bzw. der letzten differenziellen Sicherung eine fortlaufende Kette von Protokollsicherungen angewendet werden. Auf diese Weise wird die Dateigruppe auf den Stand der Protokolldatensätze in der aktuellen Protokolldatei gebracht. Der Wiederherstellungspunkt befindet sich normalerweise – aber nicht zwingend – gegen Ende der Protokolldatei.
Ist die wiederherzustellende Dateigruppe schreibgeschützt, müssen normalerweise keine Protokollsicherungen angewendet werden; dieser Schritt wird daher ausgelassen. Wenn die Sicherung durchgeführt wurde, nachdem die Datei schreibgeschützt worden war, ist dies die letzte Sicherung, die wiederhergestellt werden muss. Die Ausführung des Rollforwards endet am Zielpunkt.
Für die Dateiwiederherstellung sind folgende Szenarien möglich:
Offlinedateiwiederherstellung
Bei einer Offlinedateiwiederherstellungist die Datenbank offline, während die beschädigten Dateien oder Dateigruppen wiederhergestellt werden. Am Ende der Wiederherstellungssequenz wird die Datenbank wieder online geschaltet.
Offlinewiederherstellungen werden von allen Editionen von SQL Server unterstützt.
Onlinedateiwiederherstellung
Bei einer Onlinedateiwiederherstellungbleibt die Datenbank online, wenn die Datenbank während einer Dateiwiederherstellung online ist. Dateigruppen, in denen eine Datei wiederhergestellt wird, sind während des Wiederherstellungsvorgangs jedoch offline. Sobald die Dateien einer Offlinedateigruppe wiederhergestellt sind, wird die Dateigruppe automatisch wieder online geschaltet.
Informationen zur Unterstützung von Onlinewiederherstellungen von Seiten und Dateien finden Sie unter Editionen und unterstützte Funktionen für SQL Server 2022. Weitere Informationen zur Onlinewiederherstellung finden Sie unter Onlinewiederherstellung(SQL Server).
Tipp
Wenn Sie die Datenbank für eine Dateiwiederherstellung offline schalten möchten, tun Sie dies vor dem Starten der Wiederherstellungssequenz, indem Sie die folgende ALTER DATABASE -Anweisung ausführen: ALTER DATABASE Datenbankname SET OFFLINE.
Wiederherstellen von beschädigten Dateien aus Dateisicherungen
Erstellen Sie vor dem Wiederherstellen von beschädigten Dateien nach Möglichkeit eine Sicherung des Protokollfragments.
Wenn das Protokoll beschädigt wurde, kann keine Sicherung des Protokollfragments erstellt werden, und Sie müssen die gesamte Datenbank wiederherstellen.
Informationen zum Sichern eines Transaktionsprotokolls finden Sie unter Transaktionsprotokollsicherungen (SQL Server).
Wichtig
Bei einer Offlinedateiwiederherstellung müssen Sie immer im Voraus eine Sicherung des Protokollfragments erstellen. Bei einer Onlinedateiwiederherstellung müssen Sie die Sicherung des Protokollfragments immer danach erstellen. Die Protokollsicherung ist erforderlich, um für die wiederherzustellenden Dateien einen mit der restlichen Datenbank konsistenten Status zu gewährleisten.
Stellen Sie jede beschädigte Datei von der letzten Dateisicherung dieser Datei wieder her.
Stellen Sie für jede wiederhergestellte Datei die letzte differenzielle Dateisicherung wieder her (falls vorhanden).
Stellen Sie Transaktionsprotokollsicherungen in der chronologischen Reihenfolge wieder her, beginnend mit der Sicherung für die älteste der wiederhergestellten Dateien bis hin zu der in Schritt 1 erstellen Sicherung des Protokollfragments.
Um eine Datenbank in einen konsistenten Status zu versetzen, müssen Sie die Transaktionsprotokollsicherungen wiederherstellen, die nach den Dateisicherungen erstellt wurden. Für die Transaktionsprotokollsicherungen kann schnell ein Rollforward ausgeführt werden, weil nur die Änderungen, die die wiederhergestellten Dateien betreffen, angewendet werden. Die Wiederherstellung einzelner Dateien ist der Wiederherstellung der gesamten Datenbank vorzuziehen, da nicht beschädigte Dateien dann nicht kopiert werden müssen und für diese Dateien auch kein Rollforward ausgeführt werden muss. Es muss jedoch trotzdem die gesamte Kette der Protokollsicherungen gelesen werden.
Stellen Sie die Datenbank wieder her.
Hinweis
Mit Dateisicherungen kann der Status der Datenbank zu einem früheren Zeitpunkt wiederhergestellt werden. Dazu müssen Sie einen vollständigen Dateisicherungssatz wiederherstellen und anschließend die Transaktionsprotokollsicherungen in der chronologischen Reihenfolge wiederherstellen, um einen Zielpunkt zu erreichen, der nach dem Ende der letzten wiederhergestellten Dateisicherung liegt. Weitere Informationen zur Zeitpunktwiederherstellung finden Sie unter Wiederherstellen einer SQL Server-Datenbank zu einem Zeitpunkt (vollständiges Wiederherstellungsmodell).
Transact-SQL-Wiederherstellungssequenz für die Offlinedateiwiederherstellung (vollständiges Wiederherstellungsmodell)
Ein Dateiwiederherstellungsszenario besteht aus einer einzigen Wiederherstellungssequenz, bei der die entsprechenden Daten kopiert werden, ein Rollforward ausgeführt wird und die Daten wiederhergestellt werden.
In diesem Abschnitt werden die grundlegenden RESTORE -Optionen für eine vollständige Dateiwiederherstellungssequenz erläutert. Hierfür unwichtige Syntax und Informationen werden ausgelassen.
Die folgende Beispielwiederherstellungssequenz zeigt eine Offlinewiederherstellung von zwei sekundären Dateien ( A
und B
) mit WITH NORECOVERY. Anschließend werden zwei Protokollsicherungen mit NORECOVERY angewendet, gefolgt von der Sicherung des Protokollfragments, die mit WITH RECOVERY wiederhergestellt wird.
Hinweis
Die folgende Beispielwiederherstellungssequenz startet, indem sie die Datei offline schaltet und dann eine Sicherung des Protokollfragments erstellt.
--Take the file offline.
ALTER DATABASE database_name MODIFY FILE SET OFFLINE;
-- Back up the currently active transaction log.
BACKUP LOG database_name
TO <tail_log_backup>
WITH NORECOVERY;
GO
-- Restore the files.
RESTORE DATABASE database_name FILE=name
FROM <file_backup_of_file_A>
WITH NORECOVERY;
RESTORE DATABASE database_name FILE=<name> ......
FROM <file_backup_of_file_B>
WITH NORECOVERY;
-- Restore the log backups.
RESTORE LOG database_name FROM <log_backup>
WITH NORECOVERY;
RESTORE LOG database_name FROM <log_backup>
WITH NORECOVERY;
RESTORE LOG database_name FROM <tail_log_backup>
WITH RECOVERY;
Beispiele
Related Tasks
So stellen Sie Dateien und Dateigruppen wieder her
Weitere Informationen
Sicherung und Wiederherstellung: Interoperabilität und gleichzeitige Verwendung (SQL Server)
Differenzielle Sicherungen (SQL Server)
Vollständige Dateisicherungen (SQL Server)
Backup Overview (SQL Server)
Übersicht über Wiederherstellungsvorgänge (SQL Server)
RESTORE (Transact-SQL)
Vollständige Datenbankwiederherstellungen (einfaches Wiederherstellungsmodell)
Schrittweise Wiederherstellungen (SQL Server)