it-swarm.com.de

Das Transaktionsprotokoll für die Datenbank 'Datenbankname' ist aufgrund von 'XTP_CHECKPOINT' voll.

Ich habe eine Frage zu XTP_CHECKPOINT.

Ich verwende SQL Server 2014. Ich habe eine Datenbank, die sich im SIMPLE-Wiederherstellungsmodellmodus befindet. Es wird auch repliziert.

Es gibt keine offenen Transaktionen. Ich habe DBCC OPENTRAN Ausgeführt und es wird Folgendes zurückgegeben:

"Keine aktiven offenen Transaktionen."

Ich erhalte diese Meldung jedoch immer dann, wenn ich versuche, eine Tabelle zu erstellen oder zu löschen oder Daten zu löschen:
(Ich habe meinen tatsächlichen Datenbanknamen durch das Wort database_name Ersetzt.)

"Das Transaktionsprotokoll für die Datenbank 'Datenbankname' ist aufgrund von 'XTP_CHECKPOINT' voll."

Weiß jemand, warum dies passieren könnte und, was noch wichtiger ist, wie kann ich dafür sorgen, dass es aufhört?

Und ja, die Datenbank befindet sich wirklich im EINFACHEN Wiederherstellungsmodellmodus. d.h. das Transaktionsprotokoll sollte automatisch abgeschnitten werden.

Übrigens hat eine andere Datenbank, die ich im vollständigen Wiederherstellungsmodus habe, dasselbe getan und denselben Fehler zurückgegeben:

Das Transaktionsprotokoll für die Datenbank 'Datenbankname' ist aufgrund von 'XTP_CHECKPOINT' voll.

Ich habe versucht, die Einstellungen für das Protokollwachstum auf unbegrenztes Wachstum zu ändern, aber es ließ mich nicht und gab denselben Fehler zurück.

Ich kann das Problem ohne XTP-Inhalte reproduzieren, mit Ausnahme der Dateigruppe. So geht's: http://Pastebin.com/jWSiEU9

26
user3469285

Ich hatte ein ähnliches Problem: Ich hatte keine Replikation, aber nachdem ich die speicheroptimierte Tabelle als Test verwendet hatte, befand sich die Datenbank im einfachen Wiederherstellungsmodus, aber meine Transaktionsprotokolle wurden nicht abgeschnitten. Manuelles Abschneiden, auch direkt nach einer vollständigen Sicherung, ergab den Fehler:

Protokolldatei X kann nicht verkleinert werden, da die logische Protokolldatei am Ende der Datei verwendet wird.

Ein manueller Prüfpunkt ist fehlgeschlagen:

Meldung 41315, Ebene 16, Status 4, Zeile N Checkpoint-Vorgang in Datenbank X fehlgeschlagen.

Ein manueller Prüfpunkt war erst unmittelbar nach dem Neustart des SQL-Dienstes erfolgreich, was aufgrund meiner Multi-TB-Datenbankgröße zu einem 4-stündigen Wiederherstellungsstatus führen würde. Ich habe auch versucht, das automatische Wachstum auf eine bestimmte Größe einzustellen, aber am Ende hat alles dasselbe getan: Füllen Sie die Transaktionsprotokolle aus, bis kein Platz mehr vorhanden ist.

Nachdem ich Tage und Nächte versucht und recherchiert hatte, fand ich schließlich die Lösung für mein Problem, indem ich Cumulative Update 3 für SQL Server 2014 SP1 installierte

8

Stellen Sie zunächst sicher, dass die Replikation dies nicht verursacht, wie im Verbindungselement angegeben. "Log_wait_reuse_desc = XTP_CHECKPOINT bedeutet nicht unbedingt, dass der XTP-Checkpoint-Worker die Protokollkürzung aufhält." Beginnen Sie also mit sp_repltrans und stellen Sie sicher, dass alle Daten verteilt wurden.

Dann gibt es dieses kleine Snippet hier:

"Es passiert in einer Datenbank, die eine speicheroptimierte Dateigruppe hat, unabhängig davon, ob es speicheroptimierte Tabellen gibt oder nicht.

Bei der aktuellen Problemumgehung wird AutoGrown auf eine feste Größe festgelegt. Oder ändern Sie den Wiederherstellungsmodus in "Einfach" und verkleinern Sie das Protokoll. "

Wenn die Bereinigung der Replikation nicht funktioniert, versuchen Sie Folgendes:

checkpoint;
dbcc shrinkfile (Logfile, truncateonly)
alter database [database] modify file (filename = 'TRANSACTIONLOG', FILEGROWTH = 5MB)

Es wird nicht angegeben, ob dies für die Protokolldatei oder die Datenbankdateien gilt. Beginnen wir jedoch mit dem Versuch der Protokolldateien. Wenn nicht, versuchen Sie, die Datenbankdateien auf festes Wachstum einzustellen:

9
Spörri

Ich konnte das Problem umgehen, indem ich eine weitere Protokolldatei hinzufügte, die es mir ermöglichte, eine vollständige Sicherung durchzuführen, die Größe der primären Protokolldatei anzupassen und das Wachstum zu begrenzen sowie die zusätzliche Protokolldatei zu entfernen, die hinzugefügt wurde, um das XTP_CHECKPOINT-Problem zu beheben.

3
user78285

Ich habe das mit einem Kunden erlebt. Die Protokoll- und In-Memory-FILESTREAM-Datendateien befanden sich auf demselben Laufwerk. Sie haben eine neue Protokolldatei erstellt (nur wenige haben dies vorgeschlagen), aber das System kann CHECKPOINT nicht erstellen, da die speicherinternen Prüfpunktdateien (* .HKCKP) nicht erstellt werden können.

Versuchen Sie, Speicherplatz auf dem Laufwerk mit den speicherinternen FILESTREAM-Daten freizugeben.

1
Phil Grayson