Faktoren, die das Abschneiden des Protokolls verzögern können.
Aktualisiert: 17. Juli 2006
Die Protokollkürzung gibt Speicherplatz in der Protokolldatei zur Wiederverwendung durch das Transaktionsprotokoll frei. Da der aktive Teil des Protokolls durch Verkleinern nicht gekürzt oder entfernt werden kann, kann die Kürzung verzögert werden, wenn Protokolldatensätze längere Zeit aktiv bleiben.
Hinweis: |
---|
Weitere Informationen zur Funktionsweise der Protokollkürzung finden Sie unter Kürzung des Transaktionsprotokolls. |
Protokolleinträge können unter einer Vielzahl von Bedingungen aktiv bleiben. Diese werden in diesem Thema beschrieben. Mithilfe der log_reuse_wait-Spalte und der log_reuse_wait_desc-Spalte der sys.database-Katalogsicht können Sie feststellen, wodurch ggf. eine Protokollkürzung verhindert wurde.
Hinweis: |
---|
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 folgenen Tabelle sind die Werte der log_reuse_wait-Spalte und der log_reuse_wait_desc-Spalte der sys.databaseKatalogsicht beschrieben.
log_reuse_wait value
log_reuse_wait_desc value
Beschreibung
0
NOTHING
Derzeit gibt es mindestens eine wiederverwendbare virtuelle Protokolldatei.
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 vorwärts zu bewegen (nur bei vollständigen oder massenprotokollierten Wiederherstellungsmodellen).
Hinweis:
Protokollsicherungen verhindern keine Kürzung.
Wenn die Protokollsicherung abgeschlossen ist, wird der Protokollheader vorwärts bewegt, und ein gewisser Teil des Protokollspeicherplatzes kann 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 gekürzt 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).
- Eine Transaktion mit langer Laufzeit könnte beim Start der Protokollsicherung vorhanden sein. In diesem Fall ist für das Freigeben des Speicherplatzes möglicherweise eine weitere Protokollsicherung erforderlich. Weitere Informationen finden Sie im Abschnitt zu lang andauernden aktiven Transaktionen weiter unten in diesem Thema.
- Eine Transaktion wird verzögert (nurSQL Server 2005 Enterprise Edition und höhere Versionen). Eine verzögerte Transaktion entspricht effektiv einer aktiven Transaktion deren Rollback aufgrund einiger nicht verfügbarer Ressourcen blockiert wurde. Weitere Informationen zu den Ursachen verzögerter Transaktionen und wie der verzögerte Zustand der Transaktion beendet werden kann, 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 Publikationen 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 eine verzögerte Protokollkürzung.
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 eine verzögerte Protokollkürzung.
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 auftreten. 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. Wenn Sie Dateisicherungen ausführen, kann mithilfe von WITH NO_LOG eventuell das Problem der Verhinderung der Protokollkürzung vermieden werden.
Weitere Informationen zur Protokollkürzung finden Sie unter Kürzung des Transaktionsprotokolls.
Wichtig: |
---|
Die Optionen NO_LOG und TRUNCATE_ONLY der BACKUP LOG-Anweisung werden in einer künftigen Version von SQL Server entfernt. Mit diesen Optionen wird der inaktive Teil des Protokolls entfernt, ohne das Protokoll zu sichern, bzw. wird das Protokoll abgeschnitten, indem alles außer dem aktiven Protokoll verworfen wird. Dadurch wird die Protokollkette unterbrochen. Bis zum Erstellen der nächsten vollständigen oder differenziellen Datenbanksicherung ist die Datenbank nicht vor einem Medienausfall geschützt. Deshalb sollten Sie unbedingt das Verwenden dieser Optionen bei neuen Entwicklungen vermeiden und die Änderung von Anwendungen einplanen, die diese Optionen derzeit verwenden. |
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.
Hinweis: |
---|
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.
Wichtig: |
---|
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 keinen Einfluss auf die Größe des Transaktionsprotokolls, bei Transaktionsreplikationen ist dies jedoch möglich. Wenn eine Datenbank eine oder mehrere Transaktionspublikationen enthält, wird das Protokoll nicht gekürzt, bis alle für die Publikationen 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 in Betracht ziehen. Oder Sie legen den Agent so fest, dass er im kontinuierlichen Modus ausgeführt wird. 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 Publikation zugeordneten Agents (Replikationsmonitor).
Wenn Sie für die Publikationsdatenbank 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
Siehe auch
Konzepte
Prüfpunkte und der aktive Teil des Protokolls
Kürzung des Transaktionsprotokolls
Verkleinern des Transaktionsprotokolls
Problembehandlung bei vollen Transaktionsprotokollen (Fehler 9002)
Andere Ressourcen
Verwalten des Transaktionsprotokolls