Das Transaktionsprotokoll

Jede SQL Server-Datenbank verfügt über ein Transaktionsprotokoll, in dem alle Transaktionen sowie die Datenbankänderungen aufgezeichnet werden, die von den einzelnen Transaktionen vorgenommen werden. Um das Überlaufen des Transaktionsprotokolls zu verhindern, muss es in regelmäßigen Abständen abgeschnitten werden. Einige Faktoren können die Protokollkürzung jedoch verzögern, sodass die Überwachung der Protokollgröße wichtig ist. Einige Vorgänge lassen sich minimal protokollieren, um deren Auswirkung auf die Größe des Transaktionsprotokolls zu reduzieren.

Das Transaktionsprotokoll ist eine wichtige Komponente der Datenbank und wird im Falle eines Systemfehlers ggf. benötigt, um einen konsistenten Status der Datenbank wiederherzustellen. Das Transaktionsprotokoll sollte nur dann gelöscht oder verschoben werden, wenn die Auswirkungen dieses Vorgangs vollständig bekannt sind.

HinweisHinweis

Bekannte gute Startpunkte für die Anwendung von Transaktionsprotokollen während der Datenbankwiederherstellung werden von Prüfpunkten erstellt. Weitere Informationen finden Sie unter Datenbankprüfpunkte (SQL Server).

In diesem Thema:

  • Vorteile: Vom Transaktionsprotokoll unterstützte Vorgänge

  • Kürzung des Transaktionsprotokolls

  • Faktoren, die die Protokollkürzung verzögern können

  • Vorgänge, für die eine minimale Protokollierung verfügbar ist

  • Verwandte Aufgaben

Vorteile: Vom Transaktionsprotokoll unterstützte Vorgänge

Das Transaktionsprotokoll unterstützt die folgenden Vorgänge:

  • Wiederherstellen einzelner Transaktionen.

  • Wiederherstellen aller unvollständigen Transaktionen, wenn SQL Server gestartet wird.

  • Ausführen eines Rollforward für eine wiederhergestellte Datenbank, Datei, Dateigruppe oder Seite bis zu dem Punkt, an dem der Fehler aufgetreten ist.

  • Unterstützen der Transaktionsreplikation.

  • Lösungen zur Unterstützung von hoher Verfügbarkeit und Notfallwiederherstellung: AlwaysOn-Verfügbarkeitsgruppen, Datenbankspiegelung und Protokollversand.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Kürzung des Transaktionsprotokolls

Durch das Kürzen des Protokolls wird in der Protokolldatei Speicherplatz freigegeben, der vom Transaktionsprotokoll erneut verwendet werden kann. Die Protokollkürzung ist wichtig, um ein Auffüllen des Protokolls verhindern zu können. Durch die Protokollkürzung werden inaktive virtuelle Protokolldateien aus dem logischen Transaktionsprotokoll einer SQL Server-Datenbank gelöscht. Zudem wird Speicherplatz im logischen Protokoll zur Wiederverwendung durch das physische Transaktionsprotokoll freigegeben. Wird ein Transaktionsprotokoll nicht gekürzt, füllt sich dadurch möglicherweise der gesamte Speicherplatz des Datenträgers auf, der den zugehörigen physischen Protokolldateien zugeordnet ist.

Um dieses Problem zu vermeiden, erfolgt die Kürzung automatisch nach den folgenden Ereignissen, sofern die Protokollkürzung nicht aus bestimmten Gründen verzögert wird:

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

  • Unter dem Modell zur vollständigen oder massenprotokollierten Wiederherstellung, wenn ein Prüfpunkt seit der vorherigen Sicherung ausgelöst wurde, erfolgt die Kürzung nach einer Protokollsicherung (sofern es sich nicht um eine Kopiesicherung handelt).

Weitere Informationen finden Sie unter Faktoren, die die Protokollkürzung verzögern können weiter unten in diesem Thema.

HinweisHinweis

Die Protokollkürzung verringert nicht die Größe einer physischen Protokolldatei. Sie müssen zum Reduzieren der physischen Größe einer physischen Protokolldatei die Protokolldatei verkleinern. Informationen zum Verkleinern der Größe der physischen Protokolldatei finden Sie unter Verwalten der Größe der Transaktionsprotokolldatei.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Faktoren, die die Protokollkürzung verzögern können

Bleiben Protokolldatensätze lange aktiv, verzögert sich die Transaktionsprotokollkürzung. Dabei kann sich das Transaktionsprotokoll potenziell auffüllen.

Wichtiger HinweisWichtig

Weitere Informationen zum Umgang mit einem vollständigen Transaktionsprotokoll finden Sie unter Problembehandlung bei vollen Transaktionsprotokollen (SQL Server-Fehler 9002).

