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.
[Nach oben]
Verwenden von SQL Server Management Studio
Vorsicht |
---|
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
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.
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.
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.
Hinweis Ist Transaktionsprotokoll ausgegraut, muss ggf. eine vollständige oder differenzielle Sicherung wiederhergestellt werden. Verwenden Sie das Sicherungsdialogfeld Datenbank.
Wählen Sie auf der Seite Allgemein im Listenfeld Datenbank den Namen einer Datenbank aus. Es werden nur Datenbanken im Wiederherstellungsstatus aufgeführt.
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.
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.
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.
Klicken Sie zum Anzeigen oder Auswählen der erweiterten Optionen auf Optionen im Bereich Seite auswählen.
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.
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.
Wichtig 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.
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.
[Nach oben]
Verwenden von Transact-SQL
Wichtig |
---|
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
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.
Wiederholen Sie Schritt 1 für jede anzuwendende Transaktionsprotokollsicherung.
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.
Wichtig 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
[Nach oben]
Verwandte Aufgaben
Wiederherstellen einer Datenbanksicherung (SQL Server Management Studio)
Wiederherstellen einer Datenbank bis zu einer markierten Transaktion (SQL Server Management Studio)
[Nach oben]