Επισκευη αρχειου odb σε Ubuntu

Μετά από καιρό χρήσης μια βάση φτιαγμένη σε openoffice base «χτύπησε» με αποτέλεσμα το base να μην μπορεί να την ανοίξει μη καταλαβαίνοντας τον τύπο του αρχείου και βγάζοντας την οθόνη επιλογής τύπου.

Φυσικά backup δεν υπήρχε και η βάση περιείχε πολλά σημαντικά, για την λειτουργιά της επιχείρησης που την χρησιμοποιούσε, στοιχειά.
Αλλά ας δούμε παρακάτω πως σώθηκε.

Τα αρχεία odb είναι στην πραγματικότητα μετονομασμένα αρχεία zip που περιέχουν μια σειρά από άλλα χρήσιμα για την λειτουργιά της βάσης αρχεία. Ειδικότερα περιέχεται και ένας φάκελος database οπού μέσα βρίσκονται τα δεδομένα,στην περίπτωση αυτή ακριβός το αρχείο που είχε καταστραφεί ήταν το data που στην ουσία περιέχει τα δεδομένα!

Το data έβγαζε CRC error με αποτέλεσμα να μην μπορεί να γίνει ούτε εξαγωγή των υπόλοιπων με τον archive manager. Ευτυχώς ο archive mounter δεν είναι τόσο αυστηρός και έκανε κανονικά mount τα περιεχόμενα του αρχείου.

Μεσα στον φάκελο database υπάρχει και το αρχειο backup που στην περίπτωση αυτή ήταν ευτυχώς άθιχτο. Το base στηρίζει την λειτουργιά του στην βάση HSQLDB και η διαδικασία για recover στις περιπτώσεις που το αρχείο data έχει καταστραφεί είναι σχετικά εύκολη.

Να λοιπόν τι έκανα.
Αντέγραψα όλα τα αρχεία από τον φάκελο που έφτιαξε ο Archive mounter σε έναν άλλο φάκελο με ονομα recover.
Μέσα στον φάκελο recover/database έσβησα το data δημιούργησα ένα κενό αρχείο με το όνομα data στην θέση του κατεστραμένου.
Άνοιξα για επεξεργασία το αρχείο properties και εκεί που έλεγε modified=no το άλλαξα σε modified=yes επίσης εκεί που έλεγε hsqldb.log_size=10 το άλλαξα σε hsqldb.log_size=0
Έφτιαξα με τον archive manager ένα αρχείο zip με τα περιεχόμενα του φακέλου recover και άλλαξα την κατάληξη απο zip σε odb.

Αυτό ήταν! τα δεδομένα είχαν σωθεί και ο επιχειρηματίας υποσχέθηκε ότι θα παίρνει συχνότερα backup 😉