Seite 1 von 2
externe hsqldb
Verfasst: Mi, 09.10.2013 09:29
von bbberti
Hallo,
ich habe es gestern mit viel Herumprobieren geschafft, nach der Methode "Großkopf" eine bestehende base-DB (embedded) mit einer extra installierten hsqld b zu verbinden.
Im Prinzip läuft alles, aber zwei Fragen habe ich noch:
1. Wo sind jetzt genau die Daten? Sind sie weiter in der Datenbank-Datei oder sind sie irgendwo in einem Ordner hsqldb? Das will ich wissen, um dann auch die richtigen Daten mit einem back-up zu erfassen.
2. Abfragen lassen sich nicht mehr direkt mit Doppelklick aufrufen,nur über bearbeiten und dann ausführen. Das ist nicht schlimm, außer es wäre ein Anzeichen für ein Problem.
Danke für Antworten
Grüße
Berti
Re: externe hsqldb
Verfasst: Mi, 09.10.2013 11:51
von bbberti
Nochmal Präzisierung der Frage:
Wenn ich meine Datenbank mit base öffne (sie heißt SOFA), dann steht unten nicht embedded HSQLDB, sondern jdbc und der Pfad zur Datei. Ich denke, das ist ein Beleg, dass die hsqldb extern am Rechner angesprochen wird.
Wenn ich meine Datei "SOFA" auf externer Festplatte als back-up speichere und von dort öffne, zeigt diese auch bei älteren back-ups den aktuellen Datenbestand. Ich befürchte deshalb, dass ich nur das Front-end im back-up speichere, nicht jedoch die eigentliche Datenbank.
Meine Frage deshalb: Von was muss ich ein back-up machen, um bei Störungen der Datenbank auf einen älteren Stand zurückgreifen zu können?
Im Prinzip weiß ich nicht, wo letztlich die Informationen über Formulare, Berichte etc einerseits gespeichert sind und wo andererseits die Tabellen mit ihren Inhalten. Bis jetzt war alles in einer .odb-Datei vereint, und mein Laien-Denken sagt mir, dass bei einer ausgelagerten hqsldb ja die Daten der Tabellen woanders sein müssten.
Grüße
Berthold
Re: externe hsqldb
Verfasst: Mi, 09.10.2013 12:34
von F3K Total
Hi,
bbberti hat geschrieben:1. Wo sind jetzt genau die Daten?
die Antwort hast Du selbst bereits geschrieben:
bbberti hat geschrieben:Wenn ich meine Datenbank mit base öffne (sie heißt SOFA), dann steht unten nicht embedded HSQLDB, sondern jdbc und der Pfad zur Datei.
HTH
Gruß R
Re: externe hsqldb
Verfasst: Mi, 09.10.2013 12:43
von bbberti
ok.
Wenn ich jetzt ein back-up der Datei mache, dann einen Datensatz ändere, dann ein erneutes back-up mache, müsste nach meinem Gefühl das erste back-up die Änderung nicht enthalten, das zweit schon. Ist aber nicht so, die Änderung ist auch da, wenn ich das ältere back-up öffne.
Meine Sorge: Die Datenbank geht kaputt, im back-up kann ich auch nur auf den aktuellen Stand - also kaputt - zugeifen.
Grüße
Berti
Re: externe hsqldb
Verfasst: Mi, 09.10.2013 16:27
von F3K Total
Hi,
kannst Du mal den "Pfad", der unten angezeigt wird, schicken?
Das Verhalten ist aus meiner Sicht normal:
- Der Pfad zeigt auf das Backend, die Datenbank, das sind die Dateien (.script, .properties, .data, .backup)
- Du machst ein Backup der Dateien, dann werden die Daten (.script, .properties ...) und das Frontend, die .odb-Datei gesichert.
- Der Pfad innerhalb der .odb der auf die Daten (.script, .properties ...) zeigt, ändert sich nicht, d.h. auch wenn du ein Backup der Daten machst greift die gesicherte .odb auf die ursprüngliche Datenbank zu. Die wurde in deinem zweiten Schritt geändert.
Ein Beispiel:
- Der Pfad zu den Daten lautet:
Code: Alles auswählen
hsqldb:file:///C:/SOFA;default_schema=true;shutdown=true
- Das Frontend, die Datei SOFA.odb liegt hier:
- Du sicherst die Datei und den Ordner SOFA hier:
- Nun öffnest Du die Datei
- Dann greift diese nach wie vor auf
Code: Alles auswählen
hsqldb:file:///C:/SOFA;default_schema=true;shutdown=true
zu, und nicht auf das Backup
- Um die gesicherten Daten zu sehen, müßtest du den Pfad in der Datei so anpassen:
Code: Alles auswählen
hsqldb:file:///C:/BACKUP/SOFA;default_schema=true;shutdown=true
Gruß R
Re: externe hsqldb
Verfasst: Mi, 09.10.2013 17:08
von bbberti
Hallo!
der Pfad der SOFA-Datenbank ist hsqldb:file:/Benutzer/SOFA;default_schema=true
außerdem habe ich unter Benutzer hsqldb installiert.
Bei meinen Versuchen, das Ganze hinzubekommen, ist ein zweiter Ordner "Benutzer" entstanden mit dem Pfad Benutzer/R-W-F/SOFA/hsqldb/hsqldb-2.2.9/hsqldb/SOFA/Meta-Inf.
Im ersten R-W-F-Ordner des Pfades gibt es eine .txt Datei namens SOFA und SOFA.properties und SOFA.script;
Im tiefsten "SOFA"-Ordner gibt es nochmal SOFA.properties, SOFA.script sowie eine .txt Datei Namens DATA, eine .txt Datei namens SOFA (ohne Text), eine Datei namens data.properties
Eine Datei SOFA.backup finde ich nicht.
Da ich ziemlich wild hin und her probiert habe, die Verbindung hinzubekommen, ist wohl etwas Chaos entstanden und ich weiß jetzt nicht, woran ich erkenne, was ich löschen kann und welche Ordner ich für das back-up Program auswählen soll. Momentan habe ich im back-up Programm den gesamten zweit-genannten R-W-F-Ordner sowie die Datei SOFA aus dem ersten Pfad zur Sicherung angegeben
Grüße
Berthold
Re: externe hsqldb
Verfasst: Mi, 09.10.2013 21:42
von RobertG
Hallo Berthold,
Deine Daten müssen die folgende Zusammensetzung haben:
Datenbankname.backup
Datenbankname.data
Datenbankname.properties
Datenbankname.script
Datenbankname.log
Das ganze liegt, wenn die Information stimmig ist, im Pfad Benutzer/SOFA
Die Datei Datenbankname.log existiert wie einige andere Dateien nur, wenn die Datenbank geöffnet ist. Ich habe das eben schnell einmal probeweise mit einer DB getestet. *.data und *.backup sind auf keinen Fall Textdateien. *.properties und *.script sehr wohl. Öffne doch einfach einmal Deine Datenbank. Habe gleichzeitig den Pfad Benutzer/SOFA im Auge. Da entsteht bei Öffnen eine SOFA.log, eine SOFA.lck sowie ein Verzeichnis SOFA.tmp . Schließe ich die Datenbank wieder, so verschwinden diese Dateien. Ich habe mich da an die etwas ergänzte Anleitung gehalten, die im aktuellen Handbuch steht:
Code: Alles auswählen
Wichtig, damit auch Daten in die Datenbank über die GUI geschrieben werden können, muss ergänzend neben dem Datenbanknamen «;default_schema=true» stehen. Dies kann noch durch ein «;shutdown=true» ergänzt werden, damit die DB nach dem Schließen von LO heruntergefahren wird.
Es muss nicht einmal LO heruntergefahren werden, sondern nur die Datenbank selbst geschlossen zu werden.
Gruß
Robert
Re: externe hsqldb
Verfasst: Do, 10.10.2013 10:16
von bbberti
Also:
die Dateien .log, properties, backup etc. sind alle da, wenn ich meine SOFA Datenbank mit 7-zip öffne. Die Dateien sind dort unter Database, ohne SOFA vorne dran. Die Datei-Größen sind auch so, dass ich mir vorstellen kann, da ist alles drin. Mich irritiert nur sehr dieser parallele "Benutzer"-Ordner. Ich habe jetzt mit Versuch und Irrtum alles raus gezogen, was möglich war und die Datenbank trotzdem laufen lässt. Es bleiben jetzt nur eine .txt-Datei namens SOFA sowie die Dateien SOFA.properties und SOFA.script. Die kann ich auch rauslöschen, werden nach jedem öffnen der Datenbank aber wieder hineingeschrieben - stört eigentlich nicht.
Es läuft ja auch alles gut und ich denke, ich habe die Struktur so reduziert, dass alles überflüssige weg ist.
Vielleicht kann mir jemand noch jemand einen Tipp mit diesem 2. Benutzer-Ordner geben. Ansonsten schon mal Danke an alle für die Hilfe.
Berthold
Re: externe hsqldb
Verfasst: Do, 10.10.2013 14:56
von bbberti
Ich hab jetzt nochmal alles umstrukturiert:
Im Pfad: C:/Benutzer/R-W-F/SOFA sind die Dateien SOFA.properties, SOFA.backup, SOFA.data und SOFA.script
im Pfad D:/User/R-W-F ist die Datei SOFA.odb, bei der ich die "database" rausgelöscht habe.
Vielleicht kann mir jemand bestätigen, ob das jetzt so korrekt ist.
Grüße
Berthold
Re: externe hsqldb
Verfasst: Do, 10.10.2013 17:20
von RobertG
Hallo Berthold,
das Verzeichnis "database" in Deiner *.odb-Datei kannst Du ruhig bestehen lassen. Das interessiert nicht mehr, denn Du greifst auf die externe Datenbank zu.
Das externe Verzeichnis müsste bei Dir jetzt als
hsqldb:file:/C:/Benutzer/R-W-F/SOFA
in der *.odb-Datei angegeben sein. Wo die *.odb-Datei liegt ist egal.
Das externe Verzeichnis ist das, in dem sich die von mir beschriebenen vorübergehenden Dateien und Verzeichnisse bilden, wenn Du die *.odb-Datei öffnest. Dieses Verzeichnis kannst Du beständig sichern, um ein entsprechendes Backup zu haben.
Du solltest folgendes auf jeden Fall noch wissen: Wenn ich den Thread richtig gelesen habe arbeitest Du mit der HSQLDB 2.2.9. Du kannst also die Daten nicht irgendwann einfach zurück in die interne Datenbank packen, da die Versionen der HSQLDB nicht abwärtskompatibel sind. Du kannst vermutlich auch nicht mit einer anderen internen Datenbank und der gleichen Office-Installation arbeiten, da immer angenommen wird, dass die entsprechende externe HSQLDB diejenige ist, mit der Du arbeitest.
Gruß
Robert
Re: externe hsqldb
Verfasst: Do, 10.10.2013 17:52
von bbberti
Hallo!
hsqldb:file:/C:/Benutzer/R-W-F/SOFA
so kann ich es in der Fußzeile der geöffneten Datenbank lesen. Ich denke, das ist ok.
Da dies vrmutlich die einzige Datenbank in meinem Leben sein wird, mit der ich an diesem Rechner arbeite, dürften die genannten Probleme nicht ausschlaggebend sein.
Folgefragen:
1. Sind in den von Dir genannten Dateien auch die Formulare und Berichte gespeichert oder bleiben diese Infos in der .odb-Datei?
2. Was muss ich machen, wenn ich mal eine neuere office-Version nutzen möchte?
Schöne Grüße
Berthold
Re: externe hsqldb
Verfasst: Do, 10.10.2013 21:53
von RobertG
Hallo Berthold,
bbberti hat geschrieben:
Folgefragen:
1. Sind in den von Dir genannten Dateien auch die Formulare und Berichte gespeichert oder bleiben diese Infos in der .odb-Datei?
2. Was muss ich machen, wenn ich mal eine neuere office-Version nutzen möchte?
1. Die Formulare und berichte haben nichts mit den Daten der Datenbank zu tun. Sie werden in dem *.odb-Container gelagert. Das gleiche gilt für die Abfragen. Die Datenbank enthält nur die Elemente, die Du in der *.odb-Datei unter dem Reiter "Tabellen" sehen kannst - also Tabellen und Ansichten. Außerdem ist in der Datenbank gespeichert, was Du (vielleicht) unter Extras → Beziehungen definiert hast.
2. Du hast doch irgendwie Dein jetziges Office mit dem hsqldb.jar-file verbunden. Vermutlich über Extras → Optionen → Erweitert → Class-Pfad . Diesen Schritt musst Du dann neu machen, wenn Du eine neue Office-Version nimmst, die sich nicht bei den bisherigen Benutzereinstellungen bedient. Ich würde bei jedem Wechsel erst einmal versuchen, weiterhin mit der Datei zu arbeiten. Erst bei einer Fehlermeldung musst Du dann einmal sehen, ob die Java-Einstellungen noch stimmen.
Gruß
Robert
Re: externe hsqldb
Verfasst: Mi, 08.01.2014 17:21
von bbberti
Hallo,
ich hole diesen Thread nochmal hervor. Ich habe allerdings jetzt festgestellt, dass sdie Ausführung komplexere Abfragen als Grundlage meiner Berichte deutlich länger brauchen als vorher in der internen Datenbank. Gibt es da Tipps, wie ich das beschleunigen kann?
Danke schon mal.
Berti
Re: externe hsqldb
Verfasst: Mi, 08.01.2014 17:31
von F3K Total
Hi,
hast Du mal hin und wieder
und
über Extras/SQL ... ausgeführt?
Das könnte helfen, da die DB so komprimiert und reindiziert wird.
Nach dem
OpenOffice direkt komplett schliessen und neu starten.
Gruß R
Re: externe hsqldb
Verfasst: Mi, 08.01.2014 17:45
von bbberti
Hallo,
habe beides ausprobiert, aber keine erkennbare Änderung. Eine Abfrage, die 20 Tabellen einbezieht, dauert 90 sec, bis das Ergebnis ausgespuckt wird. Vorher waren es vielleicht 10 sec.
Grüße
Berti