Freigeben über


Wiederherstellen einer Transaktionsprotokollsicherung (SQL Server)

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

In diesem Themenbereich

Bevor Sie beginnen

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 dass ein Rollback von nicht abgeschlossenen Transaktionen durchgeführt wird, d. b. WITH NORECOVERY:

    • Die vollständige Datenbanksicherung und die letzte differenzielle Sicherung( falls vorhanden) vor der jeweiligen Transaktionsprotokollsicherung. Bevor die letzte vollständige oder differenzielle Datenbanksicherung erstellt wurde, muss die Datenbank das vollständige Wiederherstellungsmodell oder das Massenwiederherstellungsmodell verwendet haben.

    • Alle Sicherungen des Transaktionsprotokolls, die nach der vollständigen Datenbanksicherung oder der differenziellen Sicherung (sofern sie wiederhergestellt werden) und vor der jeweiligen Transaktionsprotokollsicherung übernommen wurden. Protokollsicherungen müssen in der Reihenfolge angewendet werden, in der sie erstellt wurden, ohne Lücken in der Protokollkette.

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

Sicherheit

Erlaubnisse

RESTORE-Berechtigungen werden Rollen zugewiesen, in denen Mitgliedschaftsinformationen immer für den Server verfügbar sind. Da die Mitgliedschaft mit festen Datenbankrollen nur überprüft werden kann, wenn auf die Datenbank zugegriffen werden kann und dies nicht immer der Fall ist, wenn RESTORE ausgeführt wird, verfügen Mitglieder der db_owner festen Datenbankrolle nicht über WIEDERHERSTELLUNGSberechtigungen.

Verwendung von SQL Server Management Studio

Warnung

Der normale Prozess einer Wiederherstellung besteht darin, die Protokollsicherungen im Dialogfeld "Datenbank wiederherstellen " zusammen mit den Daten und differenziellen Sicherungen auszuwählen.