Die Protokollkürzung kann durch verschiedene Faktoren verzögert werden. Sie können ermitteln, wodurch die Protokollkürzung verhindert wird. Dazu ist sind die Spalten log_reuse_wait und log_reuse_wait_desc der Katalogsicht sys.databases abzufragen. In der folgenden Tabelle werden die Werte dieser Spalten beschrieben.

log_reuse_wait value

log_reuse_wait_desc value

Beschreibung

0

NOTHING

Derzeit ist mindestens eine wiederverwendbare virtuelle Protokolldatei vorhanden.

1

CHECKPOINT

Kein Prüfpunkt ist seit der letzten Protokollkürzung aufgetreten, oder der Kopf des Protokolls wurde noch nicht über eine virtuelle Protokolldatei hinaus verschoben. (Alle Wiederherstellungsmodelle)

Dies ist ein häufiger Grund für das verzögerte Kürzen von Protokollen. Weitere Informationen finden Sie unter Datenbankprüfpunkte (SQL Server).

2

LOG_BACKUP

Eine Protokollsicherung ist erforderlich, bevor das Transaktionsprotokoll gekürzt werden kann. (Nur Modell für die vollständige bzw. massenprotokollierte Wiederherstellung)

Bei Abschluss der nächsten Protokollsicherung wird möglicherweise ein Teil des Protokollspeicherplatzes zur Wiederverwendung freigegeben.

3

ACTIVE_BACKUP_OR_RESTORE

Es findet gerade eine Datensicherung oder eine Wiederherstellung statt (alle Wiederherstellungsmodelle).

Verhindert eine Datensicherung die Protokollkürzung, kann das unmittelbare Problem u. U. durch Abbrechen des Sicherungsvorgangs behoben werden.

4

ACTIVE_TRANSACTION

Eine Transaktion ist aktiv (alle Wiederherstellungsmodelle).

  • Möglicherweise ist beim Starten der Protkollsicherung eine lang andauernde Transaktion vorhanden. In diesem Fall ist zum Freigeben von Speicherplatz möglicherweise eine weitere Protokollsicherung erforderlich.

    HinweisHinweis

    Transaktionen mit langer Laufzeit verhindern die Protokollkürzung unter allen Wiederherstellungsmodellen, einschließlich des einfachen Wiederherstellungsmodells, unter dem im Allgemeinen das Transaktionsprotokoll an jedem automatischen Prüfpunkt gekürzt wird.

  • Eine Transaktion wird verzögert. Eine verzögerte Transaktion ist tatsächlich eine aktive Transaktion, deren Rollback aufgrund einer nicht verfügbaren Ressource blockiert ist. Weitere Informationen zu den Ursachen für verzögerte Transaktionen und zum Auflösen ihres verzögerten Zustands finden Sie unter Markierte Transaktionen [SQL Server].

5

DATABASE_MIRRORING

Die Datenbankspiegelung wurde angehalten, oder unter dem leistungsstarken Modus liegt die Spiegeldatenbank deutlich hinter der Prinzipaldatenbank. (Nur Modell zur vollständigen Wiederherstellung)

Weitere Informationen finden Sie unter Datenbankspiegelung (SQL Server).

6

REPLICATION

Während der Transaktionsreplikationen wurden für die Veröffentlichungen relevante Transaktionen noch immer nicht für die Verteilungsdatenbank bereitgestellt. (Nur Modell zur vollständigen Wiederherstellung)

Weitere Informationen zur Transaktionsreplikation finden Sie unter SQL Server-Replikation.

7

DATABASE_SNAPSHOT_CREATION

Eine Datenbank-Momentaufnahme wird erstellt. (Alle Wiederherstellungsmodelle)

Dies ist ein häufiger, im Allgemeinen jedoch nur kurz andauernder Grund für ein verzögertes Kürzen eines Protokolls.

8

LOG_SCAN

Ein Protokollscan wird ausgelöst. (Alle Wiederherstellungsmodelle)

Dies ist ein häufiger, im Allgemeinen jedoch nur kurz andauernder Grund für ein verzögertes Kürzen eines Protokolls.

9

AVAILABILITY_REPLICA

Ein sekundäres Replikat einer Verfügbarkeitsgruppe wendet Transaktionsprotokoll-Datensätze dieser Datenbank auf eine zugehörige sekundäre Datenbank an. (Modell zur vollständigen Wiederherstellung)

Weitere Informationen finden Sie unter Übersicht über AlwaysOn-Verfügbarkeitsgruppen (SQL Server).

10

Nur zur internen Verwendung.

11

Nur zur internen Verwendung.

12

Nur zur internen Verwendung.

13

OLDEST_PAGE

Ist eine Datenbank zur Verwendung von indirekten Prüfpunkten konfiguriert, ist die älteste Seite auf der Datenbank u. U. älter als die Prüfpunkt-LSN. In diesem Fall kann die älteste Seite die Protokollkürzung verzögern. (Alle Wiederherstellungsmodelle)

Informationen zu indirekten Prüfpunkten finden Sie unter Datenbankprüfpunkte (SQL Server).

