Faktoren, die das Abschneiden des Protokolls verzögern können.

Durch das Abschneiden des Protokolls wird in der Protokolldatei Speicherplatz freigegeben, der von dem Transaktionsprotokoll erneut verwendet werden kann. Da der aktive Bestandteil des Protokolls durch Verkleinern nicht abgeschnitten oder entfernt werden kann, kann das Abschneiden verzögert werden, wenn Protokolldatensätze längere Zeit aktiv bleiben.

HinweisHinweis

Weitere Informationen zur Funktionsweise beim Abschneiden des Protokolls finden Sie unter Abschneiden des Transaktionsprotokolls.

Protokolldatensätze können unter einer Vielzahl von Bedingungen aktiv bleiben, die in diesem Thema beschrieben werden. Mithilfe der Spalten log_reuse_wait und log_reuse_wait_desc der sys.databases-Katalogsicht können Sie ggf. feststellen, wodurch das Abschneiden eines Protokolls verhindert wurde.

HinweisHinweis

Einige dieser Faktoren, wie z. B. eine sehr lang andauernde Transaktion oder eine angehaltene Datenbankspiegelungssitzung, können dazu führen, dass das Transaktionsprotokoll aufgefüllt wird. Weitere Informationen zum Umgang mit einem vollständigen Transaktionsprotokoll finden Sie unter Problembehandlung bei vollen Transaktionsprotokollen (Fehler 9002).

In der folgenden Tabelle werden die Werte der Spalten log_reuse_wait und log_reuse_wait_desc der sys.database-Katalogsicht kurz erläutert.

log_reuse_wait value

log_reuse_wait_desc value

Beschreibung

0

NOTHING

Derzeit ist mindestens eine wiederverwendbare virtuelle Protokolldatei vorhanden.

1

CHECKPOINT

Seit der letzten Protokollkürzung ist kein Prüfpunkt aufgetreten, oder der Header des Protokolls wurde noch nicht über eine virtuelle Protokolldatei hinaus verschoben (alle Wiederherstellungsmodelle).

Dies ist ein häufiger Grund für das verzögerte Abschneiden von Protokollen. Weitere Informationen finden Sie unter Prüfpunkte und der aktive Teil des Protokolls.

2

LOG_BACKUP

Eine Protokollsicherung ist erforderlich, um den Protokollheader nach vorne zu verschieben (nur volle oder massenprotokollierte Wiederherstellungsmodelle).

HinweisHinweis
Durch Protokollsicherungen wird nicht verhindert, dass ein Protokoll abgeschnitten wird.

Wenn die Protokollsicherung abgschlossen wurde, wird der Protokollheader nach vorne verschoben und etwas Protokollspeicherplatz kann möglicherweise wiederverwendet werden.

3

ACTIVE_BACKUP_OR_RESTORE

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

Eine Datensicherung verhält sich wie eine aktive Transaktion und verhindert, während sie durchgeführt wird, dass das Protokoll abgeschnitten wird. Weitere Informationen hierzu finden Sie im Abschnitt zu Datensicherungsvorgängen und Wiederherstellungsvorgängen weiter unten in diesem Thema.

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. Weitere Informationen finden Sie im Abschnitt zu lang andauernden aktiven Transaktionen weiter unten in diesem Thema.

  • Eine Transaktion ist verzögert (nurSQL Server 2005 Enterprise Edition und höhere Versionen). 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 Verzögerte Transaktionen.

5

DATABASE_MIRRORING

Die Datenbankspiegelung wird angehalten, oder die Spiegeldatenbank befindet sich im Modus für hohe Leistung gegenüber der Prinzipaldatenbank erheblich im Rückstand (nur beim vollständigen Wiederherstellungsmodell).

Weitere Informationen finden Sie im Abschnitt "Datenbankspiegelung und das Transaktionsprotokoll" weiter unten in diesem Thema.

6

REPLICATION

Während der Ausführung von Transaktionsreplikationen wurden für die Veröffentlichungen relevante Transaktionen noch nicht an die Verteilungsdatenbank übermittelt (nur beim vollständigen Wiederherstellungsmodell).

Weitere Informationen finden Sie im Abschnitt zur Transaktionsreplikation und dem Transaktionsprotokoll weiter unten in diesem Thema.

7

DATABASE_SNAPSHOT_CREATION

Ein Datenbanksnapshot wird gerade erstellt (alle Wiederherstellungsmodelle).

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

8

LOG_SCAN

Es findet gerade ein Protokollscan statt (alle Wiederherstellungsmodelle).

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

9

OTHER_TRANSIENT

Dieser Wert wird derzeit nicht verwendet.

Datensicherungsvorgänge und Wiederherstellungsvorgänge

Das Abschneiden von Protokollen kann während Sicherungs- oder Wiederherstellungsvorgängen nicht stattfinden. In SQL Server 2005 und höheren Versionen können Protokollsicherungen während einer Datensicherung vorgenommen werden. Bei diesen Protokollsicherungen kann jedoch das Protokoll nicht abgeschnitten werden, da für die Datensicherung das gesamte Transaktionsprotokoll verfügbar bleiben muss. Wenn mit einer Datensicherung die Protokollkürzung verhindert wird, kann eine sofortige Problemlösung im Abbrechen der Sicherung bestehen.

Weitere Informationen zur Protokollkürzung finden Sie unter Abschneiden des Transaktionsprotokolls.

Lang andauernde aktive Transaktionen

Bei Vorliegen einer aktiven Transaktion muss das Protokoll ab dem Datensatz, der den Beginn der Transaktion enthält, aktiv bleiben. Bei Transaktionen, deren Beginn und Ende vom Benutzer gesteuert werden, kann es vorkommen, dass der Benutzer eine Transaktion startet und dann seinen Arbeitsplatz verlässt, während die Transaktion auf eine Reaktion des Benutzers wartet. Dies ist z. B. eine typische Ursache für eine lang andauernde Transaktion. In solchen Fällen wird die Protokollkürzung durch die Transaktion aufgehalten. Dies führt zu einer Vergrößerung des Protokolls, obwohl durch die wartende Transaktion selbst nur wenig Protokollierung generiert wird.

HinweisHinweis

Informationen zur Vermeidung lang andauernder Transaktionen finden Sie unter Codieren effizienter Transaktionen.

Datenbankspiegelung und das Transaktionsprotokoll

Die Datenbankspiegelung setzt voraus, dass jeder Protokolldatensatz so lange aktiv bleibt, bis die Prinzipalserverinstanz von der Spiegelserverinstanz benachrichtigt wird, dass der Datensatz auf den Datenträger auf dem Spiegelserver geschrieben wurde. Wenn die Spiegelserverinstanz hinter die Prinzipalserverinstanz zurückfällt, steigt der Umfang des aktiven Protokollspeicherplatzes entsprechend. In diesem Fall müssen Sie die Datenbankspiegelung möglicherweise beenden, eine Protokollsicherung erstellen, die das Protokoll abschneidet, diese Protokollsicherung auf die Spiegeldatenbank (mithilfe von WITH NORECOVERY) anwenden und die Spiegelung neu starten.

Wichtiger HinweisWichtig

Wenn zusätzliche Protokollsicherungen nach der erforderlichen Protokollsicherung erstellt werden, können Sie darüber hinaus erst mit der Spiegelung beginnen, nachdem Sie zusätzliche Protokollsicherungen (immer mithilfe von WITH NORECOVERY) manuell angewendet haben. Nach dem Anwenden der letzten Protokollsicherung können Sie mit der Spiegelung beginnen.

Weitere Informationen finden Sie unter Entfernen der Datenbankspiegelung und Einrichten der Datenbankspiegelung.

Transaktionsreplikation und das Transaktionsprotokoll

Die Mergereplikation und die Snapshotreplikation haben im Gegensatz zur Transaktionsreplikation keine Auswirkungen auf die Transaktionsprotokollgröße. Wenn eine Datenbank eine oder mehrere Transaktionsveröffentlichungen enthält, wird das Protokoll erst dann abgeschnitten, wenn alle für die Veröffentlichungen relevanten Transaktionen an die Verteilungsdatenbank übermittelt wurden. Wenn das Transaktionsprotokoll zu umfangreich wird und der Protokolllese-Agent basierend auf einem Zeitplan ausgeführt wird, sollten Sie eine Verkürzung des Intervalls zwischen den Ausführungen oder das Festlegen der Ausführung im kontinuierlichen Modus in Betracht ziehen. Wenn der Agent so festgelegt ist, dass er im kontinuierlichen Modus ausgeführt wird (Standardeinstellung), stellen Sie sicher, dass er ausgeführt wird. Weitere Informationen zum Überprüfen des Status des Protokolllese-Agents finden Sie unter Vorgehensweise: Anzeigen von Informationen und Ausführen von Aufgaben für die einer Veröffentlichung zugeordneten Agents (Replikationsmonitor).

Wenn Sie für die Veröffentlichungsdatenbank oder für die Verteilungsdatenbank die Option 'sync with backup' festgelegt haben, wird das Transaktionsprotokoll außerdem erst abgeschnitten, nachdem alle Transaktionen gesichert wurden. Wenn das Transaktionsprotokoll zu umfangreich wird und Sie diese Option festgelegt haben, sollten Sie eine Verkürzung des Intervalls zwischen den Transaktionsprotokollsicherungen in Betracht ziehen. Weitere Informationen zum Sichern und Wiederherstellen der an der Transaktionsreplikation beteiligten Datenbanken finden Sie unter Strategien zum Sichern und Wiederherstellen einer Snapshot- und Transaktionsreplikation.

So verwalten Sie die Replikation

So überwachen Sie die Replikation