Tailprotokollsicherungen (SQL Server)

Gilt für:SQL Server

Dieser Artikel ist nur für die Sicherung und Wiederherstellung von SQL Server-Datenbanken relevant, die die vollständigen oder massenprotokollierten Wiederherstellungsmodelle verwenden.

Eine Tail-Log-Sicherung erfasst alle Protokolldatensätze, die noch nicht gesichert wurden (der Tail of the log), um Arbeitsverluste zu verhindern und die Protokollkette intakt zu halten. Bevor Sie eine SQL Server-Datenbank zum neuesten Zeitpunkt wiederherstellen können, müssen Sie den Tail des Transaktionsprotokolls sichern. Die Tail-Log-Sicherung ist die letzte Sicherung, die für den Wiederherstellungsplan für die Datenbank von Interesse ist.

Nicht für alle Wiederherstellungsszenarien ist eine Sicherung des Protokollfragments erforderlich. Sie benötigen keine Tailprotokollsicherung, wenn der Wiederherstellungspunkt in einer früheren Protokollsicherung enthalten ist. Eine Tail-Log-Sicherung ist nicht erforderlich, wenn Sie eine Datenbank verschieben oder ersetzen (überschreiben), und sie nicht zu einem Zeitpunkt nach der letzten Sicherung wiederherstellen müssen.

Szenarien, die eine Sicherung des Tailprotokolls erfordern

In den folgenden Szenarien wird empfohlen, eine Sicherung des Protokollfragments auszuführen:

  • Wenn die Datenbank online ist und Sie einen Wiederherstellungsvorgang für die Datenbank ausführen möchten, beginnen Sie mit der Sicherung des Protokollfragments: Um einen Fehler für eine Onlinedatenbank zu vermeiden, müssen Sie die WITH NORECOVERY Option der BACKUP Transact-SQL-Anweisung verwenden.

  • Wenn eine Datenbank offline ist und nicht gestartet werden kann, Sie aber die Datenbank wiederherstellen möchten, sichern Sie zunächst das Protokollfragment. Da zurzeit keine Transaktionen ausgeführt werden können, verwenden Sie die WITH NO_TRUNCATE Option. NO_TRUNCATEist effektiv mit einer Sicherungskopie des Transaktionsprotokolls identisch. Die Verwendung WITH NORECOVERY ist optional, da zurzeit keine Transaktionen auftreten können.

  • Wenn eine Datenbank beschädigt ist, versuchen Sie, mithilfe der WITH CONTINUE_AFTER_ERROR Option der BACKUP Anweisung eine Tail-Log-Sicherung zu erstellen.

    Bei einer beschädigten Datenbank kann das Sichern des Protokolls nur erfolgreich sein, wenn die Protokolldateien nicht beschädigt sind, sich die Datenbank in einem Zustand befindet, der Tailprotokollsicherungen unterstützt, und die Datenbank enthält keine Massenprotokolländerungen. Wenn keine Tailprotokollsicherung erstellt werden kann, gehen alle Transaktionen, die nach der letzten Protokollsicherung übernommen wurden, verloren.

In der folgenden Tabelle sind die NORECOVERYOptionen NO_TRUNCATEund Optionen CONTINUE_AFTER_ERROR für BACKUP.

BACKUP LOG-Option Kommentare
NORECOVERY Verwenden Sie NORECOVERY , wann immer Sie beabsichtigen, mit einem Wiederherstellungsvorgang in der Datenbank fortzufahren. NORECOVERY nimmt die Datenbank in den Wiederherstellungszustand ein. Dieser Schritt garantiert, dass sich die Datenbank nach der Sicherung des Tailprotokolls nicht ändert. Das Protokoll wird abgeschnitten, es sei denn, die NO_TRUNCATE Option oder COPY_ONLY Option wird ebenfalls angegeben.

Wichtig: Vermeiden Sie die Verwendung NO_TRUNCATE, außer wenn die Datenbank beschädigt oder offline ist. Möglicherweise müssen Sie die Datenbank in den Einzelbenutzermodus versetzen, um exklusiven Zugriff zu erhalten, bevor Sie die Wiederherstellung ausführen.NORECOVERY Versetzen Sie die Datenbank nach der Wiederherstellung wieder in den Multibenutzermodus.
CONTINUE_AFTER_ERROR Verwenden Sie CONTINUE_AFTER_ERROR nur, wenn Sie den Tail einer beschädigten Datenbank sichern.

Wenn Sie den Tail des Protokolls einer beschädigten Datenbank sichern, sind einige der Metadaten, die in Protokollsicherungen erfasst wurden, möglicherweise nicht verfügbar. Weitere Informationen finden Sie im nächsten Abschnitt.

Tailprotokollsicherungen mit unvollständigen Sicherungsmetadaten

Eine Protokollfragmentsicherung erfasst das Protokollfragment selbst dann, wenn die Datenbank offline geschaltet oder beschädigt ist oder wenn Datendateien fehlen. Dies kann zu unvollständigen Metadaten aus den Befehlen zum Wiederherstellen von Informationen und msdb. In diesem Fall sind jedoch nur die Metadaten unvollständig; das erfasste Protokoll ist vollständig und kann verwendet werden.

Wenn eine Tailprotokollsicherung unvollständige Metadaten enthält, wird in der Backupset-Tabellehas_incomplete_metadata auf <a0/> festgelegt. Außerdem wird in der Ausgabe von RESTORE HEADERONLYHasIncompleteMetadata auf .1

Wenn die Metadaten in einer Tailprotokollsicherung unvollständig sind, fehlt die Tabelle "backupfilegroup " die meisten Informationen zu Dateigruppen zum Zeitpunkt der Tailprotokollsicherung. backupfilegroup Die meisten Tabellenspalten sind NULL; die einzigen aussagekräftigen Spalten sind wie folgt:

  • backup_set_id
  • filegroup_id
  • type
  • type_desc
  • is_readonly

Zugehörige Aufgaben

Informationen zum Erstellen einer Tailprotokollsicherung finden Sie unter Sichern des Transaktionsprotokolls, wenn die Datenbank beschädigt ist (SQL Server).

Informationen zum Wiederherstellen einer Transaktionsprotokollsicherung finden Sie unter "Wiederherstellen einer Transaktionsprotokollsicherung (SQL Server)".