Seite 1 von 1
Base Absturz - Totaldatenverlust. Ist noch irgendwas zu rett
Verfasst: Do, 03.05.2012 03:58
von maranooka
Hallo,
seit Wochen arbeite ich an einer Datenbank die wichtige Informationen beinhaltet hat. Heute Nacht war ich endlich fertig mit der Eingabe und wollte noch die Ausgabe (die musste nach Jahren getrennt passieren) perfektionieren - und irgendwann ist alles in zeitlupentempo lahm geworden.
Ich habe dann versucht OOBase zu beenden, was nicht ging. Oder wenigstens zu speichern, was nicht ging. Schließlich habe ich sie zwangsbeendet, dann seit dem letzten Sichern sind keine wichtigen Daten mehr dazu gekommen.
Gerade habe ich mir nochmal die Datenbank anschaun wollen und - GRUSEL - das Ding war nicht zu öffnen und zeigte eine Größe von NULL an.
Eine Sicherheitskopie gibts nicht. Speichert OO die Daten ggf. irgendwo zwischen - oder gibt es sonst eine Möglichkeit/Hoffnung, dass nicht die Arbeit der letzten vier Wochen hin ist. Die Daten muss ich nämlich nächste Woche einreichen (u.a. Finanzamt).
Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu
Verfasst: Do, 03.05.2012 05:01
von maranooka
Die gute Nachricht ist - OOBase hat irgendwie doch regelmässig Backups gemacht und zwar in dem Verzeichnis ...AppDate/Roaming/OpenOffice.org/3/user/backup
Eigentlich sollten nur alle 4min Autoherstellungsinfos gespeichert werden, doch ich habe den Eindruck OOBase hat das minütlich gemacht.
Die schlechte Nachricht ist - diese Dateien sind zwar im odb-Format, aber wenn ich sie anklicke, erscheint weder die Datenbank, noch die Abfragen, die Formulare oder sonstiges.
Zwar habe ich folgenden Trick gelesen:
viewtopic.php?f=8&t=5928 daher weiss ich schonmal, dass die ODB-Dateien im Zip-Format sind (was stimmt, habs ausprobiert), aber leider kann ich den vorgeschlagenen Weg nicht nachvollziehen. Bei mir gibts keine '.skript' und '.properties' Dateien.
Habt ihr vielleicht einen Vorschlag?
Bin etwas verzweifelellt