So stellen Sie eine Transaktionsprotokollsicherung wieder her

  1. Nachdem Sie eine Verbindung mit der entsprechenden Instanz des Microsoft SQL Server-Datenbankmoduls hergestellt haben, klicken Sie im Objekt-Explorer auf den Servernamen, um die Serverstruktur zu erweitern.

  2. Erweitern Sie Datenbanken, und wählen Sie je nach Datenbank 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 "Vorgänge", zeigen Sie auf " Wiederherstellen", und klicken Sie dann auf "Transaktionsprotokoll wiederherstellen", wodurch das Dialogfeld " Transaktionsprotokoll wiederherstellen " geöffnet wird.

    Hinweis

    Wenn Transaction Log ausgegraut ist, müssen Sie möglicherweise erst eine vollständige oder differenzielle Sicherung wiederherstellen. Verwenden Sie das Dialogfeld "Datenbanksicherung ".

  4. Wählen Sie auf der Seite "Allgemein " im Listenfeld "Datenbank " den Namen einer Datenbank aus. Es werden nur Datenbanken im Wiederherstellungszustand aufgelistet.

  5. Um die Quelle und den Speicherort der wiederherzustellenden Sicherungssätze anzugeben, klicken Sie auf eine der folgenden Optionen:

    • Aus früheren 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.

    • Von Datei oder 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.

      Nachdem Sie die gewünschten Geräte zur Liste "Backup-Medien" hinzugefügt haben, klicken Sie auf OK, um zur Seite Allgemein zurückzukehren.

  6. Wählen Sie im Raster "Transaktionsprotokollsicherungen zum Wiederherstellen" die Sicherungen aus, die wiederhergestellt werden sollen. In diesem Raster werden die für die ausgewählte Datenbank verfügbaren Transaktionsprotokollsicherungen aufgelistet. Eine Protokollsicherung ist nur verfügbar, wenn der erste LSN größer als der letzte LSN der Datenbank ist. Protokollsicherungen werden in der Reihenfolge der enthaltenen Protokollsequenznummern (Log Sequence Numbers, LSN) aufgeführt, und sie müssen in dieser Reihenfolge wiederhergestellt werden.

    In der folgenden Tabelle sind die Spaltenüberschriften des Rasters aufgeführt und ihre Werte beschrieben.

    Kopfzeile Wert
    Wiederherstellen Ausgewählte Kontrollkästchen geben die Sicherungssets an, die wiederhergestellt werden sollen.
    Name Name des Sicherungssatzes.
    Komponente Gesicherte Komponente: Datenbank, Datei oder <leer> (für Transaktionsprotokolle).
    Datenbank Name der Datenbank, die an dem Sicherungsvorgang beteiligt ist.
    Startdatum Datum und Uhrzeit des Beginns des Sicherungsvorgangs, dargestellt in der regionalen Einstellung des Clients.
    Beendigungsdatum Datum und Uhrzeit, zu dem der Sicherungsvorgang abgeschlossen ist, wird in der regionalen Einstellung des Clients angezeigt.
    First LSN Protokollsequenznummer der ersten Transaktion im Sicherungssatz. Leer für Dateisicherungen.
    Letzter LSN Protokollsequenznummer der letzten Transaktion im Sicherungssatz. Leer für Dateisicherungen.
    Prüfpunkt LSN Protokollsequenznummer des letzten Prüfpunkts zum Zeitpunkt der Erstellung der Sicherung.
    Vollständiger LSN Protokollsequenznummer der letzten vollständigen Datenbanksicherung.
    Server Name der Datenbankmodulinstanz, die den Sicherungsvorgang ausgeführt hat.
    Benutzername Name des Benutzers, der den Sicherungsvorgang ausgeführt hat.
    Größe Größe des Sicherungssatzes in Byte.
    Position Position des Sicherungssatzes im Volume.
    Ablauf Datum und Uhrzeit, zu dem der Sicherungssatz abläuft.
  7. Wählen Sie eine der folgenden Optionen aus:

    • Punkt in der Zeit

      Behalten Sie entweder die Standardeinstellung (zuletzt möglich) bei, oder wählen Sie ein bestimmtes Datum und eine bestimmte Uhrzeit aus, indem Sie auf die Schaltfläche "Durchsuchen" klicken, wodurch das Dialogfeld "Uhrzeitwiederherstellung " geöffnet wird.

    • Markierte Transaktion

      Stellen Sie die Datenbank bis zu einer zuvor markierten Transaktion wieder her. Wenn Sie diese Option auswählen, wird das Dialogfeld "Markierte Transaktion auswählen " gestartet, in dem ein Raster mit den markierten Transaktionen angezeigt wird, die in den ausgewählten Transaktionsprotokollsicherungen verfügbar sind.

      Standardmäßig erfolgt die Wiederherstellung bis zur markierten Transaktion, jedoch ohne diese einzuschließen. Um die markierte Transaktion auch wiederherzustellen, wählen Sie " Markierte Transaktion einschließen" aus.

      In der folgenden Tabelle sind die Spaltenüberschriften des Rasters aufgeführt und ihre Werte beschrieben.

      Kopfzeile Wert
      <leer> Zeigt ein Kontrollkästchen zum Markieren des Zeichens an.
      Transaktionsmarkierung Der Name der vom Benutzer angegebenen markierten Transaktion, wenn die Transaktion zugesichert wurde.
      Datum Datum und Uhrzeit, wann die Transaktion abgeschlossen wurde. Transaktionsdatum und -uhrzeit werden in der Tabelle "msdbgmarkhistory " und nicht im Datum und der Uhrzeit des Clientcomputers angezeigt.
      Beschreibung Beschreibung der vom Benutzer angegebenen markierten Transaktion, als die Transaktion abgeschlossen wurde (falls vorhanden).
      LSN Protokollsequenznummer der markierten Transaktion.
      Datenbank Name der Datenbank, in der die markierte Transaktion übernommen wurde.
      Benutzername Name des Datenbankbenutzers, der die markierte Transaktion durchgeführt hat.
  8. Um die erweiterten Optionen anzuzeigen oder auszuwählen, klicken Sie im Seitenbereich auf "Optionen auswählen".

  9. Im Abschnitt "Wiederherstellungsoptionen " sind die folgenden Optionen verfügbar:

    • Replikationseinstellungen beibehalten (WITH KEEP_REPLICATION)

      Behält die Replikationseinstellungen beim Wiederherstellen einer veröffentlichten Datenbank auf einem anderen Server als dem Server bei, auf dem die Datenbank erstellt wurde.

      Diese Option ist nur verfügbar, wenn die Datenbank für die Verwendung bereit hält, indem nicht abgeschlossene Transaktionen zurückgesetzt werden (weiter unten beschrieben), was dem Wiederherstellen einer Sicherung mit der RECOVERY Option entspricht.

      Das Überprüfen dieser Option entspricht der Verwendung der KEEP_REPLICATION Option in einer Transact-SQL-AnweisungRESTORE .

    • Eingabeaufforderung vor dem Wiederherstellen der einzelnen Sicherungen

      Vor dem Wiederherstellen der einzelnen Sicherungssätze (nach dem ersten Schritt) wird mit dieser Option das Dialogfeld "Mit Wiederherstellen fortsetzen " angezeigt, in dem Sie angeben können, ob Sie die Wiederherstellungssequenz fortsetzen möchten. In diesem Dialogfeld wird der Name des nächsten Mediensatzes (sofern verfügbar), der Name des Sicherungssatzes und die Beschreibung des Sicherungssatzes angezeigt.

      Diese Option ist besonders nützlich, wenn Sie Tapes für verschiedene Mediensätze austauschen müssen. Sie können es z. B. verwenden, wenn der Server nur ein Bandgerät hat. Warten Sie, bis Sie bereit sind, den Vorgang fortzusetzen, bevor Sie auf "OK" klicken.

      Wenn Sie auf "Nein" klicken, bleibt die Datenbank im Wiederherstellungszustand. Sie können bei Gelegenheit die Wiederherstellungssequenz nach Abschluss der letzten Wiederherstellung fortsetzen. Wenn es sich bei der nächsten Sicherung um daten- oder differenzielle Sicherung handelt, verwenden Sie die Aufgabe "Datenbank wiederherstellen " erneut. Wenn es sich bei der nächsten Sicherung um eine Protokollsicherung handelt, verwenden Sie die Aufgabe "Transaktionsprotokoll wiederherstellen" .

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

      Stellt die wiederhergestellte Datenbank nur für die Mitglieder von db_owner, dbcreator oder sysadmin zur Verfügung.

      Die Überprüfung dieser Option ist synonym für die Verwendung der RESTRICTED_USER Option in einer Transact-SQL-AnweisungRESTORE .

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

    • Stellen Sie die Datenbank zur Nutzung bereit, indem Sie unbestätigte Transaktionen zurücksetzen. Zusätzliche Transaktionsprotokolle können nicht wiederhergestellt werden. (WIEDERHERSTELLUNGSMODUS)

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

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

    • Lassen Sie die Datenbank nicht funktionsfähig, und führen Sie kein Rollback für nicht abgeschlossene Transaktionen durch. Zusätzliche Transaktionsprotokolle können wiederhergestellt werden. (WIEDERHERSTELLEN MIT NORECOVERY)

      Lässt die Datenbank unverändert im Zustand RESTORING. Diese Option entspricht der Verwendung der NORECOVERY Option in einer Transact-SQL-AnweisungRESTORE .

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

      Von Bedeutung

      Wählen Sie für eine Spiegel- oder sekundäre Datenbank immer diese Option aus.

    • Behalten Sie die Datenbank im schreibgeschützten Modus bei. Rückgängigmachen nicht festgeschriebener Transaktionen, speichern Sie jedoch die Rückgängig-Aktionen in einer Datei, sodass Wiederherstellungseffekte rückgängig gemacht werden können. (WIEDERHERSTELLEN MIT STANDBY)

      Versetzt die Datenbank in den Standby-Modus. Diese Option entspricht der Verwendung der STANDBY Option in einer Transact-SQL-AnweisungRESTORE .

      Wenn Sie diese Option auswählen, müssen Sie eine Standbydatei angeben.

  11. Geben Sie optional einen Standbydateinamen im Textfeld " 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 in das Textfeld eingeben.

