Seite 1 von 2

Transaction Counter zurücksetzen

Verfasst: Mo 14. Okt 2019, 07:40
von WaltersTim
Hallo zusammen,

ich habe eine Frage zu einem aktuellen Fall, der mich gerade beschäftigt.

Folgende Situation:
Ich habe eine Anwendung, die auf eine Firebird Datenbank (Version 2.1) zugreift. Die Anwendung hatte aufeinmal Fehler im Bezug auf den Datenbankzugriff.
Ich habe herausgefunden, dass der Transaction Counter ausgeschöpft war. Soweit kein Problem, ich habe die Datenbank gesichert und wiederhergestellt und es läuft wieder problemlos.

Jetzt zu meiner Frage:
Muss ich regelmäßige Restore Vorgänge durchführen, um den Counter zurückzusetzen oder geschieht das auch bei einem Backup?

Vielen Dank für die Hilfe
Tim

Re: Transaction Counter zurücksetzen

Verfasst: Mo 14. Okt 2019, 09:04
von bfuerchau
Ja, daran hat sich nichts geändert.
Ich glaube aber, dass ab 3.0 der Zähler auf BIGINT erweitert wurde.

Der Vorteil eines regelmäßigen Save/Restore liegt ebenso in der Verdichtung und auch durchaus Beschleunigung der Datenbank.
Z.B. 40GB dauern nur ca. 1,5 Stunden!

Re: Transaction Counter zurücksetzen

Verfasst: Mo 14. Okt 2019, 13:10
von WaltersTim
Alles klar, danke :)
Dann werd ich mal einen Task dafür einrichten.

Re: Transaction Counter zurücksetzen

Verfasst: Mo 14. Okt 2019, 20:51
von martin.koeditz
Hallo,

noch eine weitere Anmerkung hierzu. Nach jeder Änderung eines DB-Objektes (z.B. Tabelle) wird der jeweilge Metadaten-Zähler inkrementiert. Dies funktioniert jedoch "nur" 254 mal. Danach wird Firebird weitere Änderungen verweigern. In diesem Falle ist ebenfalls ein Backup / Restore notwendig.

Siehe auch
https://firebirdsql.org/file/documentat ... ts-de.html

Gruß
Martin

Re: Transaction Counter zurücksetzen

Verfasst: Di 15. Okt 2019, 09:42
von bfuerchau
Was passiert, wenn man den Zähler nach einer Änderung wieder zurücksetzt?
Gibt es da noch eine andere Abhängigkeit?

Bisher hatte ich aber noch nicht das Bedürfnis eine Tabelle bis zu 255 mal zu ändern.

Re: Transaction Counter zurücksetzen

Verfasst: Di 15. Okt 2019, 13:37
von martin.koeditz
Hallo bfuerchau,

den Zähler kann nur mit einem Restore zurückgesetzt werden. Danach ist alles wieder OK. Das ist (leider) historisch bedingt. Gerade in Entwicklungs-DBs kann man schnell dort landen. Plötzlich kann ich z.B. ein Feld nicht mehr anpassen und weiß gar nicht weshalb...

Ich habe auch schon DBs gesehen, die regelmäßig Tabellen per Stored Procedure ändern. Dort haben wir dann das gleiche Problem.

Gibt also nichts weiter zu beachten.

Gruß
Martin

Re: Transaction Counter zurücksetzen

Verfasst: Di 15. Okt 2019, 16:47
von bfuerchau
Also ich habe es nun mal mit FB 2.5 ausprobiert und den Zähler auf 1 zurückgesetzt (einfach per Update).
Die nächste Tabellenänderungen setzt den Wert dann korrekt auf 2.

Es gibt also kein Problem, den Zähler zurückzusetzen.

Re: Transaction Counter zurücksetzen

Verfasst: Di 15. Okt 2019, 17:50
von martin.koeditz
bfuerchau hat geschrieben: Di 15. Okt 2019, 16:47 Also ich habe es nun mal mit FB 2.5 ausprobiert und den Zähler auf 1 zurückgesetzt (einfach per Update).
Die nächste Tabellenänderungen setzt den Wert dann korrekt auf 2.
Für 2.5 ist das möglich. Ab 3.0 können Systemtabellen nicht mehr manipuliert werden. ;)

Gruß
Martin

Re: Transaction Counter zurücksetzen

Verfasst: Di 15. Okt 2019, 18:28
von bfuerchau
Da sollte dann ber der Zähler auch größer sein.

Re: Transaction Counter zurücksetzen

Verfasst: Mi 1. Apr 2020, 16:15
von Gerd
Hallo bfuerchau.
bfuerchau hat geschrieben: Di 15. Okt 2019, 16:47 Also ich habe es nun mal mit FB 2.5 ausprobiert und den Zähler auf 1 zurückgesetzt (einfach per Update).
Die nächste Tabellenänderungen setzt den Wert dann korrekt auf 2. ...
In welcher $RDBTabelle/Feld bitte wird der Wert (2) gespeichert?


Viele Grüße
Gerd