![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: SQL
Firebird GDB verkleinern
Hallo,
mein Problem ist folgendes: Ich habe eine GDB wo täglich daten eingepflegt werden, alle 7 tage sollen dann die alten Daten gelöscht werden. OK - so weit so gut. Das GDB File wird dadurch aber leider nicht kleiner sondern wächst stetig. Warum ist relativ klar, weil die Pages nicht mitgelöscht werden. Meine Lösung ist von daher folgende: Die Metadaten der Datenbankstruktur extrahieren, die Daten der Datenbank in ein skript exportieren, eine neue Datenbank mit den Metadaten erzeugen und dann per skript füllen. Das ganze spiel ist leider recht aufwendig, was noch nicht so schlimm ist aber es dauert leider auch sehr lange. Kennt vielleicht jemand eine alternative Lösung? vielen Dank im vorraus, Sar |
Re: Firebird GDB verkleinern
Hi,
ganz einfach: ein Backup-Restore Zyklus durchführen! Nach der Löschaktion erstellst Du ein Backup der Datenbank und lässt es gleich wieder herstellen. Das hat den Vorteil, dass alle gelöschten Daten aus der Datenbank verschwinden und dass alle Indizes wieder neu aufgebaut werden und die Datenbank (nach umfangriechen Insert/Deleteaktionen) wieder schneller reagiert. Lemmy |
Re: Firebird GDB verkleinern
Hi Lemmy,
erstmal danke für die schnelle Antwort, :) hilft mir leider nicht, bei 'ner Datenbank von 270MB dauer das ganze spiel ziemlich lange (ca. 10min). Da geht das mit dem Skript einiges schneller (ca. 3min). gruss, Sar |
Re: Firebird GDB verkleinern
Hi,
warum sind die 10 Minuten zu lange? Brauchst Du einen ständigen Zugriff auf die DB? Lemmy |
Re: Firebird GDB verkleinern
@Lemmy, yep, eimal das und ausserdem:
werden täglich neue Daten hinzugefügt, bei diesem vorgang wird auch das backup durchgeführt, wenn man dann 10min. warten muss bis mal was passiert ist das ziemlich nervig. Gruss, Sar |
Re: Firebird GDB verkleinern
Hi,
gut, dann hast Du vermutlich kaum ne andere Chance. Ich habe mir überlegt mit eine Zweit-DB was zu machen, aber da hast Du immer das Problem, wie Du damit die erste ersetzten kannst. Das geht nur vernünftig (und sicher) über ein Backup-Restore. Lemmy |
Re: Firebird GDB verkleinern
Yep, da bin ich auch gelandet, hehe.
Hab mal rumgebastelt und versucht raus zu bekommen wo der die ganze Zeit verbrezelt. Dabei ist mir aufgefallen das er nur ab und zu so lange braucht !!! Manchmal haut er das ganze auch in 19sek. durch. Also hab ich untersucht was den Unterschied ausmacht... Ergebniss: nach dem Aufbau der gbk kommt noch starting transactions und dann lange zeit nix! Irgendwann scheint er dann wieder Lust zu bekommen und läuft dann los... Danach geht es wieder superschnell... merkwürdig. Ich bastel da mal noch was dran rum... wenn ich nämlich den Firebird server abschiesse und die Applikation neu starte dann geht es auf einmal innerhalb von 19sek., muss das ganze jetzt nur noch so hinbekommen das er immer so funktioniert. Transactions commited und so weiter hab ich natürlich schon durch. Bin für jeden Tip dankbar... Gruss, Sar |
Re: Firebird GDB verkleinern
Hi,
mit welchen Komponenten (BackupService und RestoreService) arbeitest Du - IBX, UIB, FIBPLus,...?? Wenn IBX, dann versuch mal die UIB(kostenlos) zu verwenden (also nur Restore und Backupservice) haben bei mir anstandslos funktioniert. Das mit der langen REstore-Backupzeit kommt mir irgenwie bekannt vor... Lemmy ![]() |
Re: Firebird GDB verkleinern
hehe, danke !
Hab ich allerdings schon, das selbe Problem, scheint irgent wie am Firebird server zu hängen... gruss, Sar |
Re: Firebird GDB verkleinern
Mann... Du machst es einem aber wirklich schwer :-)
Viel Glück! Lemmy P.S.: Wenn Du ne Lösung für das Problem findest, würde ich mich über ne Nachricht sehr freuen! |
Re: Firebird GDB verkleinern
Klar mach ich Lemmy, :)
Hab's jetzt eingekreist. Zum testen kann man eine gdb nehmen eine Tabelle darin mit 200.000 Einträgen füllen, diese dann wieder löschen. Danach mal en backup machen, beim gbk erzeugen braucht der dann ewig Zeit. Jetzt muss ich den nur noch davon Überzeugen das er schneller wird, hehe. Ich sag bescheid wenn ich hab. Gruss, Sar |
Re: Firebird GDB verkleinern
@Lemmy,
Ich arbeite gerade direkt mit der gbak.exe hab als parameter -g (keine Garbage Collection durchführen) und -ignore (checksumfehler ignorieren) benutzt. Jetzt geht es in ca. 30sek. Schätze ich hab's, sieht jedenfalls gut aus. Teste aber noch weiter. Danke jedenfalls für all Deine Mühe und Hilfe. :cheers: Bis denne, Sar |
Re: Firebird GDB verkleinern
Für alle Neueinsteiger in Firebird Datenbanken:
Ich hab hier 'nen ziemlich guten Link gefunden, der u.a. auch die Admintools erklärt: ![]() An dieser Stelle mal ein dickes Danke an Consic.de ! :thumb: Gruss, Sar |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz