Abschneiden des Transaktionsprotokolls

Wenn Protokolleinträge nie aus dem Transaktionsprotokoll gelöscht würden, würde dieses irgendwann einmal den gesamten verfügbaren Speicherplatz einnehmen, der für die physischen Protokolldateien zur Verfügung steht. Durch die Protokollkürzung wird automatisch Speicherplatz im logischen Protokoll freigegeben, der von dem Transaktionsprotokoll erneut verwendet werden kann.

Die Protokollkürzung erfolgt automatisch wie folgt, außer es tritt aus irgendeinem Grund eine Verzögerung auf:

  • Unter dem einfachen Wiederherstellungsmodell, nach einem Prüfpunkt.

  • Unter dem vollständigen oder 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, kann sie durch verschiedene Faktoren verzögert werden. 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..

Wichtiger HinweisWichtig

Im Falle einer langen Verzögerung der Protokollkürzung kann sich das Transaktionsprotokoll füllen. 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

Unter dem vollständigen oder massenprotokollierten Wiederherstellungsmodell kann der inaktive Teil des Protokolls erst gekürzt werden, wenn alle Protokolleinträge 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 unter dem vollständigen oder massenprotokollierten Wiederherstellungsmodell abgeschnitten 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 WITH COPY_ONLY nicht angegeben.

So sichern Sie das Transaktionsprotokoll

Funktionsweise von Protokollabschneidungen

HinweisHinweis

Durch das Abschneiden wird nicht die Größe einer physischen Protokolldatei verringert. Die physische Größe einer Protokolldatei wird nur durch Verkleinern der Datei verringert. Informationen zum Verkleinern der Größe der physischen 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 physischen Protokolldatei. Neue Protokolldatensätze werden am Ende des logischen Protokolls hinzugefügt, das in Richtung des Endes des physischen Protokolls erweitert wird. Das Transaktionsprotokoll in einer Datenbank erstreckt sich über eine oder mehrere physische Dateien. SQL Server Database Engine (Datenbankmodul) teilt jede physische Protokolldatei intern in mehrere virtuelle Protokolldateien auf. Bei der Protokollkürzung wird Speicherplatz in dem logischen Protokoll freigegeben, indem die inaktiven virtuellen Protokolldateien vom Beginn des logischen Protokolls gelöscht werden. Ausführliche Informationen über die 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.

HinweisHinweis

Weitere Informationen zur Funktionsweise von virtuellen Protokolldateien finden Sie unter Physische Architektur des Transaktionsprotokolls.

Beim Ausführen des Prüfpunkts 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