Übersicht über Wiederherstellung und Wiederherstellung (SQL Server)
Gilt für:SQL Server
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 und wiederhergestellt, und die Datenbank ist während der Wiederherstellungs- und Wiederherstellungsvorgänge offline.
Datendatei ( Dateiwiederherstellung)
Mindestens eine Datendatei wird wiederhergestellt. Während einer Dateiwiederherstellung werden die Dateigruppen, die die Dateien enthalten, während der Wiederherstellung automatisch offline geschaltet. 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 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). |
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 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 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 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:
Erstellt die Datenbank- und Transaktionsprotokolldateien, wenn sie noch nicht vorhanden sind.
Kopieren aller Daten-, Protokoll- und Indexseiten aus den Sicherungsmedien einer Datenbank in die Datenbankdateien.
Wendet das Transaktionsprotokoll im sogenannten Wiederherstellungsprozess an.
Unabhängig davon, wie die Daten hergestellt werden, stellt SQL Server-Datenbank-Engine sicher, dass die gesamte Datenbank vor dem Wiederherstellen logisch konsistent ist. Wenn Sie beispielsweise eine Datei wiederherstellen, können Sie sie erst wiederherstellen und online schalten, wenn sie weit genug vorangebracht wurde, um mit der Datenbank konsistent zu sein.
Vorteile einer Datei- oder Seitenwiederherstellung
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:
Phase 1 ist die Analysephase , die das Transaktionsprotokoll analysiert, um zu bestimmen, was der letzte Prüfpunkt ist, und erstellt die Dirty Page Table (DPT) und die Aktive Transaktionstabelle (Active Transaction Table , ATT). Die DPT enthält Einträge der Seiten, die beim Herunterfahren der Datenbank in einem modifizierten Zustand vorlagen. Der ATT enthält Datensätze von Transaktionen, die zu dem Zeitpunkt aktiv waren, zu dem die Datenbank nicht sauber heruntergefahren wurde.
Phase 2 ist die Wiederholungsphase , bei der alle im Protokoll aufgezeichneten Änderungen, die zum Zeitpunkt des Herunterfahrens der Datenbank möglicherweise nicht in die Datendateien geschrieben wurden, ein Rollforward ausgeführt werden. 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.
Phase 3 ist die Rückgängig-Phase , in der unvollständige Transaktionen im ATT zurückgesetzt 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 zu maximieren, nachdem der SQL Server Dienst gestartet wurde, z. B. nach einem Failover einer Always On Failoverclusterinstanz oder einem direkten Neustart, kann SQL Server Enterprise Edition eine Datenbank nach der Wiederholungsphase 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 Onlinezustand wechselt, der SQL Server-Dienst jedoch nicht neu gestartet wurde. Wenn Sie beispielsweise ausführen ALTER DATABASE AdventureWorks SET ONLINE;
, kann sich die Datenbank erst dann im Lese-/Schreibzustand befinden, wenn alle drei Wiederherstellungsphasen 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. |
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 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 |
Stückwerk (Dateigruppenebene) Wiederherstellung 1 | Vollständige Unterstützung. | Manchmal. 2 | Verfügbar nur für schreibgeschützte sekundäre Dateien. |
1 Nur in der Enterprise-Edition von SQL Server verfügbar
2 Die erforderlichen Bedingungen finden Sie weiter unten in diesem Artikel unter Wiederherstellenseinschränkungen unter dem einfachen Wiederherstellungsmodell.
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 unter 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 Point-in-Time-Wiederherstellung 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 Version von SQL Server wiederhergestellt werden, die älter als die Version ist, mit der die Sicherung erstellt wurde.
Wiederherstellen unter dem Massenprotokollierungsmodell
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 Point-in-Time-Wiederherstellung
Wenn eine Protokollsicherung, die im Rahmen des Massenprotokollierungsmodells erstellt wurde, Massenprotokollierungsänderungen enthält, ist die Point-in-Time-Wiederherstellung 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 sind, schlägt die Onlinewiederherstellungssequenz fehl.
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 Serverbehandelt.
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 -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. 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.