Transaction Counter zurücksetzen

Forum für neue Firebird-Anwender.

Moderator: thorben.braun

WaltersTim
Beiträge: 2
Registriert: Mo 14. Okt 2019, 07:35

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
bfuerchau
Beiträge: 484
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

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!
WaltersTim
Beiträge: 2
Registriert: Mo 14. Okt 2019, 07:35

Alles klar, danke :)
Dann werd ich mal einen Task dafür einrichten.
Benutzeravatar
martin.koeditz
Beiträge: 440
Registriert: Sa 31. Mär 2018, 14:35

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
Martin Köditz
it & synergy GmbH
bfuerchau
Beiträge: 484
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

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.
Benutzeravatar
martin.koeditz
Beiträge: 440
Registriert: Sa 31. Mär 2018, 14:35

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
Martin Köditz
it & synergy GmbH
bfuerchau
Beiträge: 484
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

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.
Benutzeravatar
martin.koeditz
Beiträge: 440
Registriert: Sa 31. Mär 2018, 14:35

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
Martin Köditz
it & synergy GmbH
bfuerchau
Beiträge: 484
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

Da sollte dann ber der Zähler auch größer sein.
Gerd
Beiträge: 234
Registriert: Di 1. Okt 2019, 17:13

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
Linux Mint 21.3 Virginia Cinnamon 6.0.4
Firebird 5.0.0., Embedded, ISQL: LI-V5.0.0.1306
Lazarus 3.0.0 - FPC 3.2.2
Antworten