Wiederherstellen einer Transaktionsprotokollsicherung (SQL Server)

In diesem Thema wird beschrieben, wie Sie in SQL Server 2012 eine Transaktionsprotokollsicherung mithilfe von SQL Server Management Studio oder Transact-SQL wiederherstellen.

In diesem Thema

  • Vorbereitungen:

    Voraussetzungen

    Sicherheit

  • Wiederherstellen einer Transaktionsprotokollsicherung mit:

    SQL Server Management Studio

    Transact-SQL

  • Verwandte Aufgaben

Vorbereitungen

Voraussetzungen

  • Sicherungen müssen in der Reihenfolge wiederhergestellt werden, in der sie erstellt wurden. Bevor Sie eine bestimmte Transaktionsprotokollsicherung wiederherstellen können, müssen Sie zuerst die folgenden vorherigen Sicherungen wiederherstellen, ohne für Transaktionen ohne Commit ein Rollback auszuführen, also mit der Option WITH NORECOVERY:

    • Die vollständige Datenbanksicherung und die letzte, differenzielle Sicherung, die ggf. vor der betreffenden Transaktionsprotokollsicherung durchgeführt wurde. Bevor die letzte vollständige oder differenzielle Datenbanksicherung erstellt wurde, muss die Datenbank das vollständige Wiederherstellungsmodell oder das massenprotokollierte Wiederherstellungsmodell verwendet haben.

    • Alle Transaktionsprotokollsicherungen, die nach der vollständigen Datenbanksicherung oder der differenziellen Sicherung (falls Sie eine solche Sicherung wiederherstellen) und vor der betreffenden Transaktionsprotokollsicherung durchgeführt wurden. Protokollsicherungen müssen ohne Lücken in der Protokollkette in der Reihenfolge angewendet werden, in der sie erstellt wurden.

      Weitere Informationen zu Transaktionsprotokollsicherungen finden Sie unter Transaktionsprotokollsicherungen (SQL Server) und Anwenden von Transaktionsprotokollsicherungen (SQL Server).

Sicherheit

Berechtigungen

RESTORE-Berechtigungen werden Rollen erteilt, in denen Mitgliedsinformationen immer für den Server verfügbar sind. Da die Mitgliedschaft einer festen Datenbankrolle nur geprüft werden kann, wenn die Datenbank unbeschädigt ist und auf sie zugegriffen werden kann, was beim Ausführen von RESTORE nicht immer der Fall ist, verfügen Mitglieder der festen Datenbankrolle db_owner nicht über RESTORE-Berechtigungen.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Verwenden von SQL Server Management Studio

VorsichtshinweisVorsicht

Beim üblichen Prozess der Wiederherstellung wählen Sie im Dialogfeld Datenbank wiederherstellen die Protokollsicherungen zusammen mit den Datensicherungen und den differenziellen Sicherungen aus.

So stellen Sie eine Transaktionsprotokollsicherung wieder her

  1. Klicken Sie im Objekt-Explorer nach dem Herstellen einer Verbindung mit der entsprechenden Instanz von Microsoft SQL Server Database Engine (Datenbankmodul) auf den Servernamen, um die Serverstruktur zu erweitern.

  2. Erweitern Sie Datenbanken, und wählen Sie abhängig von der Datenbank entweder eine Benutzerdatenbank aus, oder erweitern Sie Systemdatenbanken, und wählen Sie eine Systemdatenbank aus.

  3. Klicken Sie mit der rechten Maustaste auf die Datenbank, zeigen Sie auf Aufgaben, zeigen Sie auf Wiederherstellen, und klicken Sie dann auf Transaktionsprotokoll. Daraufhin wird das Dialogfeld Transaktionsprotokoll wiederherstellen geöffnet.

    HinweisHinweis

    Ist Transaktionsprotokoll ausgegraut, muss ggf. eine vollständige oder differenzielle Sicherung wiederhergestellt werden. Verwenden Sie das Sicherungsdialogfeld Datenbank.

  4. Wählen Sie auf der Seite Allgemein im Listenfeld Datenbank den Namen einer Datenbank aus. Es werden nur Datenbanken im Wiederherstellungsstatus aufgeführt.

  5. Zum Festlegen von Quelle und Speicherort der wiederherzustellenden Sicherungssätze klicken Sie auf eine der folgenden Optionen:

    • Von vorherigen Sicherungen der 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.

    • Aus Datei oder von Band

      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.

  6. Wählen Sie im Raster Wählen Sie die wiederherzustellenden Transaktionsprotokollsicherungen aus die wiederherzustellenden Sicherungen aus. In diesem Raster werden die für die ausgewählte Datenbank zur Verfügung stehenden Transaktionsprotokollsicherungen aufgeführt. Eine Protokollsicherung ist nur verfügbar, wenn der entsprechende Wert für Erste LSN größer als der Wert für Letzte LSN der Datenbank ist. Protokollsicherungen werden in der Reihenfolge der enthaltenen Protokollsequenznummern (Log Sequence Number, LSN) angezeigt und müssen in dieser Reihenfolge wiederhergestellt werden.

    Die folgende Tabelle führt die Spaltenheader des Rasters auf und beschreibt deren Werte.

    Header

    Wert

    Wiederherstellen

    Aktivierte Kontrollkästchen zeigen die wiederherzustellenden Sicherungssätze an.

    Name

    Name des Sicherungssatzes.

    Komponente

    Gesicherte Komponente: Datenbank, Datei oder <leer> (bei Transaktionsprotokollen).

    Datenbank

    Name der an dem Sicherungsvorgang beteiligten Datenbank.

    Anfangsdatum

    Datum und Uhrzeit des Sicherungsbeginns, entsprechend den Ländereinstellungen des Clients.

    Beendigungsdatum

    Datum und Uhrzeit des Sicherungsabschlusses, entsprechend den Ländereinstellungen des Clients.

    Erste LSN

    Protokollsequenznummer der ersten Transaktion im Sicherungssatz. Bei Dateisicherungen leer.

    Letzte LSN

    Protokollsequenznummer der letzten Transaktion im Sicherungssatz. Bei Dateisicherungen leer.

    Prüfpunkt-LSN

    Protokollsequenznummer des letzten Prüfpunkts zum Zeitpunkt der Erstellung der Sicherung.

    Vollständige LSN

    Protokollsequenznummer der neuesten vollständigen Datenbanksicherung.

    Server

    Name der Instanz des Datenbankmoduls, durch die der Sicherungsvorgang ausgeführt wurde.

    Benutzername

    Name des Benutzers, der den Sicherungsvorgang ausgeführt hat.

    Größe

    Größe des Sicherungssatzes in Byte.

    Position

    Position des Sicherungssatzes auf dem Volume.

    Ablauf

    Datum und Uhrzeit des Zeitpunkts, zu dem die Gültigkeit des Sicherungssatzes endet.

  7. Wählen Sie eine der folgenden Optionen aus:

    • Zeitpunkt

      Behalten Sie entweder die Standardeinstellung bei (Aktuellster möglicher Status), oder wählen Sie Datum und Uhrzeit aus, indem Sie auf die Schaltfläche zum Durchsuchen klicken. Daraufhin wird das Dialogfeld Zeitpunktwiederherstellung geöffnet.

    • Markierte Transaktion

      Stellen Sie für die Datenbank den Zustand zum Zeitpunkt einer zuvor markierten Transaktion wieder her. Nach Auswahl dieser Option wird das Dialogfeld Markierte Transaktion auswählen geöffnet, in dem ein Raster mit den in den ausgewählten Transaktionsprotokollsicherungen verfügbaren markierten Transaktionen angezeigt wird.

      Standardmäßig erfolgt die Wiederherstellung bis zur markierten Transaktion (die jedoch nicht eingeschlossen wird). Um die markierte Transaktion ebenfalls wiederherzustellen, wählen Sie Markierte Transaktion einschließen aus.

      In der folgenden Tabelle werden die Spaltenheader des Rasters aufgelistet und deren Werte beschrieben.

      Header

      Wert

      <blank>

      Zeigt ein Kontrollkästchen zur Auswahl der Markierung an.

      Transaktionsmarkierung

      Name der markierten Transaktion, der vom Benutzer zugewiesen wurde, als für die Transaktion der Commit ausgeführt wurde.

      Datum

      Datum und Uhrzeit, zu der für die Transaktion der Commit ausgeführt wurde. Als Transaktionsdatum und -uhrzeit werden das Datum und die Uhrzeit angezeigt, die in der msdb gmarkhistory-Tabelle aufgezeichnet wurden, nicht das Datum und die Uhrzeit des Clientcomputers.

      Beschreibung

      Die Beschreibung der markierten Transaktion, die der Benutzer angegeben hat, als für die Transaktion ein Commit ausgeführt wurde (sofern zutreffend).

      LSN

      Die Protokollfolgenummer (LSN, Log Sequence Number) der markierten Transaktion.

      Datenbank

      Der Name der Datenbank, in der für die markierte Transaktion ein Commit ausgeführt wird.

      Benutzername

      Name des Datenbankbenutzers, der den Commit für die markierte Transaktion ausgeführt hat.

  8. Klicken Sie zum Anzeigen oder Auswählen der erweiterten Optionen auf Optionen im Bereich Seite auswählen.

  9. Im Abschnitt Wiederherstellungsoptionen stehen folgende Optionen zur Verfügung:

    • Replikationseinstellungen beibehalten (WITH KEEP_REPLICATION)

      Behält die Replikationseinstellungen bei, wenn eine veröffentlichte Datenbank auf einem Server wiederhergestellt wird, auf dem die Datenbank nicht erstellt wurde.

      Diese Option ist nur in Verbindung mit der Option Datenbank betriebsbereit belassen, indem für Transaktionen ohne Commit ein Rollback ausgeführt wird... (siehe Beschreibung weiter unten) verfügbar und entspricht der Wiederherstellung einer Sicherungskopie mit der Option RECOVERY.

      Das Aktivieren dieser Option entspricht der Verwendung der Option KEEP_REPLICATION in einer Transact-SQL RESTORE-Anweisung.

    • Bestätigung vor Wiederherstellen jeder einzelnen Sicherung

      Bei Auswahl dieser Option wird vor dem Wiederherstellen jedes Sicherungssatzes (nach dem ersten) das Dialogfeld Wiederherstellung fortsetzen angezeigt, in dem Sie angeben müssen, ob Sie die Wiederherstellungssequenz fortsetzen möchten. Das Dialogfeld enthält den Namen des nächsten Mediensatzes (sofern vorhanden), den Namen des Sicherungssatzes und die Beschreibung des Sicherungssatzes.

      Diese Option ist besonders dann hilfreich, wenn Sie für verschiedene Mediensätze Bänder austauschen müssen. Sie können die Option beispielsweise dann verwenden, wenn der Server nur über ein Bandlaufwerk verfügt. Klicken Sie erst auf OK, wenn Sie soweit sind, den Vorgang fortzusetzen.

      Wenn Sie auf Nein klicken, verbleibt die Datenbank im Wiederherstellungsstatus. Sie können die Wiederherstellungssequenz nach der letzten abgeschlossenen Wiederherstellung fortsetzen. Verwenden Sie den Task Datenbank wiederherstellen erneut, wenn die nächste Sicherung eine Datensicherung oder differenzielle Sicherung ist. Ist die nächste Sicherung eine Protokollsicherung, verwenden Sie den Task Transaktionsprotokoll wiederherstellen.

    • Zugriff auf die wiederhergestellte Datenbank einschränken (WITH RESTRICTED_USER)

      Gestattet nur Mitgliedern von db_owner, dbcreator oder sysadmin, auf die wiederhergestellte Datenbank zuzugreifen.

      Das Aktivieren dieser Option entspricht der Verwendung der Option RESTRICTED_USER in einer Transact-SQL RESTORE-Anweisung.

  10. Geben Sie für die Optionen zum Wiederherstellungsstatus den Status der Datenbank nach dem Wiederherstellungsvorgang an.

    • Belassen Sie die Datenbank betriebsbereit, indem für Transaktionen ohne Commit ein Rollback ausgeführt wird. Zusätzliche Transaktionsprotokolle können nicht wiederhergestellt werden. (RESTORE WITH RECOVERY)

      Stellt die Datenbank wieder her. Diese Option entspricht der Option RECOVERY in einer Transact-SQL RESTORE-Anweisung.

      Wählen Sie diese Option nur dann aus, wenn Sie keine Protokolldateien besitzen, die Sie wiederherstellen möchten.

    • Belassen Sie die Datenbank nicht betriebsbereit, und führen Sie kein Rollback für Transaktionen ohne Commit aus. Zusätzliche Transaktionsprotokolle können wiederhergestellt werden. (RESTORE WITH NORECOVERY)

      Belässt die Datenbank im nicht wiederhergestellten Status RESTORING. Diese Option entspricht der Verwendung der Option NORECOVERY in einer Transact-SQL RESTORE-Anweisung.

      Wenn Sie diese Option auswählen, ist die Option Replikationseinstellungen beibehalten nicht verfügbar.

      Wichtiger HinweisWichtig

      Aktivieren Sie diese Option stets bei einer Spiegelung oder sekundären Datenbank.

    • Datenbank im schreibgeschützten Modus belassen. Transaktionen ohne Commit werden rückgängig gemacht, die Rückgängigaktionen werden jedoch in einer Datei gespeichert, sodass die Auswirkungen der Wiederherstellung umgekehrt werden können. (RESTORE WITH STANDBY)

      Belässt die Datenbank in einem Standbystatus. Diese Option entspricht der Verwendung der Option STANDBY in einer Transact-SQL RESTORE-Anweisung.

      Bei Auswahl dieser Option müssen Sie eine Standbydatei angeben.

  11. Geben Sie optional im Textfeld Standbydatei einen Dateinamen für die Standbydatei an. Diese Option ist erforderlich, wenn Sie die Datenbank im schreibgeschützten Modus belassen. Sie können nach der Standbydatei suchen oder den Pfadnamen im Textfeld eingeben.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Verwenden von Transact-SQL

