Kürzung des Transaktionsprotokolls

Aktualisiert: 15. September 2007

Wenn Protokolleinträge nie aus dem Transaktionsprotokoll gelöscht würden, würde das logische Protokoll irgendwann den gesamten verfügbaren Speicherplatz einnehmen, der für die physikalischen Protokolldateien verfügbar ist. Bei der Protokollkürzung wird Speicherplatz für die erneute Verwendung durch das Transaktionsprotokoll freigegeben.

Die Protokollkürzung erfolgt automatisch wie folgt, es sei denn, die Protokollkürzung wird aus irgendeinem Grund verzögert.

  • Bei dem einfachen Wiederherstellungsmodell nach einem Prüfpunkt.
  • Beim vollständigen und beim massenprotokollierten Wiederherstellungsmodell nach einer Protokollsicherung, wenn seit der vorherigen Sicherung ein Prüfpunkt aufgetreten ist. Weitere Informationen finden Sie unter "Abschneiden des Protokolls bei Verwendung des vollständigen und des massenprotokollierten Wiederherstellungsmodells" weiter unten in diesem Thema.

Obwohl die Protokollkürzung automatisch erfolgt, gibt es eine Vielzahl von Faktoren, durch die sie verzögert werden kann. Weitere Informationen zu Faktoren, durch die die Protokollkürzung verzögert werden kann, finden Sie unter Faktoren, die das Abschneiden des Protokolls verzögern können..

ms189085.note(de-de,SQL.90).gifWichtig:
Im Falle einer langen Verzögerung der Protokollkürzung kann dies dazu führen, dass das Transaktionsprotokoll aufgefüllt wird. Weitere Informationen zum Umgang mit einem vollen Transaktionsprotokoll finden Sie unter Problembehandlung bei vollen Transaktionsprotokollen (Fehler 9002).

Informationen zur Architektur der Protokollkürzung finden Sie unter "Funktionsweise von Protokollabschneidungen" weiter unten in diesem Thema.

Abschneiden des Protokolls bei Verwendung des vollständigen und des massenprotokollierten Wiederherstellungsmodells

Beim vollständigen oder massenprotokollierten Wiederherstellungsmodell kann der inaktive Teil des Protokolls erst gekürzt werden, wenn alle darin enthaltenen Protokolldatensätze in einer Protokollsicherung erfasst wurden. Dies ist erforderlich, um die Protokollkette intakt zu halten. Eine Protokollkette besteht aus einer Reihe von Protokolldatensätzen mit einer lückenlosen Sequenz von Protokollfolgenummern (Log Sequence Number, LSN). Das Protokoll wird beim Sichern des Transaktionsprotokolls abgeschnitten, sofern die folgenden Bedingungen vorliegen:

  • Seit der letzten Sicherung des Protokolls ist ein Prüfpunkt aufgetreten. Ein Prüfpunkt ist zwar wichtig, aber alleine nicht ausreichend, damit das Protokoll beim vollständigen oder massenprotokollierten Wiederherstellungsmodell gekürzt wird. Nach einem Prüfpunkt bleibt das Protokoll mindestens bis zur nächsten Transaktionsprotokollsicherung intakt.
    Weitere Informationen finden Sie unter Prüfpunkte und der aktive Teil des Protokolls.
  • Das Abschneiden des Protokolls wird durch keine anderen Faktoren verhindert.
    Im Allgemeinen wird der Protokollspeicherplatz bei regelmäßigen Sicherungen in regelmäßigen Abständen für die spätere Verwendung freigegeben. Verschiedene Faktoren, unter anderem lang andauernde Transaktionen, können das Abschneiden des Protokolls jedoch vorübergehend verhindern. Weitere Informationen finden Sie unter Faktoren, die das Abschneiden des Protokolls verzögern können..
  • In der BACKUP LOG-Anweisung wird weder WITH NO_TRUNCATE noch WITH NO_LOG oder WITH COPY_ONLY angegeben.
    ms189085.note(de-de,SQL.90).gifWichtig:
    Durch die NO_LOG-Option und die TRUNCATE_ONLY-Option der BACKUP LOG-Anweisung wird die Protokollkette unterbrochen, da sie den inaktiven Teil des Protokolls entfernen, ohne eine Sicherungskopie davon zu erstellen. Bis zur nächsten vollständigen oder differenziellen Datenbanksicherung ist die Datenbank nicht vor einem Medienausfall geschützt. Dieses Feature wird in der nächsten Version von Microsoft SQL Server entfernt. Verwenden Sie dieses Feature nicht zum Entwickeln neuer Anwendungen, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird, zum frühstmöglichen Zeitpunkt ein.

So sichern Sie das Transaktionsprotokoll

Funktionsweise von Protokollabschneidungen

ms189085.note(de-de,SQL.90).gifHinweis:
Durch das Abschneiden wird nicht die Größe einer physikalischen Protokolldatei verringert. Die physikalische Größe einer Protokolldatei wird nur durch Verkleinern der Datei verringert. Informationen zum Verkleinern der Größe der physikalischen Protokolldatei finden Sie unter Verkleinern des Transaktionsprotokolls.