14

OTHER_TRANSIENT

Dieser Wert wird derzeit nicht verwendet.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Vorgänge, für die eine minimale Protokollierung verfügbar ist

Bei der minimalen Protokollierung werden nur die Informationen protokolliert, die zum Wiederherstellen der Transaktion ohne Unterstützung der Zeitpunktwiederherstellung erforderlich sind. In diesem Thema werden die Vorgänge aufgeführt, die unter dem massenprotokollierten Wiederherstellungsmodell minimal protokolliert werden (sowie unter dem einfachen Wiederherstellungsmodell, es sei denn, es wird eine Sicherung ausgeführt).

HinweisHinweis

Unter dem vollständigen Wiederherstellungsmodell werden alle Massenvorgänge vollständig protokolliert. Sie können die Protokollierung für eine Reihe von Massenvorgängen jedoch deutlich verringern, indem Sie die Datenbank bei Massenvorgängen zeitweise zum massenprotokollierten Wiederherstellungsmodell wechseln. Die minimale Protokollierung ist effizienter als die vollständige Protokollierung und senkt die Wahrscheinlichkeit, dass ein umfangreicher Massenvorgang den verfügbaren Transaktionsprotokoll-Speicherplatz während einer Massentransaktion auffüllt. Wenn die Datenbank bei Aktivierung der minimalen Protokollierung jedoch beschädigt wird oder verloren geht, können Sie die Datenbank nicht bis zu dem Punkt wiederherstellen, an dem der Fehler aufgetreten ist.

Die folgenden Vorgänge, die unter dem vollständigen Wiederherstellungsmodell vollständig protokolliert werden, werden unter dem einfachen und massenprotokollierten Wiederherstellungsmodell minimal protokolliert:

  • Massenimportvorgänge (bcp, BULK INSERT und INSERT... SELECT). Weitere Informationen zur minimalen Protokollierung eines Massenimports in eine Tabelle finden Sie unter Voraussetzungen für die minimale Protokollierung beim Massenimport.

    HinweisHinweis

    Wenn die Transaktionsreplikation aktiviert ist, werden BULK INSERT-Vorgänge auch unter dem massenprotokollierten Wiederherstellungsmodell vollständig protokolliert.

  • SELECT INTO-Vorgänge.

    HinweisHinweis

    Wenn die Transaktionsreplikation aktiviert ist, werden SELECT INTO-Vorgänge auch unter dem massenprotokollierten Wiederherstellungsmodell vollständig protokolliert.

  • Teilupdates von Datentypen für hohe Werte mithilfe der .WRITE-Klausel in der UPDATE-Anweisung beim Einfügen oder Anfügen neuer Daten. Beachten Sie, dass die minimale Protokollierung nicht verwendet wird, wenn vorhandene Werte aktualisiert werden. Weitere Informationen zu Datentypen für hohe Werte finden Sie unter Datentypen (Transact-SQL).

  • WRITETEXT- und UPDATETEXT-Anweisungen beim Einfügen oder Anfügen neuer Daten in die Datentypspalten text, ntext und image. Beachten Sie, dass die minimale Protokollierung nicht verwendet wird, wenn vorhandene Werte aktualisiert werden.

    HinweisHinweis

    Die Anweisungen WRITETEXT und UPDATETEXT sind als veraltet markiert, sollten also in neuen Anwendungen nicht mehr verwendet werden.

  • Wenn für die Datenbank das einfache oder massenprotokollierte Wiederherstellungsmodell festgelegt ist, werden einige Index-DDL-Vorgänge minimal protokolliert, unabhängig davon, ob der Vorgang offline oder online ausgeführt wird. Die minimal protokollierten Indexvorgänge sind nachfolgend aufgeführt:

    • CREATE INDEX-Vorgänge (einschließlich indizierter Sichten).

    • ALTER INDEX REBUILD- oder DBCC DBREINDEX-Vorgänge.

      HinweisHinweis

      Die DBCC DBREINDEX-Anweisung ist als veraltet markiert, sollte also in neuen Anwendungen nicht mehr verwendet werden.

    • Neuerstellungen neuer Heaps mit DROP INDEX (falls zutreffend).

      HinweisHinweis

      Aufhebungen von Indexseitenzuordnungen während eines DROP INDEX-Vorgangs werden immer vollständig protokolliert.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Verwandte Aufgaben

Managing the transaction log

Sichern des Transaktionsprotokolls (Modell zur vollständigen Wiederherstellung)

Wiederherstellen des Transaktionsprotokolls (Modell zur vollständigen Wiederherstellung)

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Siehe auch

Konzepte

Voraussetzungen für die minimale Protokollierung beim Massenimport

Sichern und Wiederherstellen von SQL Server-Datenbanken

Datenbankprüfpunkte (SQL Server)

Anzeigen oder Ändern der Eigenschaften einer Datenbank

Wiederherstellungsmodelle (SQL Server)