Wichtiger HinweisWichtig

Es ist empfehlenswert, entweder WITH NORECOVERY oder WITH RECOVERY in jeder RESTORE-Anweisung immer explizit anzugeben, um Mehrdeutigkeit zu vermeiden. Dies ist besonders beim Schreiben von Skripts wichtig.

So stellen Sie eine Transaktionsprotokollsicherung wieder her

  1. Führen Sie die RESTORE LOG-Anweisung aus, um die Transaktionsprotokollsicherung anzuwenden, und geben Sie dabei Folgendes an:

    • Den Namen der Datenbank, auf die das zu sichernde Transaktionsprotokoll angewendet wird.

    • Das Sicherungsmedium, von dem die Transaktionsprotokollsicherung wiederhergestellt wird.

    • Die NORECOVERY-Klausel.

    Diese Anweisung weist die folgende Basissyntax auf:

    RESTORE LOG database_name FROM <backup_device> WITH NORECOVERY.

    Dabei ist database_name der Name der Datenbank und <backup_device>der Name des Mediums, auf dem sich die wiederherzustellende Protokollsicherung befindet.

  2. Wiederholen Sie Schritt 1 für jede anzuwendende Transaktionsprotokollsicherung.

  3. Verwenden Sie nach dem Wiederherstellen der letzten Sicherung in der Wiederherstellungssequenz die folgenden Anweisungen, um die Datenbank wiederherzustellen:

    • Wiederherstellen der Datenbank als Teil der letzten RESTORE LOG-Anweisung:

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;
      GO
      
    • Warten, bis die Datenbank durch Verwendung einer getrennten RESTORE DATABASE-Anweisung wiederhergestellt wird:

      RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY; 
      RESTORE DATABASE <database_name> WITH RECOVERY;
      GO
      

      Das Warten mit der Wiederherstellung der Datenbank ermöglicht eine Überprüfung, ob alle erforderlichen Protokollsicherungen wiederhergestellt wurden. Diese Vorgehensweise ist oft ratsam, wenn Sie eine Wiederherstellung bis zu einem bestimmten Zeitpunkt ausführen.

    Wichtiger HinweisWichtig

    Wenn Sie eine Spiegeldatenbank erstellen, lassen Sie den Wiederherstellungsschritt aus. Eine Spiegeldatenbank muss im Status RESTORING verbleiben.

