Übersicht über Wiederherstellungsvorgänge (SQL Server)

Anwendungsbereich: JaSQL Server (alle unterstützten Versionen)

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 WITH 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 Datenbanken 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 2016. Informationen zur Unterstützung von Sicherungskopien früherer SQL Server-Versionen finden Sie im Kapitel RESTORE (Transact-SQL)im Abschnitt „Kompatibilitätsunterstützung“.

Übersicht über 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 Serverabhä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).
File restore * 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 verfügbar 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 * 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).

* Die Onlinewiederherstellung wird nur in der Enterprise Edition unterstützt.

Schritte zum Wiederherstellen einer Datenbank

Zum Ausführen einer Dateiwiederherstellung führt das 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 das 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 genanten 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 bzw. 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:

  • In der Analysephase wird das Transaktionsprotokoll analysiert, um zu bestimmen, welches der letzte Prüfpunkt ist, und es werden die Tabelle der modifizierten Seiten (Dirty Page Table, DPT) und die Tabelle der aktiven Transaktionen (Active Transaction Table, ATT) erstellt. Die DPT enthält Einträge der Seiten, die beim Herunterfahren der Datenbank in einem modifizierten Zustand vorlagen. Die DPT enthält Einträge der Transaktionen, die beim nicht ordnungsgemäßen Herunterfahren der Datenbank aktiv waren.

  • Die Rollforwardphase wiederholt alle im Protokoll aufgezeichneten Änderungen, die beim Herunterfahren der Datenbank möglicherweise nicht in die Datendateien geschrieben wurden. 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 das SQL Server-Datenbank-Engine alle modifizierten Seiten, die zu Transaktionen mit Commit gehören, auf den Datenträger.

  • In der Rollbackphase wird ein Rollback aller in der ATT gefundenen unvollständigen Transaktionen ausgeführt, um die Integrität der Datenbank sicherzustellen. 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 zu maximieren, kann SQL Server Enterprise Edition eine Datenbank nach der Rollforwardphase online schalten, während die Rollbackphase noch ausgeführt wird. Dies wird als schnelle Wiederherstellung bezeichnet.

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.
Wiederherstellung bis zu einem bestimmten Zeitpunkt Jeder von den Protokollsicherungen abgedeckte Zeitpunkt. Nicht zulässig, wenn die Protokollsicherung massenprotokollierte Änderungen enthält. Wird nicht unterstützt.
Dateiwiederherstellung * * _ Vollständige Unterstützung. Manchmal_ ** * Verfügbar nur für schreibgeschützte sekundäre Dateien.
Seitenwiederherstellung * * _ Vollständige Unterstützung. Manchmal_ ** * Keine.
Schrittweise Wiederherstellung (Dateigruppenebene) * * _ Vollständige Unterstützung. Manchmal_ ** * Verfügbar nur für schreibgeschützte sekundäre Dateien.

* Verfügbar nur in der Enterprise Edition von SQL Server

** Die erforderlichen Bedingungen finden Sie in Einschränkungen bei der Wiederherstellung mit dem einfachen Wiederherstellungsmodellweiter unten in diesem Thema.

Wichtig

Unabhängig vom Wiederherstellungsmodell einer Datenbank kann eine SQL Server -Sicherung nicht in eine 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:

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 Version von SQL Server 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 Wiederherstellungsszenarios. Viele Grenzfälle, einschließlich Verzweigungszenarien in Zeitpunktwiederherstellungen, werden effizienter als in früheren Versionen von SQL Serverbehandelt.

  • Zeitpunktwiederherstellungen: Der Wiederherstellungsberater für Datenbanken 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 -Verwaltbarkeit:

Verbesserte Wiederherstellung von Datenbanken

Die verbesserte Wiederherstellung von Datenbanken ist in SQL Server 2019 (15.x) und Azure SQL-Datenbank verfügbar. Durch die verbesserte Wiederherstellung von Datenbanken wird die Verfügbarkeit von Datenbanken enorm verbessert, insbesondere bei zeitintensiven Transaktionen. Hierfür wurde der Wiederherstellungsprozess der SQL Server-Datenbank-Engine vollständig überarbeitet. 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 bei Azure SQL-Datenbank standardmäßig aktiviert.

Weitere Ressourcen

Übersicht über Sicherungen (SQL Server)
Das Transaktionsprotokoll (SQL Server)
Handbuch zur Architektur und Verwaltung von Transaktionsprotokollen in SQL Server
Sichern und Wiederherstellen von SQL Server-Datenbanken
Anwenden von Transaktionsprotokollsicherungen (SQL Server)