Das Transaktionsprotokoll ist eine umbrechende Protokolldatei. Wenn die Datenbank erstellt wird, beginnt die logische Protokolldatei am Anfang der ersten physikalischen Protokolldatei. Neue Protokolldatensätze werden am Ende des logischen Protokolls hinzugefügt, das in Richtung des Endes des physikalischen Protokolls erweitert wird. Das Transaktionsprotokoll in einer Datenbank erstreckt sich über eine oder mehrere physikalische Dateien. SQL Server-Datenbankmodul teilt jede physikalische Protokolldatei intern in mehrere virtuelle Protokolldateien auf. Die Protokollkürzung gibt Speicherplatz in der logischen Protokolldatei frei, indem die inaktiven virtuellen Protokolldateien vom Beginn des logischen Protokolls entfernt werden. Ausführliche Informationen zur Transaktionsprotokollarchitektur finden Sie unter Logische Architektur des Transaktionsprotokolls und Physische Architektur des Transaktionsprotokolls.

Virtuelle Protokolldateien stellen die Einheiten des Speichers dar, der wiederverwendet werden kann. Nur virtuelle Protokolldateien, die lediglich inaktive Protokolldatensätze enthalten, können abgeschnitten werden. Der aktive Teil des Transaktionsprotokolls, das aktive Protokoll, kann nicht abgeschnitten werden, da er zum Wiederherstellen der Datenbank benötigt wird. Das aktive Protokoll wird durch den letzten Prüfpunkt definiert. Bis zu diesem Prüfpunkt kann das Protokoll abgeschnitten werden.

ms189085.note(de-de,SQL.90).gifHinweis:
Weitere Informationen zur Funktionsweise von virtuellen Protokolldateien finden Sie unter Physische Architektur des Transaktionsprotokolls.

Beim Ausführen des Prüfpunktes wird der inaktive Teil des Transaktionsprotokolls als wiederverwendbar markiert. Anschließend kann der inaktive Teil durch Abschneiden des Protokolls freigegeben werden. Beim Abschneiden des Protokolls werden die inaktiven virtuellen Protokolldateien für die Wiederverwendung freigegeben. Wenn ein neuer Datensatz in ein freigegebenes virtuelles Protokoll geschrieben wird, wird diese virtuelle Protokolldatei wieder aktiv..

Ein Teil der in einem Prüfpunkt aufgezeichneten Informationen besteht aus der Protokollfolgenummer (Log Sequence Number, LSN) des ersten Protokolldatensatzes, der für eine erfolgreiche Durchführung eines datenbankweiten Rollbacks vorhanden sein muss. Diese LSN wird als Mindestwiederherstellungs-LSN (MinLSN) bezeichnet. Der aktive Teil des Protokolls beginnt mit dem virtuellen Protokoll, in dem die MinLSN enthalten ist. Wenn ein Transaktionsprotokoll abgeschnitten wird, werden nur die Protokolldatensätze vor dieser virtuellen Protokolldatei für die Wiederverwendung freigegeben.

Die folgenden Abbildungen zeigen ein Transaktionsprotokoll vor und nach dem Abschneiden. In der ersten Abbildung wird ein Transaktionsprotokoll gezeigt, das noch nie abgeschnitten wurde. Aktuell verwendet das logische Protokoll vier virtuelle Protokolldateien. Das logische Protokoll beginnt am Anfang der ersten virtuellen Protokolldatei und endet beim virtuellen Protokoll 4. Der MinLSN-Datensatz befindet sich im virtuellen Protokoll 3. Die virtuellen Protokolle 1 und 2 enthalten nur inaktive Protokolldatensätze. Diese Datensätze können abgeschnitten werden. Das virtuelle Protokoll 5 wurde noch nicht verwendet und ist nicht Teil des aktuellen logischen Protokolls.

Transaktionsprotokoll mit vier virtuellen Protokollen

Die zweite Abbildung zeigt das Protokoll, nachdem es abgeschnitten wurde. Die virtuellen Protokolle 1 und 2 wurden für die Wiederverwendung freigegeben. Das logische Protokoll beginnt nun am Anfang von des virtuellen Protokolls 3. Das virtuelle Protokoll wird immer noch nicht verwendet und ist daher nicht Teil des aktuellen logischen Protokolls.

Protokolldatei unterteilt in vier virtuelle Protokolldateien

Siehe auch

Konzepte

Prüfpunkte und der aktive Teil des Protokolls
Festlegen von Datenbankoptionen
Verwenden von Transaktionsprotokollsicherungen
Auswählen des Wiederherstellungsmodells für eine Datenbank
Übersicht über die Wiederherstellungsmodelle

Andere Ressourcen

BACKUP (Transact-SQL)
Truncate Method

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

15. September 2007

Geänderter Inhalt:
  • Der Einführungstext wurde überarbeitet, um zu verdeutlichen, dass die Protokollkürzung automatisch erfolgt, außer alle virtuellen Protokolldateien enthalten ein aktives Protokoll.
  • Die Informationen zur Architektur wurden von der Einführung in den Abschnitt "Funktionsweise von Protokollabschneidungen" verschoben.
  • Es wurden Links zum Thema der Sicherung des Transaktionsprotokolls hinzugefügt.

14. April 2006

Geänderter Inhalt:
  • Die Ausführungen zu den Auswirkungen des Wiederherstellungsmodells auf das Abschneiden des Protokolls wurden erweitert.
  • Die Beschreibungen zu den Abbildungen wurden verdeutlicht.