Beispiele (Transact-SQL)

Standardmäßig verwendet die AdventureWorks2012 -Datenbank das einfache Wiederherstellungsmodell. Für die folgenden Beispiele ist es erforderlich, dass die Datenbank folgendermaßen für die Verwendung des vollständigen Wiederherstellungsmodells geändert wird:

ALTER DATABASE AdventureWorks2012 SET RECOVERY FULL;

A.Anwenden einer einzelnen Transaktionsprotokollsicherung

Im folgenden Beispiel wird mit der Wiederherstellung der AdventureWorks2012 -Datenbank mithilfe einer vollständigen Datenbanksicherung begonnen, die sich auf einem Sicherungsmedium mit dem Namen AdventureWorks2012_1 befindet. Dann wird die erste Transaktionsprotokollsicherung angewendet, die sich auf einem Sicherungsmedium mit dem Namen AdventureWorks2012_log befindet. Schließlich wird die Datenbank im Beispiel wiederhergestellt.

RESTORE DATABASE AdventureWorks2012
   FROM AdventureWorks2012_1
   WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks2012
   FROM AdventureWorks2012_log
   WITH FILE = 1,
   WITH NORECOVERY;
GO
RESTORE DATABASE AdventureWorks2012
   WITH RECOVERY;
GO

B.Anwenden mehrerer Transaktionsprotokollsicherungen

Im folgenden Beispiel wird mit der Wiederherstellung der AdventureWorks2012 -Datenbank mithilfe einer vollständigen Datenbanksicherung begonnen, die sich auf einem Sicherungsmedium mit dem Namen AdventureWorks2012_1 befindet. Dann werden nacheinander die ersten drei Transaktionsprotokollsicherungen angewendet, die sich auf einem Sicherungsmedium mit dem Namen AdventureWorks2012_log befinden. Schließlich wird die Datenbank im Beispiel wiederhergestellt.

RESTORE DATABASE AdventureWorks2012
   FROM AdventureWorks2012_1
   WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks2012
   FROM AdventureWorks2012_log
   WITH FILE = 1,
   NORECOVERY;
GO
RESTORE LOG AdventureWorks2012
   FROM AdventureWorks2012_log
   WITH FILE = 2,
   WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks2012
   FROM AdventureWorks2012_log
   WITH FILE = 3,
   WITH NORECOVERY;
GO
RESTORE DATABASE AdventureWorks2012
   WITH RECOVERY;
GO

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Verwandte Aufgaben

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Siehe auch

Verweis

RESTORE (Transact-SQL)

Konzepte

Anwenden von Transaktionsprotokollsicherungen (SQL Server)