Beispiel: Schrittweise Wiederherstellung einer Datenbank (vollständiges Wiederherstellungsmodell)

Gilt für:SQL Server

Bei einer schrittweisen Wiederherstellungssequenz wird die Datenbank auf Dateigruppenebene stufenweise wiederhergestellt, wobei mit den primären Dateigruppen sowie mit den sekundären Dateigruppen mit Lese- und Schreibberechtigung begonnen wird.

In diesem Beispiel wird die adb -Datenbank nach einem Notfall auf einem neuen Computer wiederhergestellt. Für die Datenbank wird das vollständige Wiederherstellungsmodell verwendet, weshalb vor dem Beginn der Wiederherstellung eine Protokollfragmentsicherung der Datenbank erstellt werden muss. Vor dem Notfall sind alle Dateigruppen online. Dateigruppe B ist schreibgeschützt. Alle sekundären Dateigruppen müssen wiederhergestellt werden, aber sie werden in der Reihenfolge ihrer Wichtigkeit wiederhergestellt: A (höchste Wichtigkeit), Cund schließlich B. In diesem Beispiel gibt es vier Protokollsicherungen, darunter die Protokollfragmentsicherung.

Sicherung des Protokollfragments

Vor dem Wiederherstellen der Datenbank muss der Datenbankadministrator das Protokollfragment sichern. Weil die Datenbank beschädigt ist, muss zum Erstellen der Sicherung des Protokollfragments die NO_TRUNCATE-Option verwendet werden:

BACKUP LOG adb TO tailLogBackup WITH NORECOVERY, NO_TRUNCATE  

Bei der Sicherung des Protokollfragments handelt es sich um die letzte Sicherung im Rahmen der folgenden Wiederherstellungssequenzen.

Wiederherstellen von Sequenzen

Hinweis

Die Syntax für eine Onlinewiederherstellungssequenz ist dieselbe wie bei einer Offlinewiederherstellungssequenz.

  1. Teilweise Wiederherstellung der primären und sekundären Dateigruppe A.

    RESTORE DATABASE adb FILEGROUP='Primary' FROM backup1   
       WITH PARTIAL, NORECOVERY  
    RESTORE DATABASE adb FILEGROUP='A' FROM backup2   
       WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup3 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup4 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup5 WITH NORECOVERY  
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY  
    
  2. Onlinewiederherstellung der Dateigruppe C.

    Jetzt sind die primäre Dateigruppe und die sekundäre Dateigruppe A online verfügbar. Für die Dateien in den Dateigruppen B und C steht die Wiederherstellung noch aus, d. h., die Dateigruppen sind noch offline.

    In Meldungen aus der letzten RESTORE LOG -Anweisung (in Schritt 1) wird darauf hingewiesen, dass Rollbacks für Transaktionen mit Dateigruppe C verzögert werden, da die Dateigruppe nicht verfügbar ist. Normale Vorgänge können zwar fortgesetzt werden, allerdings werden durch die Transaktionen Sperren eingerichtet, und Protokollkürzungen sind erst nach Abschluss des Rollbacks möglich.

    In der zweiten Wiederherstellungssequenz stellt der Administrator die Dateigruppe Cwieder her:

    RESTORE DATABASE adb FILEGROUP='C' FROM backup2a WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup3 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup4 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup5 WITH NORECOVERY  
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY  
    

    Die primäre Dateigruppe und die Dateigruppen A und C sind zu diesem Zeitpunkt online. Für die Dateien in der Dateigruppe B steht weiterhin die Wiederherstellung aus; die Dateigruppe ist offline. Die verzögerten Transaktionen wurden aufgelöst, und die Protokollkürzungen werden vorgenommen.

  3. Onlinewiederherstellung der Dateigruppe B.

In der dritten Wiederherstellungssequenz stellt der Administrator die Dateigruppe Bwieder her: Die Sicherung von Dateigruppe B wurde erstellt, nachdem die Dateigruppe schreibgeschützt wurde. Deshalb muss für diese Dateien bei der Wiederherstellung kein Rollforward ausgeführt werden.

RESTORE DATABASE adb FILEGROUP='B' FROM backup2b WITH RECOVERY  

Alle Dateigruppen sind nun online.

Zusätzliche Beispiele

Weitere Informationen

BACKUP (Transact-SQL)
Onlinewiederherstellung (SQL Server)
Anwenden von Transaktionsprotokollsicherungen (SQL Server)
RESTORE (Transact-SQL)
Stückwerkswiederherstellungen (SQL Server)