Pleeeeeeeaaaaaaasssssse !!!
P.S.: zumindest bin ich bei der Suche nach Lösungen auf den Oracle Report Builder (
http://extensions.services.openoffice.o ... portdesign) gestoßen. Der könnte nützlich sein, wenn ich die Datenbank wieder ans Laufen bekomme
Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu
Verfasst: Do, 03.05.2012 15:59
von RobertG
Wenn die Datei wirklich eine Größe von 0 Byte hat, wirst Du da auch nichts mehr raus holen.
Für alle weiteren Fälle habe ich einmal einen Beitrag aus dem englischsprachigen Formular übersetzt:
http://robert.familiegrosskopf.de - dort nach dem Menüpunkt "Datenbankreparatur" suchen. Müsste ich vielleicht einmal etwas überarbeiten, findet sich aber auch in dem in Kürze erscheinenden Base-Handbuch von LibreOffice.
Gruß
Robert
Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu
Verfasst: Do, 03.05.2012 22:12
von maranooka
GERETTET !!!
Habe die Datenbank glücklicherweise doch noch retten können. Natürlich nicht die 0 byte Ruine, die mir OObase zerschossen hat.
Ich habe zuerst mit dem Explorer unter Vista nach Dateien mit gleichem Namensstamm gesucht - aber Vista kann man echt in die Tonne treten. Der Vista Explorer ist nur ...
Gleiches mit dem FreeCommander - und der hat was gefunden.
Bei Vista unter C:\Users\MEIN NAME\AppData\Roaming\OpenOffice.org\3\user\backup speichert OOBase regelmässig irgendwelche Backups - ggf. Autowiederherrstellungsinformationen. Autowiederherstellen habe ich auf 4 min stehen.
So einige von den letzten funktionierten nicht, aber ich habe einfach mal die letzten Backups durchgeklickt und eines funktionierte.
Bei XP ist es der Pfad C:\Documents and Settings\MEIN NAME\Application Data\OpenOffice.org\user\backup.
Mehr Ideen gibts auch unter:
http://s2services.com/open_office.htm, die habe ich aber dann ja nicht mehr gebraucht.
Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu
Verfasst: Do, 03.05.2012 22:19
von RobertG
Eine kleine Anmerkung zu Backups und Base: Base schreibt die Daten erst beim Schließen von OpenOffice wieder in die *.odb-Datei. Dazwischen bringt ein Backup gar nichts. Aus dem Grunde habe ich ein Makro konstruiert, das mir einfach zum Start von wichtigen Datenbanken zuerst einmal eine Kopie in den Backup-Ordner schiebt. Je nach angegebener Kopienzahl fängt es z.B. nach 5 Kopien an, die jeweils älteste Kopie zu ersetzen. Denn meist ist ja gerade dann der Absturz, wenn keine Sicherung gemacht wurde.
Gruß
Robert
Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu
Verfasst: Fr, 04.05.2012 09:19
von theindless
Hallo Robert,
du stellst dieses Macro nicht zufällig zur Verfügung?

Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu
Verfasst: Fr, 04.05.2012 17:04
von RobertG
Kein Problem, alles, was ich so verwertbar finde, erscheint sowieso im Base-Handbuch von LibreOffice:
Code: Alles auswählen
SUB Datenbankbackup
REM Von der Datenbankdatei *.odb wird eine Kopie in das Backup-Verzeichnis erstellt.
REM Die Maximalzahl an Kopien ist auf 5 Kopien eingestellt. Anschließend wird die älteste Kopie ersetzt.
REM Dieses Verfahren deckt nicht ab:
REM - Dateneingaben, die bei bereits geöffneter Datenbank gemacht werden, da die Daten erst beim Schließen der Datei in die *.odb-Datei geschrieben werden.
DIM oPath AS OBJECT
DIM oDoc AS OBJECT
DIM sTitel AS STRING
DIM sUrl_Ziel AS STRING
DIM sUrl_Start AS STRING
DIM i AS INTEGER
DIM k AS INTEGER
oDoc = ThisComponent
sTitel = oDoc.Title
sUrl_Start = oDoc.URL
oPath = createUnoService("com.sun.star.util.PathSettings")
FOR i = 1 TO 6
IF NOT FileExists(oPath.Backup & "/" & i & "_" & sTitel) THEN
IF i > 5 THEN
FOR k = 1 TO 4
IF FileDateTime(oPath.Backup & "/" & k & "_" & sTitel) <= FileDateTime(oPath.Backup & "/" & k+1 & "_" & sTitel) THEN
i = k
EXIT FOR
END IF
NEXT
END IF
EXIT FOR
END IF
NEXT
sUrl_Ziel = oPath.Backup & "/" & i &"_" & sTitel
FileCopy(sUrl_Start,sUrl_Ziel)
END SUB
Gruß
Robert
Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu
Verfasst: Sa, 05.05.2012 12:39
von theindless
Hallo Robert,
vielen Dank... bestimmt auch in anderen Programmteilen mit leichten Änderungen sehr gut verwendbar
theindless
Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu
Verfasst: Sa, 05.05.2012 22:55
von F3K Total
Hallo Robert,
RobertG hat geschrieben:Base schreibt die Daten erst beim Schließen von OpenOffice wieder in die *.odb-Datei. Dazwischen bringt ein Backup gar nichts.
Dieses Problem ist mir auch schon aufgefallen.
Im Zuge irgendeines Threads hier, hat DPunch den schönen Befehl
erklärt.
Wenn man während einer Sitzung an OOoBase (mit embedded HSQLDB) zwischenzeitlich diese Sub ausführt,
Code: Alles auswählen
sub Testflush
oCon = ThisDatabaseDocument.CurrentController
If NOT ( oCon.isConnected() ) Then oCon.connect()
oDataSource = ocon.DataSource
oDataSource.flush
end sub
ich habe es gerade nochmal probiert, kann man OOo mit dem Taskmanager abschiessen, die Wiederherstellung verwerfen, die Daten wurden mit dem .flush auf die Platte geschrieben und sind hinterher noch da.
Gruß R
Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu
Verfasst: So, 06.05.2012 11:23
von RobertG
Hallo R.,
vielleicht kann ich ja den entsprechenden Tip auch in eine Backup-Lösung einbauen, die dann nicht nur eine Dateikopie vom Anfangsstand beim Öffnen anfertigt, sondern eben während der Nutzung ein echtes Backup des Momentanstandes erstellt. Ist natürlich die Frage, wie weit ein Rückschreiben auf die Platte während des Betriebes auch bei größeren Datenbanken nicht störend wirkt.
Gruß
Robert
Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu
Verfasst: So, 06.05.2012 12:51
von F3K Total
Hallo Robert,
RobertG hat geschrieben:vielleicht kann ich ja den entsprechenden Tip auch in eine Backup-Lösung einbauen, die dann nicht nur eine Dateikopie vom Anfangsstand beim Öffnen anfertigt, sondern eben während der Nutzung ein echtes Backup des Momentanstandes erstellt. Ist natürlich die Frage, wie weit ein Rückschreiben auf die Platte während des Betriebes auch bei größeren Datenbanken nicht störend wirkt.
Na, das wäre doch gut.
Ich habe es gerade mit einer DB, die 135.000 Datensätze beinhaltet, ausprobiert. Dauert auf meinem W7 Laptop
(2,2GHz DualCore , 3GB RAM, 32 bit)
etwa
eine Sekunde.
Wie oft man die Daten wegspeichern sollte, kann ich nicht sagen.
Ist zu häufiges "flushen" eventuell schädlich für die Festplatte?
Vielleicht kann uns einer der DB-Profis da mal einen Tip geben?
Beste Grüße von R