Problembehandlung bei vollen Transaktionsprotokollen (Fehler 9002)

Aktualisiert: 14. April 2006

In diesem Thema werden mögliche Lösungen für volle Transaktionsprotokolle erörtert und Vermeidungsstrategien vorgeschlagen. Wenn das Transaktionsprotokoll voll ist, wird von SQL Server-Datenbankmodul der Fehler 9002 ausgegeben. Das Protokoll kann sich füllen, wenn die Datenbank online ist oder wiederhergestellt wird. Wenn das Protokoll gefüllt wird, während die Datenbank online ist, bleibt die Datenbank online, sie kann aber nur gelesen und nicht aktualisiert werden. Wird das Protokoll während einer Wiederherstellung gefüllt, wird die Datenbank von Datenbankmodul als RESOURCE PENDING (ausstehende Ressource) markiert. In beiden Fällen ist eine Aktion seitens des Benutzers erforderlich, um Speicherplatz im Protokoll verfügbar zu machen.

Mögliche Vorgehensweisen bei einem vollen Transaktionsprotokoll

Die richtige Reaktion auf ein volles Transaktionsprotokoll hängt zum Teil davon ab, aufgrund welcher Bedingungen das Protokoll gefüllt wurde. Mithilfe der Spalten log_reuse_wait und log_reuse_wait_desc der sys.database-Katalogsicht können Sie feststellen, wodurch eine Protokollkürzung verhindert wurde. Weitere Informationen finden Sie unter sys.databases (Transact-SQL). Eine Beschreibung von Faktoren, die eine Protokollkürzung verzögern können, finden Sie unter Faktoren, die das Abschneiden des Protokolls verzögern können..

ms175495.note(de-de,SQL.90).gifWichtig:
Wenn sich die Datenbank zu dem Zeitpunkt, als der Fehler 9002 auftrat, gerade im Wiederherstellungsmodus befand, müssen Sie nach Behebung des Problems die Datenbank mithilfe von ALTER DATABASE database_name SET ONLINE wiederherstellen.

Alternativ sind als Reaktion auf ein volles Transaktionsprotokoll auch folgende Aktionen möglich:

  • Sichern des Protokolls.
  • Freigeben von Speicherplatz, damit das Protokoll automatisch vergrößert werden kann.
  • Verschieben der Protokolldatei auf ein Laufwerk mit ausreichendem Speicherplatz.
  • Vergrößern einer Protokolldatei.
  • Hinzufügen einer Protokolldatei auf einem anderen Datenträger.
  • Abschließen oder Abbrechen einer Transaktion mit langer Ausführungszeit.

Diese Alternativen werden in den folgenden Abschnitten erläutert. Wählen Sie diejenige Aktion aus, die sich am besten für Ihre Situation eignet.

ms175495.note(de-de,SQL.90).gifHinweis:
Durch Erzwingen einer Protokollkürzung wird die Protokollkette unterbrochen, und die Datenbank bleibt bis zur nächsten vollständigen Datenbanksicherung angreifbar. Aus diesem Grund wird in einer zukünftigen Version von SQL Server die Option TRUNCATE_ONLY aus der BACKUP-Anweisung entfernt. Vermeiden Sie diese Option bei Neuentwicklungen, und planen Sie die Änderung von Anwendungen, in denen die Option derzeit verwendet wird.

Sichern des Protokolls

Falls bei Verwendung des vollständigen oder massenprotokollierten Wiederherstellungsmodells das Transaktionsprotokoll nicht vor kurzem gesichert wurde, kann durch die Sicherung eine Protokollkürzung verhindert werden. Wenn das Protokoll noch nie gesichert wurde, müssen Sie zwei Protokollsicherungen erstellen, damit das Protokoll von Datenbankmodul bis zu dem Punkt abgeschnitten werden kann, an dem die letzte Sicherung erfolgte. Durch Kürzen des Protokolls wird Speicherplatz für neue Protokolldatensätze freigegeben. Sichern Sie das Protokoll in kürzeren Abständen, damit es nicht wieder so schnell aufgefüllt wird.

So erstellen Sie eine Transaktionsprotokollsicherung

ms175495.note(de-de,SQL.90).gifWichtig:
Wenn die Datenbank beschädigt ist, ziehen Sie den Abschnitt Sicherungen des Protokollfragments zu Rate.

Freigeben von Speicherplatz

Möglicherweise können Sie durch Löschen oder Verschieben anderer Dateien Speicherplatz auf dem Laufwerk freigeben, das die Transaktionsprotokolldatei für die Datenbank enthält. Aufgrund des freigegebenen Speicherplatz kann die Protokolldatei dann durch den Wiederherstellungsmechanismus automatisch vergrößert werden.

Verschieben der Protokolldatei auf einen anderen Datenträger

Wenn Sie auf dem Laufwerk, auf dem die Protokolldatei aktuell gespeichert ist, nicht genügend Speicherplatz freigeben können, können Sie die Datei auf ein anderes Laufwerk mit ausreichendem Speicherplatz verschieben.

ms175495.note(de-de,SQL.90).gifWichtig:
Protokolldateien sollten unter keinen Umständen in komprimierten Dateisystemen gespeichert werden.

So verschieben Sie eine Protokolldatei

Vergrößern einer Protokolldatei

Wenn auf dem Protokolldatenträger Speicherplatz vorhanden ist, können Sie die Protokolldatei vergrößern.

So erhöhen Sie die Dateigröße

Wenn die automatische Vergrößerung aktiviert ist, die Datenbank online ist und auf dem Datenträger ausreichend Speicherplatz verfügbar ist, führen Sie einen der folgenden Schritte aus:

  • Erhöhen Sie die Dateigröße manuell, um die Datei einmalig um einen bestimmten Wert zu vergrößern.
  • Aktivieren Sie die automatische Vergrößerung, indem Sie mit der ALTER DATABASE-Anweisung für die Option FILEGROWTH ein Vergrößerungsinkrement ungleich Null festlegen.
ms175495.note(de-de,SQL.90).gifHinweis:
Erhöhen Sie in beiden Fällen den MAXSIZE-Wert, wenn die aktuelle Größenbeschränkung erreicht wurde.

Hinzufügen einer Protokolldatei auf einem anderen Datenträger

Fügen Sie der Datenbank mithilfe von ALTER DATABASE <database_name> ADD LOG FILE eine neue Protokolldatei auf einem anderen Datenträger hinzu, auf dem ausreichend Speicherplatz vorhanden ist.

So fügen Sie eine Protokolldatei hinzu

Identifizieren und Verwalten von lang andauernden Transaktionen

Weitere Informationen finden Sie unter Verwalten lang andauernder Transaktionen.

Siehe auch

Konzepte

Erstellen von Transaktionsprotokollsicherungen
Faktoren, die das Abschneiden des Protokolls verzögern können.
Übersicht über die Wiederherstellungsmodelle
Einführung in Transaktionsprotokolle
Verwenden von Transaktionsprotokollsicherungen

Andere Ressourcen

ALTER DATABASE (Transact-SQL)
Verwalten des Transaktionsprotokolls
sp_add_log_file_recover_suspect_db (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

14. April 2006

Neuer Inhalt:
  • Eine Beschreibung über die Auswirkung eines vollen Transaktionsprotokolls auf die Datenbankverfügbarkeit wurde hinzugefügt.
  • Informationen zum Identifizieren der Ursache eines vollen Transaktionsprotokolls mithilfe von sys.database wurden hinzugefügt.
  • Informationen zum Beheben des Fehlers 9002 aus dem früheren Thema "Problembehandlung bei unzureichendem Speicherplatz" wurden integriert.