Übersicht über Wiederherstellungsvorgänge (SQL Server)
Gilt für: SQL Server
Dieser Artikel gibt einen Überblick über den Prozess der Datenbankwiederherstellung und -wiederherstellung für SQL Server.
Übersicht
Um eine SQL Server-Datenbank nach einem Ausfall wiederherzustellen, muss ein Datenbankadministrator einen Satz von SQL Server-Sicherungen im Rahmen einer logisch folgerichtigen und sinnvollen Wiederherstellungssequenz wiederherstellen. SQL Server Restore mit Recovery unterstützt folgendermaßen die Wiederherstellung von Daten aus Sicherungskopien einer ganzen Datenbank, einer Datendatei oder einer Datenseite:
Datenbank ( Vollständige Datenbankwiederherstellung)
Die gesamte Datenbank wird wiederhergestellt. Während des Wiederherstellungsvorgangs ist die Datenbank offline.
Datendatei ( Dateiwiederherstellung)
Mindestens eine Datendatei wird wiederhergestellt. Während einer Dateiwiederherstellung sind die Dateigruppen, die die Dateien enthalten, automatisch offline. Wenn Sie versuchen, auf eine Offlinedateigruppe zuzugreifen, verursacht dies einen Fehler.
Datenseite ( Seitenwiederherstellung)
Mit dem vollständigen Wiederherstellungsmodell oder dem massenprotokollierten Wiederherstellungsmodell können Sie einzelne Seiten wiederherstellen. Die Seitenwiederherstellung kann unabhängig von der Anzahl der Dateigruppen für jede Datenbank ausgeführt werden.
SQL Server-Sicherung und -Wiederherstellung funktioniert unter allen unterstützten Betriebssystemen. Informationen zu den unterstützten Betriebssystemen finden Sie unter Hardware- und Softwareanforderungen für die Installation von SQL Server. Informationen zur Unterstützung von Sicherungskopien früherer SQL Server-Versionen finden Sie im Kapitel RESTORE im Abschnitt „Kompatibilitätsunterstützung“.
Wiederherstellungsszenarien
Ein Wiederherstellungsszenario in SQL Server ist ein Prozess, der die Datenbank aus Daten von mindestens einer Sicherungskopie wiederherstellt. Die unterstützten Wiederherstellungsszenarien sind vom Wiederherstellungsmodell der Datenbank und der Edition von SQL Server abhängig.
In der folgenden Tabelle werden die für die verschiedenen Wiederherstellungsmodelle unterstützten Wiederherstellungsszenarien eingeführt.
Wiederherstellungsszenario | Mit dem einfachen Wiederherstellungsmodell | Mit dem vollständigen/massenprotokollierten Wiederherstellungsmodell |
---|---|---|
Vollständige Datenbankwiederherstellung | Dies ist die grundlegende Wiederherstellungsstrategie. Eine vollständige Datenbankwiederherstellung besteht möglicherweise nur im Wiederherstellen einer vollständigen Datenbanksicherung. Alternativ kann eine vollständige Datenbankwiederherstellung das Wiederherstellen einer vollständigen Datenbanksicherung, gefolgt vom Wiederherstellen einer differenziellen Sicherung, umfassen. Weitere Informationen finden Sie unter Vollständige Datenbankwiederherstellungen(einfaches Wiederherstellungsmodell). |
Dies ist die grundlegende Wiederherstellungsstrategie. Eine vollständige Datenbankwiederherstellung bedeutet die Wiederherstellung einer vollständigen Datenbanksicherung und, optional, einer differenziellen Sicherung (soweit vorhanden), gefolgt von der Wiederherstellung aller darauffolgenden Protokollsicherungen (in chronologischer Reihenfolge). Um die vollständige Datenbankwiederherstellung abzuschließen, wird die letzte Protokollsicherung wiederhergestellt (RESTORE WITH RECOVERY). Weitere Informationen finden Sie unter Vollständige Datenbankwiederherstellungen (vollständiges Wiederherstellungsmodell). |
Dateiwiederherstellung 1 | Stellen Sie mindestens eine beschädigte schreibgeschützte Datei wieder her, ohne die gesamte Datenbank wiederherzustellen. Die Dateiwiederherstellung ist nur verfügbar, wenn die Datenbank mindestens eine schreibgeschützte Dateigruppe aufweist. | Wiederherstellen einer oder mehrerer Dateien ohne Wiederherstellung der gesamten Datenbank. Die Dateiwiederherstellung kann ausgeführt werden, während die Datenbank offline ist oder, bei einigen Editionen von SQL Server, während die Datenbank online bleibt. Während einer Dateiwiederherstellung sind die Dateigruppen, die die wiederherzustellenden Dateien enthalten, immer offline. |
Seitenwiederherstellung | Nicht zutreffend | Stellt mindestens eine beschädigte Seite wieder her. Die Seitenwiederherstellung kann ausgeführt werden, während die Datenbank offline ist oder, bei einigen Editionen von SQL Server, während die Datenbank online bleibt. Während einer Seitenwiederherstellung sind die wiederherzustellenden Seiten immer offline. Es muss eine fortlaufende Kette von Protokollsicherungen bis zur aktuellen Protokolldatei vorhanden sein, und alle Protokollsicherungen müssen angewendet werden, um die Seite auf den Stand der aktuellen Protokolldatei zu bringen. Weitere Informationen finden Sie unter Wiederherstellung von Seiten (SQL Server). |
Schrittweise Wiederherstellung 1 | Stellen Sie die Datenbank in Phasen auf Dateigruppenebene wieder her, beginnend mit der primären Dateigruppe und allen sekundären Dateigruppen mit Lese-/Schreibzugriff. | Stellen Sie die Datenbank phasenweise auf Dateigruppenebene wieder her, beginnend mit der primären Dateigruppe. Weitere Informationen finden Sie unter Schrittweise Wiederherstellungen (SQL Server). |
1 Die Onlinewiederherstellung wird nur in der Enterprise Edition unterstützt.
Schritte zum Wiederherstellen einer Datenbank
Zum Ausführen einer Dateiwiederherstellung führt die Datenbank-Engine zwei Schritte aus:
Erstellen aller fehlenden Datenbankdateien.
Kopieren der Daten aus den Sicherungsmedien in die Datenbankdateien.
Zum Ausführen einer Datenbankwiederherstellung führt die Datenbank-Engine drei Schritte aus:
Erstellen der Datenbank- und Transaktionsprotokolldateien, wenn sie noch nicht vorhanden sind.
Kopieren aller Daten-, Protokoll- und Indexseiten aus den Sicherungsmedien einer Datenbank in die Datenbankdateien.
Anwenden des Transaktionsprotokolls beim so genannten Wiederherstellungsprozess.
Unabhängig davon, wie die Daten hergestellt werden, stellt SQL Server Datenbank-Engine sicher, dass die gesamte Datenbank vor dem Wiederherstellen logisch konsistent ist. Beispielsweise können Sie eine Datei erst wiederherstellen und online schalten, wenn sie durch ein Rollforward auf einen Stand gebracht wurde, in dem sie mit der Datenbank konsistent ist.
Vorteile von Datei- oder Seitenwiederherstellungen
Das Wiederherstellen von Dateien oder Seiten anstelle der vollständigen Datenbank bietet folgende Vorteile:
Bei der Wiederherstellung geringerer Datenmengen wird weniger Zeit zum Kopieren und Wiederherstellen benötigt.
In SQL Server ist es u. U. möglich, dass während des Datei- oder Seitenwiederherstellungsprozesses andere Daten der Datenbank online bleiben.
Wiederherstellung und das Transaktionsprotokoll
Für die meisten Wiederherstellungsszenarien ist es erforderlich, eine Transaktionsprotokollsicherung anzuwenden und dem SQL Server Datenbank-Engine die Ausführung des Wiederherstellungsprozesses zu ermöglichen, damit die Datenbank online geschaltet wird. Wiederherstellung ist der Prozess, der von SQL Server für alle Datenbanken verwendet wird, damit diese im Hinblick auf Transaktionen in einem konsistenten - oder fehlerfreien - Zustand starten.
Im Falle eines Ausfalls oder bei einem sonstigen nicht ordnungsgemäßen Herunterfahren, bleiben die Datenbanken möglicherweise in einem Status, in dem einige Änderungen nicht vom Puffercache in die Datendateien geschrieben wurden, einige Änderungen von unvollständigen Transaktionen jedoch bereits in den Datendateien vorgenommen wurden. Wenn eine Instanz von SQL Server gestartet wird, führt sie basierend auf dem letzten Datenbankprüfpunkt eine Wiederherstellung der einzelnen Datenbanken aus, die drei Phasen umfasst:
Phase 1 ist die Analysephase, in der das Transaktionsprotokoll analysiert wird, um den letzten Prüfpunkt zu ermitteln, und die Dirty Page Table (DPT) und die Active Transaction Table (ATT) erstellt werden. Die DPT enthält Einträge der Seiten, die beim Herunterfahren der Datenbank in einem modifizierten Zustand vorlagen. Die ATT enthält Einträge der Transaktionen, die beim nicht ordnungsgemäßen Herunterfahren der Datenbank aktiv waren.
Phase 2 ist die Wiederholen-Phase, in der jede im Protokoll aufgezeichnete Änderung, die zum Zeitpunkt des Herunterfahrens der Datenbank noch nicht in die Datendateien geschrieben wurde, wiederhergestellt wird. Die für eine erfolgreiche datenbankweite Wiederherstellung erforderliche Mindest-Protokollfolgenummer (minLSN) finden Sie in der DPT. Sie markiert den Anfang der für alle modifizierten Seiten erforderlichen Wiederholungsvorgänge. In dieser Phase schreibt die SQL Server Datenbank-Engine alle modifizierten Seiten, die zu Transaktionen mit Commit gehören, auf den Datenträger.
Phase 3 ist die Rollback-Phase, in der unvollständige Transaktionen, die im ATT gefunden wurden, rückgängig gemacht werden, um sicherzustellen, dass die Integrität der Datenbank erhalten bleibt. Nach dem Rollback wird die Datenbank online geschaltet, und es können keine weiteren Transaktionsprotokollsicherungen auf die Datenbank angewendet werden.
Informationen zum Fortschritt der einzelnen Phasen der Datenbankwiederherstellung werden im SQL Server-Fehlerprotokoll erfasst. Der Fortschritt der Datenbankwiederherstellung kann auch mit erweiterten Ereignissen nachverfolgt werden. Weitere Informationen finden Sie im Blogbeitrag New extended events for database recovery progress (Neue erweiterte Ereignisse für den Fortschritt der Datenbankwiederherstellung).
Hinweis
Wenn in einem Szenario einer schrittweisen Wiederherstellung eine schreibgeschützte Dateigruppe bereits vor der Erstellung der Dateisicherung schreibgeschützt war, ist die Anwendung von Protokollsicherungen auf die Dateigruppe unnötig und wird von der Dateiwiederherstellung ausgelassen.
Hinweis
Um die Verfügbarkeit von Datenbanken in einer Unternehmensumgebung nach dem Starten des SQL Server-Diensts zu maximieren, z. B. nach einem Failover einer Always On Failover Cluster Instance oder eines direkten Neustarts, kann SQL Server Enterprise Edition eine Datenbank nach der Rollforward-Phase online schalten, während die Rückgängig-Phase noch ausgeführt wird. Dies wird als schnelle Wiederherstellung bezeichnet. Die schnelle Wiederherstellung ist jedoch nicht verfügbar, wenn die Datenbank in einen Onlinestatus wechselt, der SQL Server-Dienst jedoch nicht neu gestartet wurde. Wenn Sie beispielsweise ALTER DATABASE AdventureWorks SET ONLINE;
ausführen, kann die Datenbank erst dann in den Schreib-Lese-Zustand versetzt werden, wenn alle drei Phasen der Wiederherstellung abgeschlossen sind.
Wiederherstellungsmodelle und unterstützte Wiederherstellungsvorgänge
Die für eine Datenbank verfügbaren Wiederherstellungsvorgänge hängen vom Wiederherstellungsmodell ab. In der folgenden Tabelle finden Sie eine Zusammenfassung, ob und in welchem Ausmaß die verschiedenen Wiederherstellungsmodelle ein bestimmtes Wiederherstellungsszenario unterstützen.
Wiederherstellungsvorgang | Vollständiges Wiederherstellungsmodell | Massenprotokolliertes Wiederherstellungsmodell | Einfaches Wiederherstellungsmodell |
---|---|---|---|
Datenwiederherstellung | Vollständige Wiederherstellung (falls das Protokoll verfügbar ist). | Gefahr des Datenverlusts. | Alle Daten seit der letzten vollständigen Sicherung oder differenziellen Sicherung gehen verloren. |
Point-in-Time-Wiederherstellung | Jeder von den Protokollsicherungen abgedeckte Zeitpunkt. | Nicht zulässig, wenn die Protokollsicherung massenprotokollierte Änderungen enthält. | Nicht unterstützt. |
Dateiwiederherstellung 1 | Vollständige Unterstützung. | Manchmal. 2 | Verfügbar nur für schreibgeschützte sekundäre Dateien. |
Seitenwiederherstellung 1 | Vollständige Unterstützung. | Manchmal. 2 | Keine. |
Schrittweise Wiederherstellung (Dateigruppenebene) 1 | Vollständige Unterstützung. | Manchmal. 2 | Verfügbar nur für schreibgeschützte sekundäre Dateien. |
1 Diese Option ist nur in der Enterprise Edition von SQL Server verfügbar
2 Die erforderlichen Bedingungen finden Sie in Einschränkungen bei der Wiederherstellung mit dem einfachen Wiederherstellungsmodell weiter unten in diesem Thema.
Wichtig
Unabhängig vom Wiederherstellungsmodell einer Datenbank kann eine SQL Server-Sicherung nicht in einer SQL Server-Datenbank-Engine-Version wiederhergestellt werden, die älter als die Version ist, mit der die Sicherung erstellt wurde.
Wiederherstellungsszenarien mit dem einfachen Wiederherstellungsmodell
Bei Verwendung des einfachen Wiederherstellungsmodells unterliegen Wiederherstellungsvorgänge den folgenden Einschränkungen:
Die Dateiwiederherstellung und die schrittweise Wiederherstellung stehen nur für schreibgeschützte sekundäre Dateigruppen zur Verfügung. Informationen zu diesen Wiederherstellungsszenarien finden Sie unter Dateiwiederherstellungen (einfaches Wiederherstellungsmodell) und Schrittweise Wiederherstellungen (SQL Server).
Die Seitenwiederherstellung ist nicht zulässig.
Die Wiederherstellung bis zu einem bestimmten Zeitpunkt ist nicht zulässig.
Wenn die genannten Einschränkungen für Ihre Anforderungen nicht geeignet sind, sollten Sie die Verwendung des vollständigen Wiederherstellungsmodells in Betracht ziehen. Weitere Informationen finden Sie unter Übersicht über Sicherungen (SQL Server).
Wichtig
Unabhängig vom Wiederherstellungsmodell einer Datenbank kann eine SQL Server-Sicherung nicht mit einer SQL Server-Version wiederhergestellt werden, die älter als die Version ist, mit der die Sicherung erstellt wurde.
Wiederherstellen mit dem massenprotokollierten Wiederherstellungsmodell
In diesem Abschnitt werden Aspekte der Wiederherstellung behandelt, die sich nur auf das massenprotokollierte Wiederherstellungsmodell beziehen, das als Zusatz zum vollständigen Wiederherstellungsmodell gedacht ist.
Hinweis
Eine Einführung in das massenprotokollierte Wiederherstellungsmodell finden Sie unter Das Transaktionsprotokoll (SQL Server).
Im Allgemeinen ähnelt das massenprotokollierte Wiederherstellungsmodell dem vollständigen Wiederherstellungsmodell, und die für das vollständige Wiederherstellungsmodell beschriebenen Informationen gelten zudem für beide Modelle. Die Zeitpunktwiederherstellung und die Onlinewiederherstellung werden jedoch durch das massenprotokollierte Wiederherstellungsmodell beeinflusst.
Einschränkungen für die Zeitpunktwiederherstellung
Wenn eine Protokollsicherung, die im massenprotokollierten Wiederherstellungsmodell vorgenommen wurde, massenprotokollierte Änderungen enthält, ist eine Zeitpunktwiederherstellung nicht zulässig. Wenn versucht wird, eine Wiederherstellung bis zu einem bestimmten Zeitpunkt für eine Protokollsicherung auszuführen, die Massenänderungen enthält, treten beim Wiederherstellungsvorgang Fehler auf.
Einschränkungen für die Onlinewiederherstellung
Eine Onlinewiederherstellungssequenz funktioniert nur, wenn folgende Bedingungen erfüllt werden:
Alle erforderlichen Protokollsicherungen müssen vorgenommen werden, bevor die Wiederherstellungssequenz gestartet wird.
Massenänderungen müssen gesichert werden, bevor die Onlinewiederherstellungssequenz gestartet wird.
Wenn in der Datenbank Massenänderungen vorhanden sind, müssen alle Dateien online oderdefunctsein. (Dies bedeutet, dass die Datei kein Bestandteil der Datenbank mehr ist.)
Wenn diese Bedingungen nicht erfüllt werden, treten bei der Onlinewiederherstellungssequenz Fehler auf.
Hinweis
Es empfiehlt sich, in das vollständige Wiederherstellungsmodell zu wechseln, bevor eine Onlinewiederherstellung gestartet wird. Weitere Informationen finden Sie unter Wiederherstellungsmodelle (SQL Server).
Informationen zum Ausführen einer Onlinewiederherstellung finden Sie unter Onlinewiederherstellungen (SQL Server).
Datenbankwiederherstellungsberater (SQL Server Management Studio)
Der Datenbankwiederherstellungsberater erleichtert das Erstellen von Wiederherstellungsplänen, durch die optimale folgerichtige Wiederherstellungssequenzen implementiert werden. Viele bekannte Probleme mit der Datenbankwiederherstellung und von Kunden angeforderte Erweiterungen wurden behoben. Mit dem Datenbankwiederherstellungsberater werden u. a. folgende wichtige Erweiterungen eingeführt:
Wiederherstellungsplan-Algorithmus: Der zum Erstellen von Wiederherstellungsplänen verwendete Algorithmus wurde erheblich verbessert, insbesondere bei komplexen Wiederherstellungsszenarien. Viele Grenzfälle, einschließlich Verzweigungszenarien in Zeitpunktwiederherstellungen, werden effizienter als in früheren Versionen von SQL Server behandelt.
Zeitpunktwiederherstellungen: Der Datenbankwiederherstellungsberater vereinfacht erheblich das Wiederherstellen von Datenbanken zu einem bestimmten Zeitpunkt. Die Unterstützung für Zeitpunktwiederherstellungen wird durch eine visuelle Sicherungszeitachse deutlich verbessert. Diese visuelle Zeitachse macht es möglich, einen geeigneten Zeitpunkt als Zielwiederherstellungspunkt zum Wiederherstellen einer Datenbank zu ermitteln. Die Zeitachse erleichtert das Durchlaufen eines verzweigten Wiederherstellungspfads (ein Pfad, der Wiederherstellungsverzweigungen umfasst). Ein angegebener Zeitpunktwiederherstellungsplan schließt automatisch die Sicherungen ein, die für das Wiederherstellen zum Zielzeitpunkt (Datum und Uhrzeit) relevant sind. Informationen finden Sie unter Wiederherstellen einer SQL Server-Datenbank auf einen Zeitpunkt (Vollständiges Wiederherstellungsmodell).
Weitere Informationen zum Datenbankwiederherstellungsberater finden Sie in den folgenden Blogs zur SQL Server Manageability-Verwaltbarkeit:
Wiederherstellungsberater: Verwenden von SSMS zum Erstellen/Wiederherstellen von Teilungssicherungen
Verbesserte Wiederherstellung von Datenbanken
Die verbesserte Wiederherstellung von Datenbanken ist ab SQL Server 2019 (15.x) und in Azure SQL-Datenbank verfügbar. Die beschleunigte Datenbankwiederherstellung verbessert die Verfügbarkeit der Datenbank erheblich, insbesondere bei lang laufenden Transaktionen, indem der Wiederherstellungsprozess der SQL Server Datenbank-Engine neu gestaltet wird. Eine Datenbank, für die die verbesserte Wiederherstellung von Datenbanken aktiviert wurde, wird nach einem Failover oder einem nicht sauberen Herunterfahren deutlich schneller wiederhergestellt. Ist diese Option aktiviert, wird bei der verbesserten Wiederherstellung von Datenbanken auch das Rollback von abgebrochenen Transaktionen mit langer Ausführungszeit deutlich schneller.
Sie können die datenbankbasierte beschleunigte Wiederherstellung für SQL Server 2019 (15.x) mithilfe der folgenden Syntax aktivieren:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;
Hinweis
Die verbesserte Wiederherstellung von Datenbanken ist bei Azure SQL Database standardmäßig aktiviert.