Freigeben über


Fehlerbehebung für ein vollständiges Transaktionsprotokoll (SQL Server-Fehler 9002)

In diesem Thema werden mögliche Antworten auf ein vollständiges Transaktionsprotokoll erläutert und vorgeschlagen, wie Sie es in Zukunft vermeiden können. Wenn das Transaktionsprotokoll voll ist, gibt die Microsoft SQL Server-Datenbank-Engine den Fehler 9002 aus. Das Protokoll kann ausgefüllt werden, wenn die Datenbank online oder in der Wiederherstellung ist. Falls das Protokoll während des Onlinezustands der Datenbank voll ist, bleibt die Datenbank online, aber sie kann nur gelesen und nicht aktualisiert werden. Wenn das Protokoll während der Wiederherstellung gefüllt wird, kennzeichnet das Datenbankmodul die Datenbank als RESSOURCE, die noch zugewiesen werden muss. In beiden Fällen ist eine Aktion seitens des Benutzers erforderlich, um Speicherplatz im Protokoll verfügbar zu machen.

Reagieren auf ein vollständiges Transaktionsprotokoll

Die angemessene Reaktion auf ein vollständiges Transaktionsprotokoll hängt teilweise davon ab, welche Bedingung oder Bedingungen zur vollständigen Füllung des Protokolls geführt haben. Um zu ermitteln, was das Abschneiden von Protokollen in einem bestimmten Fall verhindert, verwenden Sie die Spalten log_reuse_wait und log_reuse_wait_desc der Katalogansicht sys.database. Weitere Informationen finden Sie unter sys.databases (Transact-SQL). Beschreibungen von Faktoren, die das Abschneiden von Protokollen verzögern können, finden Sie unter Das Transaktionsprotokoll (SQL Server).

Von Bedeutung

Wenn die Datenbank beim Auftreten des Fehlers 9002 wiederhergestellt wurde, stellen Sie die Datenbank nach dem Beheben des Problems mithilfe von ALTER DATABASE database_name SET ONLINE wieder her.

Zu den Alternativen für die Reaktion auf ein vollständiges Transaktionsprotokoll gehören:

  • 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 der Größe einer Protokolldatei.

  • Hinzufügen einer Protokolldatei auf einem anderen Datenträger.

  • Abschließen oder Abbrechen einer lang andauernden Transaktion.

Diese Alternativen werden in den folgenden Abschnitten erläutert. Wählen Sie eine Antwort aus, die Ihrer Situation am besten entspricht.

Sichern des Protokolls

Wenn das Transaktionsprotokoll kürzlich nicht gesichert wurde, kann entweder das vollständige Wiederherstellungsmodell oder das Massenprotokollierungs-Wiederherstellungsmodell das Abschneiden des Protokolls verhindern. Wenn das Protokoll zuvor noch nicht gesichert wurde, müssen Sie zwei Protokollsicherungen erstellen, damit das Protokoll von der Datenbank-Engine bis zu dem Punkt abgeschnitten werden kann, an dem die letzte Sicherung erfolgt ist. 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

Von Bedeutung

Wenn die Datenbank beschädigt ist, lesen Sie Tail-Log Sicherungen (SQL Server).

Freigeben von Speicherplatz

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

Verschieben der Protokolldatei auf einen anderen Datenträger

Wenn Sie nicht genügend Speicherplatz auf dem Laufwerk freigeben können, das derzeit die Protokolldatei enthält, ziehen Sie in Betracht, die Datei mit ausreichend Speicherplatz auf ein anderes Laufwerk zu verschieben.

Von Bedeutung

Protokolldateien sollten unter keinen Umständen in komprimierten Dateisystemen gespeichert werden.

So verschieben Sie eine Protokolldatei

Vergrößern der Größe einer Protokolldatei

Wenn auf dem Protokolldatenträger Speicherplatz vorhanden ist, können Sie die Protokolldatei vergrößern. Die maximale Größe für Protokolldateien beträgt zwei Terabyte (TB) pro Protokolldatei.

So erhöhen Sie die Dateigröße

Wenn die automatische Vergrößerung deaktiviert ist, ist die Datenbank online und genügend Speicherplatz auf dem Datenträger verfügbar:

  • 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 die ALTER DATABASE-Anweisung verwenden, um ein Wachstumsinkrement ungleich Null für die FILEGROWTH-Option festzulegen.

Hinweis

Wenn der aktuelle Größengrenzwert erreicht wurde, erhöhen Sie in beiden Fällen den MAXSIZE-Wert.

Hinzufügen einer Protokolldatei auf einem anderen Datenträger

Fügen Sie der Datenbank auf einem anderen Datenträger eine neue Protokolldatei hinzu, die über ausreichendEn Speicherplatz verfügt, indem Sie ALTER DATABASE <database_name> ADD LOG FILE verwenden.

So fügen Sie eine Protokolldatei hinzu

Siehe auch

ALTER DATABASE (Transact-SQL)
Verwalten der Größe der Transaktionsprotokolldatei
Transaktionsprotokollsicherungen (SQL Server)
sp_add_log_file_recover_suspect_db (Transact-SQL)