Verwenden von Transact-SQL

Von Bedeutung

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

So stellen Sie eine Transaktionsprotokollsicherung wieder her

  1. Führen Sie die RESTORE LOG-Anweisung aus, um die Transaktionsprotokollsicherung anzuwenden, wobei Folgendes angegeben wird:

    • Der Name der Datenbank, auf die das Transaktionsprotokoll angewendet wird.

    • Das Sicherungsgerät, von dem die Transaktionsprotokollsicherung wiederhergestellt wird.

    • Die NORECOVERY-Klausel.

    Die grundlegende Syntax für diese Anweisung lautet wie folgt:

    LOG DATABASE_NAME VON <BACKUP_DEVICE> MIT NORECOVERY WIEDERHERSTELLEN.

    Dabei ist database_name der Name der Datenbank und <backup_device>der Name des Geräts, das die wiederhergestellte Protokollsicherung enthält.

  2. Wiederholen Sie Schritt 1 für jede Transaktionsprotokollsicherung, die Sie anwenden müssen.

  3. Nachdem Sie die letzte Sicherung in Ihrer Wiederherstellungssequenz wiederhergestellt haben, verwenden Sie eine der 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 Sie, bis Sie die Datenbank mithilfe einer separaten RESTORE DATABASE-Anweisung wiederherstellen:

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

      Wenn Sie auf die Wiederherstellung der Datenbank warten, können Sie überprüfen, ob Sie alle erforderlichen Protokollsicherungen wiederhergestellt haben. Häufig ist dieser Ansatz ratsam, wenn Sie eine zeitpunktbezogene Wiederherstellung durchführen.

    Von Bedeutung

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

