Anwenden von Transaktionsprotokollsicherungen
Dieses Thema ist nur für das vollständige und für das massenprotokollierte Wiederherstellungsmodell relevant.
In diesem Thema wird das Anwenden von Transaktionsprotokollsicherungen als Bestandteil der Wiederherstellung einer SQL Server-Datenbank erläutert. Für das Anwenden einer Transaktionsprotokollsicherung müssen folgende Voraussetzungen erfüllt sein:
- Als Erstes muss die unmittelbar vorherige vollständige oder differenzielle Datenbanksicherung wiederhergestellt werden.
- Alle nach dieser vollständigen oder differenziellen Datenbanksicherung erstellten Transaktionsprotokolle müssen in chronologischer Reihenfolge wiederhergestellt werden. Wenn eine Transaktionsprotokollsicherung in dieser Protokollkette verloren gegangen oder beschädigt ist, können Sie nur Transaktionsprotokolle vor dem fehlenden wiederherstellen.
- Die Datenbank wurde noch nicht wiederhergestellt. Die Datenbank kann erst wiederhergestellt werden, nachdem das letzte Transaktionsprotokoll angewendet wurde. Wenn Sie die Datenbank nach dem Wiederherstellen einer der Zwischen-Transaktionsprotokollsicherungen (einer Sicherung vor dem Ende der Protokollkette) wiederherstellen, können Sie die Datenbank nicht zu einem späteren Zeitpunkt als diesem wiederherstellen, ohne die gesamte Wiederherstellungssequenz, beginnend mit der vollständigen Datenbanksicherung, neu zu starten.
Wiederherstellungs- und Transaktionsprotokolle
Wenn Sie den Wiederherstellungsvorgang abschließen und die Datenbank wiederherstellen, wird während der Wiederherstellung für alle unvollständigen Transaktionen ein Rollback ausgeführt. Dies wird als Rollbackphase bezeichnet. Das Rollback ist erforderlich, um die Integrität der Datenbank wiederherzustellen. Nach dem Rollback wird die Datenbank online geschaltet, und es können keine weiteren Transaktionsprotokollsicherungen auf die Datenbank angewendet werden.
So kann z. B. eine Reihe von Transaktionsprotokollsicherungen eine lang andauernde Transaktion enthalten. Der Start der Transaktion wird in der ersten Transaktionsprotokollsicherung, das Ende der Transaktion jedoch in der zweiten Transaktionsprotokollsicherung aufgezeichnet. Es gibt keinen Datensatz für einen Commit- oder Rollbackvorgang in der ersten Transaktionsprotokollsicherung. Wenn ein Wiederherstellungsvorgang nach dem Anwenden der ersten Transaktionsprotokollsicherung ausgeführt wird, wird die lang andauernde Transaktion als unvollständig behandelt, und für die in der ersten Transaktionsprotokollsicherung aufgezeichneten Datenänderungen dieser Transaktion wird ein Rollback ausgeführt. In SQL Server ist das Anwenden einer zweiten Transaktionsprotokollsicherung nach diesem Zeitpunkt nicht zulässig.
Hinweis: |
---|
Unter bestimmten Umständen können Sie eine Datei während der Protokollwiederherstellung explizit hinzufügen. Weitere Informationen finden Sie unter Steuern des Erstellens von hinzugefügten Dateien während eines Rollforwards. |
Ausreichende Protokollsicherungen für eine Wiederherstellungssequenz
Es müssen ausreichend Protokolldatensätze gesichert sein, damit eine Wiederherstellungssequenz abgeschlossen werden kann. Die erforderlichen Protokollsicherungen (einschließlich der Sicherung des Protokollfragments, sofern erforderlich) müssen vor dem Start einer Wiederherstellungssequenz zur Verfügung stehen.
Verwenden von Protokollsicherungen zum Wiederherstellen des Zustands vor dem Fehler
Nehmen Sie die folgende Ereignissequenz an.
Zeit | Ereignis |
---|---|
8:00 Uhr |
Sichern der Datenbank zum Erstellen einer vollständigen Datenbanksicherung. |
12:00 Uhr |
Sichern des Transaktionsprotokolls. |
16:00 Uhr |
Sichern des Transaktionsprotokolls. |
18:00 Uhr |
Sichern der Datenbank zum Erstellen einer vollständigen Datenbanksicherung. |
20:00 Uhr |
Sichern des Transaktionsprotokolls. |
21:45 Uhr |
Fehler tritt auf. |
Hinweis: |
---|
Eine Erklärung dieser Beispielsequenz von Sicherungen finden Sie unter Erstellen von Transaktionsprotokollsicherungen. |
Zum Wiederherstellen des Datenbankzustands von 21:45 Uhr (Zeitpunkt des Fehlers) kann eines der folgenden Verfahren verwendet werden:
Alternative 1: Wiederherstellen der Datenbank mithilfe der letzten vollständigen Datenbanksicherung
- Erstellen Sie eine Sicherung des Protokollfragments des aktuell aktiven Transaktionsprotokolls zum Zeitpunkt des Fehlers.
- Stellen Sie nicht die vollständige Datenbanksicherung von 8:00 Uhr wieder her. Stellen Sie stattdessen die neuere vollständige Datenbanksicherung von 18:00 Uhr wieder her, und wenden Sie dann die Transaktionsprotokollsicherung von 20:00 Uhr und die Sicherung des Protokollfragments an.
Dies findet noch einmal für die Sicherung des Transaktionsprotokollfragments von 21:45 Uhr statt.
Alternative 2: Wiederherstellen der Datenbank mithilfe einer früheren vollständigen Datenbanksicherung
Hinweis: |
---|
Dieser alternative Vorgang ist nützlich, wenn Sie aufgrund eines Problems die vollständige Datenbanksicherung von 18:00 Uhr nicht verwenden können. Dieser Vorgang dauert länger als das Wiederherstellen der vollständigen Datenbanksicherung von 18:00 Uhr. |
- Erstellen Sie eine Sicherung des Protokollfragments des aktuell aktiven Transaktionsprotokolls zum Zeitpunkt des Fehlers.
- Stellen Sie die vollständige Datenbanksicherung von 8:00 Uhr und anschließend alle vier Transaktionsprotokollsicherungen in der chronologischen Reihenfolge wieder her. Dadurch wird ein Rollforward für alle abgeschlossenen Transaktionen bis 21:45 Uhr ausgeführt.
Diese Alternative verdeutlicht, welche redundante Sicherheit eine zwischen eine Folge vollständiger Datenbanksicherungen geschaltete Kette von Transaktionsprotokollsicherungen bietet.
Verwenden von Protokollsicherungen zum Wiederherstellen einer Datenbank zu einem bestimmten Zeitpunkt
In einigen Fällen können Sie auch mit Transaktionsprotokollen eine Datenbank zu einem bestimmten Zeitpunkt wiederherstellen. Weitere Informationen finden Sie unter Wiederherstellen einer Datenbank bis zu einem Punkt in einer Sicherung.
Anwenden von Transaktionsprotokollsicherungen
Eine bewährte Methode besteht darin, alle Protokollsicherungen wiederherzustellen. Dies erfolgt mithilfe von WITH NORECOVERY:
RESTORE LOG database_name FROM <backup_device> WITH NORECOVERY
Nach dem Wiederherstellen der letzten Protokollsicherung stellen Sie die Datenbank in einem separaten Vorgang wieder her:
RESTORE DATABASE database_name WITH RECOVERY
So wenden Sie eine Transaktionsprotokollsicherung an
- Vorgehensweise: Anwenden einer Transaktionsprotokollsicherung (Transact-SQL)
- Vorgehensweise: Wiederherstellen einer Transaktionsprotokollsicherung (SQL Server Management Studio)
So stellen Sie einen Wiederherstellungspunkt wieder her
- Vorgehensweise: Wiederherstellen des Status vor dem Fehler (Transact-SQL)
- Vorgehensweise: Wiederherstellen bis zu einem bestimmten Zeitpunkt (SQL Server Management Studio)
- SqlRestore (SMO)
Siehe auch
Andere Ressourcen
Verstehen und Verwalten von Transaktionsprotokollen
Hilfe und Informationen
Informationsquellen für SQL Server 2005
Änderungsverlauf
Version | Verlauf |
---|---|
17. Juli 2006 |
|