Base Absturz - Totaldatenverlust. Ist noch irgendwas zu rett

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

maranooka
Beiträge: 6
Registriert: Di, 03.04.2012 01:13

Base Absturz - Totaldatenverlust. Ist noch irgendwas zu rett

Beitrag 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).
maranooka
Beiträge: 6
Registriert: Di, 03.04.2012 01:13

Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu

Beitrag 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 :o 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
RobertG
********
Beiträge: 2069
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu

Beitrag 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
maranooka
Beiträge: 6
Registriert: Di, 03.04.2012 01:13

Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu

Beitrag 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.
:D :D :D :D

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.
RobertG
********
Beiträge: 2069
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu

Beitrag 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
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu

Beitrag von theindless »

Hallo Robert,

du stellst dieses Macro nicht zufällig zur Verfügung? :D
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
RobertG
********
Beiträge: 2069
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu

Beitrag 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
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu

Beitrag von theindless »

Hallo Robert,

vielen Dank... bestimmt auch in anderen Programmteilen mit leichten Änderungen sehr gut verwendbar

theindless
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu

Beitrag 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

Code: Alles auswählen

.flush
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
RobertG
********
Beiträge: 2069
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu

Beitrag 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
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Base Absturz - Totaldatenverlust. Ist noch irgendwas zu

Beitrag 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
Antworten