Beispiele (Transact-SQL)

Standardmäßig verwendet die AdventureWorks2012-Datenbank das einfache Wiederherstellungsmodell. In den folgenden Beispielen müssen Sie die Datenbank so ändern, dass das vollständige Wiederherstellungsmodell verwendet wird:

ALTER DATABASE AdventureWorks2012 SET RECOVERY FULL;  

A. Anwenden einer einzelnen Transaktionsprotokollsicherung

Das folgende Beispiel beginnt mit dem Wiederherstellen der AdventureWorks2012-Datenbank mithilfe einer vollständigen Datenbanksicherung, die sich auf einem Sicherungsgerät namens AdventureWorks2012_1befindet. Anschließend wird die erste Transaktionsprotokollsicherung angewendet, die sich auf einem Sicherungsgerät mit dem Namen AdventureWorks2012_logbefindet. Schließlich stellt das Beispiel die Datenbank wieder her.

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

Das folgende Beispiel beginnt mit dem Wiederherstellen der AdventureWorks2012-Datenbank mithilfe einer vollständigen Datenbanksicherung, die sich auf einem Sicherungsgerät namens AdventureWorks2012_1befindet. Das Beispiel wendet dann nacheinander die ersten drei Transaktionsprotokollsicherungen an, die sich auf einem Sicherungsgerät mit dem Namen AdventureWorks2012_logbefinden. Schließlich stellt das Beispiel die Datenbank wieder her.

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  

Verwandte Aufgaben

Siehe auch

RESTORE (Transact-SQL)
Anwenden von Transaktionsprotokollsicherungen (SQL Server)