Ένας διεφθαρμένος DBF αρχείο μπορεί να σταματήσει τη λειτουργία των λογιστικών συστημάτων, των βάσεων δεδομένων αποθεμάτων και των εφαρμογών CRM. Αυτός ο οδηγός καλύπτει κάθε πρακτική μέθοδο επιδιόρθωσης ενός DBF αρχείο, από απλούς ελέγχους συσχετισμένων αρχείων έως ανακατασκευή σε δεκαεξαδικό επίπεδο, ταξινομημένα από τη λιγότερο επεμβατική έως την πιο επεμβατική.
1. Εισαγωγή
1.1 Τι είναι ένα DBF Αρχείο?
A DBF Το αρχείο είναι μια δομημένη μορφή αρχείου βάσης δεδομένων σε μορφή πίνακα που αναπτύχθηκε αρχικά για το dBASE και αργότερα υιοθετήθηκε από τα FoxPro, Clipper, Visual FoxPro και πολλές παλαιότερες επιχειρηματικές εφαρμογές, που χρησιμοποιείται συνήθως για λογιστικά αρχεία, πίνακες απογραφής και δεδομένα πελατών.
A DBF Η βάση δεδομένων συνήθως περιλαμβάνει πολλά συνοδευτικά αρχεία:
- .cdx / .idxΣύνθετα και μεμονωμένα αρχεία ευρετηρίου που επιταχύνουν τις αναζητήσεις εγγραφών.
- .fpt / .dbtΑρχεία πεδίων υπομνήματος που αποθηκεύουν κείμενο μεταβλητού μήκους ή δυαδικά δεδομένα στα οποία αναφέρεται ο κύριος πίνακας.
- .dbcΑρχείο κοντέινερ βάσης δεδομένων που χρησιμοποιείται από το Visual FoxPro για τη σύνδεση σχετικών πινάκων, προβολών και αποθηκευμένων διαδικασιών.
1.2 Σημάδια σας DBF Το αρχείο είναι κατεστραμμένο
Τα ακόλουθα συμπτώματα υποδεικνύουν ότι ένα DBF Το αρχείο ενδέχεται να είναι κατεστραμμένο και να χρειάζεται επισκευή:
- Σφάλμα «Δεν είναι τραπέζι»Η εφαρμογή δεν αναγνωρίζει το πρώτο byte της κεφαλίδας του αρχείου ως έγκυρο. DBF δείκτης έκδοσης.
- Σφάλμα "Το αρχείο δεν είναι βάση δεδομένων"Η δομή της κεφαλίδας του αρχείου δεν είναι αναγνώσιμη ή έχει αντικατασταθεί.
- Σφάλμα εφαρμογής κατά το άνοιγμα: Το πρόγραμμα κεντρικού υπολογιστή παγώνει ή τερματίζεται κατά την προσπάθεια φόρτωσης του αρχείου.
- Παραποιημένα ή ελλείποντα αρχείαΟι γραμμές εμφανίζουν λανθασμένους χαρακτήρες, περικομμένες τιμές ή απουσιάζουν εντελώς.
- Λανθασμένος αριθμός εγγραφώνΟ αριθμός των εγγραφών που αναφέρονται από την εφαρμογή δεν ταιριάζει με τον πραγματικό αριθμό γραμμών στο αρχείο.
- Σφάλματα ευρετηρίουΗ εφαρμογή αναφέρει ασυνέπειες ευρετηρίου ή δεν εντοπίζει εγγραφές που θα έπρεπε να υπάρχουν.
- Μηδενικό byte ή ασυνήθιστα μικρό μέγεθος αρχείου: Το αρχείο έχασε το περιεχόμενό του λόγω διακοπής της λειτουργίας εγγραφής.
1.3 Συνήθεις αιτίες DBF Διαφθορά αρχείου
- Ακατάλληλη απενεργοποίηση και διακοπή ρεύματοςΜια διακοπή ρεύματος ή μια αναγκαστική επανεκκίνηση ενώ το αρχείο είναι ανοιχτό διακόπτει μια λειτουργία εγγραφής, αφήνοντας το αρχείο σε ασυνεπή κατάσταση.
- Διένεξεις πρόσβασης πολλαπλών χρηστών: Πολλαπλοί χρήστες ανοίγουν και γράφουν στο ίδιο DBF Η ταυτόχρονη εγκατάσταση ενός αρχείου μέσω δικτύου μπορεί να καταστρέψει τόσο τα αρχεία δεδομένων όσο και τα αρχεία ευρετηρίου.
- Ζημιά στο αρχείο ευρετηρίου: Λείπει ή έχει υποστεί ζημιά .cdx / .idx Τα αρχεία κάνουν τη βάση δεδομένων να φαίνεται κατεστραμμένη ακόμα και όταν τα βασικά αρχεία δεδομένων είναι άθικτα.
- Συσσώρευση και κατακερματισμός διαγραμμένων εγγραφώνΤα αρχεία που έχουν επισημανθεί για διαγραφή αλλά δεν έχουν ποτέ αφαιρεθεί φυσικά συσσωρεύονται με την πάροδο του χρόνου και μπορούν να προκαλέσουν δομικές ασυνέπειες.
- Σφάλματα λογισμικού και επιθέσεις ιώνΜια διακοπή λειτουργίας εφαρμογής κατά τη διάρκεια μιας λειτουργίας εγγραφής ή ένα κακόβουλο λογισμικό που αντικαθιστά τα byte αρχείων μπορεί να καταστρέψει την κεφαλίδα, τους περιγραφείς πεδίων ή τις εγγραφές δεδομένων.
2. Πριν από την επισκευή: Βασικά πρώτα βήματα
Ακολουθήστε αυτά τα δύο βήματα πριν επιχειρήσετε οποιαδήποτε μέθοδο επιδιόρθωσης για να αποτρέψετε την επιδείνωση της καταστροφής ή την μόνιμη απώλεια δεδομένων.
2.1 Διακοπή επανειλημμένου ανοίγματος του αρχείου
Κάθε φορά που μια εφαρμογή επιχειρεί να φορτώσει ένα κατεστραμμένο DBF αρχείο, ενδέχεται να γράψει πρόσθετα δεδομένα στο αρχείο ή να ενημερώσει την κεφαλίδα, ενδεχομένως επιδεινώνοντας την καταστροφή. Διακόψτε το άνοιγμα του αρχείου μόλις υποψιαστείτε ότι είναι κατεστραμμένο.
2.2 Δημιουργία αντιγράφου ασφαλείας
Πριν κάνετε οτιδήποτε άλλο, αντιγράψτε το κατεστραμμένο αρχείο και μετονομάστε το (για παράδειγμα, όνομα_αρχείου_αντίγραφο ασφαλείας.dbf). Εκτελέστε κάθε προσπάθεια επισκευής στο αντίγραφο, ποτέ στο πρωτότυπο. Εάν μια μέθοδος επισκευής επιδεινώσει το πρόβλημα, μπορείτε να ξεκινήσετε από την αρχή από το ανέπαφο πρωτότυπο.
Επίσης, δημιουργήστε αντίγραφα ασφαλείας όλων των συνοδευτικών αρχείων (.cdx, .idx, .fpt, .dbt) μαζί με το κύριο .dbf αρχείο.
3. Μέθοδος 1: Έλεγχος και επαναφορά συσχετισμένων αρχείων
Πολλά εμφανή DBF Οι αλλοιώσεις προκαλούνται στην πραγματικότητα από ελλείποντα ή μη συμβατά συνοδευτικά αρχεία. Ελέγξτε τα πριν επιχειρήσετε οποιαδήποτε επιδιόρθωση σε επίπεδο αρχείου.
3.1 Εντοπισμός ελλειπουσών αρχείων ευρετηρίου (.cdx / .idx)
Ανοίξτε τον φάκελο που περιέχει το .dbf και βεβαιωθείτε ότι υπάρχουν όλα τα αναμενόμενα αρχεία ευρετηρίου. Ένας πίνακας Visual FoxPro με το όνομα παραγγελιών.dbf, για παράδειγμα, συνήθως έχει έναν σύντροφο παραγγελίες.cdxΕάν το αρχείο ευρετηρίου απουσιάζει, η εφαρμογή θα αναφέρει σφάλματα παρόλο που τα ίδια τα δεδομένα είναι άθικτα.
3.2 Εντοπισμός ελλειπουσών αρχείων σημειώσεων (.dbt / .fpt)
Εάν ο πίνακας περιέχει πεδία υπομνήματος, το αρχείο υπομνήματος (.fpt για το Visual FoxPro, .dbt για dBASE III/IV) πρέπει να υπάρχουν στον ίδιο φάκελο. Ένα αρχείο υπομνήματος που λείπει προκαλεί σφάλματα ανάγνωσης για οποιαδήποτε εγγραφή που αναφέρει μια τιμή υπομνήματος, ακόμη και αν η υπόλοιπη εγγραφή είναι άθικτη.
3.3 Αναδημιουργία ελλειπόντων αρχείων
Εάν λείπουν αρχεία ευρετηρίου, αναδημιουργήστε τα χρησιμοποιώντας το REINDEX εντολή. Εάν λείπουν αρχεία υπομνήματος και δεν υπάρχει αντίγραφο ασφαλείας, τα δεδομένα πεδίου υπομνήματος για αυτές τις εγγραφές δεν είναι ανακτήσιμα, αλλά η πρόσβαση στα πεδία που δεν είναι υπομνήματα εξακολουθεί να είναι δυνατή ανοίγοντας τον πίνακα μετά την αφαίρεση της αναφοράς αρχείου υπομνήματος από την κεφαλίδα χρησιμοποιώντας ένα hex editor.
4. Μέθοδος 2: Χρήση εντολών του βοηθητικού προγράμματος βάσης δεδομένων (FoxPro / dBASE)
Εάν έχετε πρόσβαση στο Visual FoxPro ή στο dBASE, έχουν ενσωματωμένες εντολές που μπορούν να διορθώσουν ένα ευρύ φάσμα κοινών αλλοιώσεων.
4.1 Άνοιγμα του αρχείου σε αποκλειστική λειτουργία
Το άνοιγμα του αρχείου σε αποκλειστική λειτουργία παρέχει πλήρη έλεγχο ανάγνωσης/εγγραφής και απαιτείται πριν από την εκτέλεση οποιασδήποτε εντολής επιδιόρθωσης. Στο παράθυρο εντολών του Visual FoxPro, πληκτρολογήστε:
USE yourfile.dbf EXCLUSIVE
Εάν το αρχείο ανοίξει με επιτυχία, μπορείτε να ανακτήσετε τα δεδομένα αντιγράφοντας τα δεδομένα εγγραφής σε μια νέα βάση δεδομένων αμέσως.
4.2 Επικύρωση ακεραιότητας πίνακα με SET TABLEVALIDATE
Πριν από την εφαρμογή διορθώσεων, χρησιμοποιήστε SET TABLEVALIDATE για την εμφάνιση σφαλμάτων διαφθοράς:
SET TABLEVALIDATE 11
USE yourfile.dbf EXCLUSIVE
Αυτή η εντολή δίνει εντολή στο Visual FoxPro να εκτελέσει αυστηρή επικύρωση κατά το άνοιγμα του πίνακα. Οποιοδήποτε μήνυμα σφάλματος επιστρέφεται σε αυτό το βήμα προσδιορίζει τη φύση και τη θέση της καταστροφής.
4.3 Ανακατασκευή Ευρετηρίων με το REINDEX
Με το αρχείο ανοιχτό σε αποκλειστική λειτουργία, εκτελέστε:
REINDEX
REINDEX Αναδημιουργεί όλα τα αρχεία ευρετηρίου που σχετίζονται με το ανοιχτό DBF. Επιλύει σφάλματα που σχετίζονται με το ευρετήριο και τα οποία προκαλούν την εμφάνιση ελλειπουσών εγγραφών ή την αναφορά από την εφαρμογή ότι το αρχείο δεν μπορεί να διαβαστεί.
4.4 Συμπύκνωση του τραπεζιού με PACK
Με το αρχείο ανοιχτό σε αποκλειστική λειτουργία, εκτελέστε:
PACK
PACK καταργεί φυσικά όλες τις εγγραφές που έχουν επισημανθεί για διαγραφή και συμπυκνώνει το αρχείο. Αυτό επιλύει προβλήματα που προκαλούνται από την υπερβολική συσσώρευση διαγραμμένων εγγραφών.
προειδοποίηση: PACK διαγράφει μόνιμα και μη αναστρέψιμα τις εγγραφές με σημαία. Εκτελέστε το μόνο στο αντίγραφο ασφαλείας.
4.5 Πεδία Σημειώματος Επιδιόρθωσης με PACK MEMO
Εάν ο πίνακας περιέχει πεδία υπομνήματος, εκτελέστε την ακόλουθη εντολή μετά PACK:
PACK MEMO
PACK MEMO συμπυκνώνει το αρχείο σημειώματος (.fpt / .dbt), αφαιρώντας τα αχρησιμοποίητα μπλοκ υπομνημάτων και διορθώνοντας ασυνέπειες μεγέθους μεταξύ του αρχείου υπομνημάτων και του κύριου πίνακα.
προειδοποίηση: PACK MEMO απορρίπτει μόνιμα τα δεδομένα των διαγραμμένων εγγραφών και των αντικατασταμένων τιμών των σημειώσεων χωρίς επιλογή αναίρεσης. Εκτελέστε το μόνο στο αντίγραφο ασφαλείας.
5. Μέθοδος 3: Άνοιγμα σε μια εναλλακτική εφαρμογή
Μερικές φορές, το άνοιγμα του αρχείου σε μια πιο ανεκτική εφαρμογή μπορεί να ανακτήσει τα δεδομένα ακόμα και όταν η κύρια εφαρμογή αρνείται να το ανοίξει.
5.1 LibreOffice Calc
LibreOffice Το Calc διαθέτει ενσωματωμένο φίλτρο εισαγωγής dBASE και μπορεί να διαβάσει ακατέργαστα δεδομένα από πολλά μερικώς κατεστραμμένα δεδομένα. DBF αρχεία:
- Πηγαίνετε στο Αρχεία -> Ανοικτό Και επιλέξτε το .dbf Το LibreOffice θα εμφανίσει ένα παράθυρο διαλόγου εισαγωγής όπου μπορείτε να επιλέξετε την κωδικοποίηση χαρακτήρων.
- Εάν φορτωθεί το αρχείο, τα δεδομένα εμφανίζονται ως υπολογιστικό φύλλο. Ακόμα και τα μερικώς κατεστραμμένα αρχεία συχνά φορτώνουν με αναγνώσιμα αρχεία.
- Εξαγωγή των ανακτημένων δεδομένων μέσω Αρχεία -> Αποθήκευση ως Και επιλέξτε Κείμενο CSV or Microsoft Excel μορφή, στη συνέχεια αναδημιουργήστε το DBF από τα εξαγόμενα δεδομένα, εάν χρειάζεται.
Σημείωση: Κατά το άνοιγμα DBF αρχεία που δημιουργούνται από το Visual FoxPro, χρησιμοποιήστε το 32-bit έκδοση του LibreOffice. Η μορφή αρχείου του Visual FoxPro δεν υποστηρίζει αρχιτεκτονική 64-bit και ενδέχεται να μην φορτωθεί σωστά στην έκδοση 64-bit.
5.2 OpenOffice Calc
Το OpenOffice είναι παρόμοιο με το LibreOffice, αλλά έχει αρκετά τρωτά σημεία ασφαλείας. Χρησιμοποιήστε το μόνο εάν το LibreOffice παρουσιάσει σφάλμα.
5.3 DBF Παραγγελία
Ο Διοικητής του DBF είναι ένας αφοσιωμένος DBF πρόγραμμα προβολής και επεξεργασίας που χειρίζεται ένα ευρύτερο φάσμα DBF υποεκδόσεις από εφαρμογές γενικής χρήσης:
- Κατεβάστε και εγκαταστήστε DBF Διοικητής, μετά εκτόξευσέ το.
- Πηγαίνετε στο Αρχεία -> Ανοικτό και φορτώστε το κατεστραμμένο .dbf αρχείο. DBF Το Commander αναλύει αυτόματα τη δομή του αρχείου και επιχειρεί να διορθώσει μικρές αλλοιώσεις κατά τη φόρτωση.
- Εάν τα δεδομένα είναι ευανάγνωστα, μεταβείτε στο Αρχεία -> Αποθήκευση ως και αποθηκεύστε με νέο όνομα αρχείου για να διατηρήσετε το αρχικό αντίγραφο ασφαλείας.
5.4 Xbase++
Το Xbase++ είναι ένα περιβάλλον ανάπτυξης με προηγμένες δυνατότητες. DBF συμβατότητα που μπορεί να χειριστεί τύπους αλλοιώσεων που προκαλούν σφάλματα σε παλαιότερα περιβάλλοντα FoxPro ή dBASE:
- Φορτώστε το κατεστραμμένο DBF αρχείο χρησιμοποιώντας τις λειτουργίες διαχείρισης αρχείων Xbase++.
- Εκτελέστε τις ενσωματωμένες ρουτίνες διάγνωσης και επιδιόρθωσης, οι οποίες μπορούν να αντιμετωπίσουν κατεστραμμένα ευρετήρια και σφάλματα εισαγωγής δεδομένων που δεν μπορούν να χειριστούν άλλα εργαλεία.
6. Μέθοδος 4: Χειροκίνητη επιδιόρθωση με προγράμματα επεξεργασίας κειμένου/δεκαεξαδικού
Όταν οι παραπάνω μέθοδοι αποτύχουν, η χειροκίνητη επιθεώρηση χρησιμοποιώντας επεξεργαστές κειμένου ή δεκαεξαδικού τύπου σάς επιτρέπει να εξετάσετε το ακατέργαστο περιεχόμενο του αρχείου, να αντιγράψετε άθικτα δεδομένα και να ανακατασκευάσετε μια λειτουργική βάση δεδομένων. Αυτή η μέθοδος απαιτεί προσοχή και βασική κατανόηση της DBF δομή αρχείου.
6.1 DBF Βασική Επισκόπηση Δομής
A DBF Το αρχείο αποτελείται από τέσσερα διαδοχικά τμήματα:
- Κεφαλίδα αρχείου (32 byte): Το πρώτο byte προσδιορίζει το DBF έκδοση (για παράδειγμα,
0x03για dBASE III χωρίς υπόμνημα,0x30για Visual FoxPro). Τα byte 1–3 αποθηκεύουν την ημερομηνία της τελευταίας ενημέρωσης (ΕΕ/ΜΜ/ΗΗ). Τα byte 4–7 αποθηκεύουν τον συνολικό αριθμό εγγραφών ως ακέραιο αριθμό 32-bit. Τα byte 8–9 αποθηκεύουν το μέγεθος της κεφαλίδας σε byte και τα byte 10–11 αποθηκεύουν το σταθερό μέγεθος εγγραφής σε byte. - Πίνακας περιγραφής πεδίου: Μια ακολουθία καταχωρίσεων 32 byte, μία ανά πεδίο, αμέσως μετά την κεφαλίδα. Κάθε καταχώρηση αποθηκεύει το όνομα του πεδίου (byte 0–10, με κενά), τον τύπο πεδίου (byte 11: C=Χαρακτήρας, N=Αριθμητικό, D=Ημερομηνία, L=Λογικό, M=Υπόμνημα), το μήκος του πεδίου (byte 16) και τον αριθμό των δεκαδικών ψηφίων (byte 17). Ο πίνακας τερματίζεται με ένα
0x0Dψηφιόλεξη. - Αρχεία δεδομένωνΕγγραφές σταθερού μήκους, καθεμία ακριβώς όσο πλάτος έχει το μέγεθος της εγγραφής που είναι αποθηκευμένη στην κεφαλίδα. Το πρώτο byte κάθε εγγραφής είναι μια σημαία διαγραφής (
0x20= ενεργή εγγραφή,0x2A= διαγραμμένη εγγραφή). - Δείκτης EOF: Ένα byte (
0x1A) που υποδεικνύει το τέλος του αρχείου.
6.2 Χρήση προγραμμάτων επεξεργασίας κειμένου για λήψη αναγνώσιμων δεδομένων
Επειδή DBF είναι δυαδική μορφή, οι επεξεργαστές κειμένου θα πρέπει ΔΕΝ να χρησιμοποιηθούν για την άμεση επεξεργασία του αρχείου. Ωστόσο, μπορούν να εμφανίσουν αναγνώσιμα τμήματα — ονόματα πεδίων και εγγραφές δεδομένων χαρακτήρων — τα οποία μπορείτε να χρησιμοποιήσετε για να αντιγράψετε και να ανακατασκευάσετε μια νέα βάση δεδομένων.
Παρακάτω παρατίθενται μερικοί δημοφιλείς επεξεργαστές κειμένου που μπορούν να χρησιμοποιηθούν:
- Σημειωματάριο++ (Windows): Άνοιγμα του κατεστραμμένου DBF αρχείο στο Notepad++. Τα ονόματα πεδίων από την περιγραφή πεδίου. Οι τιμές πεδίων πίνακα και χαρακτήρων από τις εγγραφές δεδομένων θα είναι ορατές ως αναγνώσιμο κείμενο ASCII, εκτός από το δυαδικό περιεχόμενο. Προσδιορίστε και σημειώστε τα ονόματα πεδίων, τους τύπους και τυχόν γραμμές δεδομένων που μπορούν να ανακτηθούν.
- Vim (Linux): Ανοιξε το DBF αρχείο με
vim -b yourfile.dbfγια να εισέλθετε σε δυαδική λειτουργία. Χρησιμοποιήστε / για αναζήτηση γνωστών ονομάτων πεδίων ή συμβολοσειρών δεδομένων. Η αναζήτηση και η αντικατάσταση του Vim μπορούν επίσης να χρησιμοποιηθούν για τον εντοπισμό όλων των εμφανίσεων μιας σταθερά λανθασμένης τιμής σε όλες τις εγγραφές.
Μόλις εντοπίσετε αναγνώσιμους περιγραφείς πεδίων και εγγραφές δεδομένων, χρησιμοποιήστε αυτές τις πληροφορίες για να αναδημιουργήσετε τη δομή πίνακα στο dBASE ή στο Visual FoxPro και εισαγάγετε ή επικολλήστε ξανά ή επικολλήστε χειροκίνητα τις αποθηκευμένες εγγραφές στο νέο αρχείο. Μην επιχειρήσετε να διορθώσετε το αρχικό δυαδικό αρχείο από ένα πρόγραμμα επεξεργασίας κειμένου — κάτι τέτοιο σχεδόν σίγουρα θα το καταστρέψει περαιτέρω.
6.3 Χρήση του Hex Editor για χειροκίνητη επιδιόρθωση ή ανακατασκευή δεδομένων
Ένας δεκαεξαδικός επεξεργαστής είναι ένα πιο επαγγελματικό εργαλείο που μπορεί να παρέχει πρόσβαση σε επίπεδο byte στο DBF αρχείο, επιτρέποντας τόσο τις άμεσες επισκευές όσο και την αξιόπιστη εξαγωγή δεδομένων.
6.3.1 Κοινοί Επεξεργαστές Δεκαεξαδικών
Οι ακόλουθοι δεκαεξαδικοί επεξεργαστές είναι κατάλληλοι για DBF εργασίες επισκευής:
- Ενσωματωμένο HexEdit VFP: Διαθέσιμο μέσα στο Visual FoxPro. Στο παράθυρο εντολών, εκτελέστε
DO HOME() + "Tools\HexEdit\HexEdit.app", στη συνέχεια επιλέξτε το DBF αρχείο όταν σας ζητηθεί. Δεν απαιτείται ξεχωριστή εγκατάσταση. - WinHex: Ένας επαγγελματικός επεξεργαστής δεκαεξαδικών γραφικών για Windows με υποστήριξη προτύπων, που σας επιτρέπει να αντιστοιχίσετε το DBF οπτικά πεδία κεφαλίδας.
- UltraEdit: Ένας επεξεργαστής πολλαπλών πλατφορμών με δεκαεξαδική λειτουργία που χειρίζεται μεγάλα αρχεία και υποστηρίζει επιλογή στηλών, χρήσιμος για την αντιγραφή μπλοκ εγγραφών δεδομένων.
6.3.2 Χειροκίνητη Ανάλυση και Επισκευή
Ανοίξτε το αντίγραφο ασφαλείας του DBF αρχείο σε ένα πρόγραμμα επεξεργασίας δεκαεξαδικού και εκτελέστε την ακόλουθη ακολουθία ελέγχου:
- Επιθεωρήστε τα πρώτα byte της κεφαλίδας: επαληθεύστε τον τύπο αρχείου byte (byte 0), την ημερομηνία τελευταίας ενημέρωσης (bytes 1–3), τον αριθμό εγγραφών (bytes 4–7), το μέγεθος της κεφαλίδας (bytes 8–9) και το μέγεθος της εγγραφής (bytes 10–11). Διασταυρώστε τον αριθμό εγγραφών και το μέγεθος των εγγραφών με το πραγματικό μέγεθος του αρχείου για να εντοπίσετε τυχόν αλλοιώσεις στην κεφαλίδα.
- Επιθεωρήστε τον πίνακα περιγραφέα πεδίου ξεκινώντας από το byte 32: επιβεβαιώστε ότι κάθε καταχώρηση 32 byte περιέχει ένα έγκυρο όνομα πεδίου, έναν αναγνωρισμένο χαρακτήρα τύπου, ένα μη μηδενικό μήκος πεδίου και ότι ο πίνακας τερματίζει με ένα
0x0Dψηφιόλεξη. - Επιθεωρήστε τις εγγραφές δεδομένων ξεκινώντας από την μετατόπιση που υποδεικνύεται από το μέγεθος της κεφαλίδας: επαληθεύστε ότι κάθε εγγραφή ξεκινά με μια σημαία διαγραφής (
0x20or0x2A) και ότι το μήκος της εγγραφής ταιριάζει με την τιμή στην κεφαλίδα. - Προσδιορίστε εάν η αλλοίωση βρίσκεται στην κεφαλίδα, στον πίνακα περιγραφής πεδίου ή στις εγγραφές δεδομένων. Αυτό καθορίζει ποια στρατηγική ανακατασκευής θα εφαρμοστεί.
- Για μικρές αλλοιώσεις, όπως λανθασμένος αριθμός εγγραφών ή ένα μόνο κατεστραμμένο byte, διορθώστε την τιμή απευθείας στον επεξεργαστή δεκαεξαδικών αρχείων και αποθηκεύστε το αρχείο.
Παρακάτω είναι ένα δείγμα DBF αρχείο που άνοιξε σε ένα πρόγραμμα επεξεργασίας δεκαεξαδικού:
6.3.3 Χειροκίνητη ανακατασκευή του DBF Αρχεία
Όταν η καταστροφή είναι πολύ σοβαρή για να επιδιορθωθεί επί τόπου, ανακατασκευάστε τη βάση δεδομένων μεταφέροντας άθικτα αρχεία δεδομένων σε ένα νεοδημιουργημένο αρχείο:
- Ανοίξτε το dBASE ή το Visual FoxPro και δημιουργήστε ένα νέο DBF αρχείο.
- Δημιουργήστε τα πεδία με τα ίδια ονόματα και τύπους δεδομένων με την αρχική βάση δεδομένων, χρησιμοποιώντας τους περιγραφείς πεδίων που προσδιορίστηκαν κατά τον έλεγχο δεκαεξαδικού κώδικα ή άλλες πηγές, όπως τον DBA που δημιούργησε το πρωτότυπο.
- Στον επεξεργαστή δεκαεξαδικών, επιλέξτε και αντιγράψτε τα άθικτα αρχεία δεδομένων από τα παλιά DBF αρχείο.
- Επικολλήστε τα αντιγραμμένα αρχεία δεδομένων στην αντίστοιχη μετατόπιση του νέου DBF αρχείο.
- Διορθώστε με μη αυτόματο τρόπο τυχόν αλλοιώσεις που είναι ορατές μέσα στις επικολλημένες εγγραφές δεδομένων, όπως εσφαλμένες σημαίες διαγραφής ή περικομμένες τιμές πεδίων.
- Εισαγάγετε ξανά με μη αυτόματο τρόπο τυχόν εγγραφές δεδομένων που δεν ήταν δυνατό να ανακτηθούν από το δεκαεξαδικό αντίγραφο.
- Αποθηκεύστε το νέο DBF και ανοίξτε το στο Visual FoxPro ή στο dBASE για να επαληθεύσετε ότι όλες οι εγγραφές φορτώνονται σωστά.
7. Μέθοδος 5: Επιδιόρθωση με γλώσσες προγραμματισμού
Οι βιβλιοθήκες προγραμματισμού σάς δίνουν ακριβή έλεγχο του τρόπου με τον οποίο ένα διεφθαρμένο DBF Το αρχείο διαβάζεται, επιτρέποντάς σας να χειρίζεστε τις εξαιρέσεις με ομαλό τρόπο και να εξάγετε ανακτήσιμα δεδομένα σε μια νέα και καθαρή βάση δεδομένων.
7.1 Python (pandas / dbfread)
Πύθωνα pandas και dbfread Οι βιβλιοθήκες μπορούν να διαβάσουν πολλά μερικώς κατεστραμμένα DBF αρχεία που οι εγγενείς εφαρμογές βάσεων δεδομένων αρνούνται να ανοίξουν:
- Εγκαταστήστε τις απαιτούμενες βιβλιοθήκες:
pip install pandas dbfread simpledbf. - Διαβάστε το κατεστραμμένο DBF αρχείο χρησιμοποιώντας
dbfread:from dbfread import DBF; table = DBF('yourfile.dbf', ignore_missing_memofile=True). οignore_missing_memofileΗ σημαία επιτρέπει τη φόρτωση του πίνακα ακόμα και αν το αρχείο υπομνήματος απουσιάζει. - Φόρτωση των εγγραφών σε ένα DataFrame:
import pandas as pd; df = pd.DataFrame(iter(table))Το .pandas χειρίζεται μικρές ασυνέπειες τύπου δεδομένων με ομαλό τρόπο και σας επιτρέπει να επιθεωρείτε και να καθαρίζετε τα δεδομένα. - Εκτελέστε καθαρισμό δεδομένων όπως απαιτείται: συμπληρώστε τις τιμές που λείπουν με
df.fillna(), διορθώστε λανθασμένους τύπους δεδομένων μεdf.astype()και αφαιρέστε διπλότυπες γραμμές μεdf.drop_duplicates(). - Εξαγωγή του καθαρισμένου DataFrame σε CSV με
df.to_csv('recovered.csv', index=False), στη συνέχεια αναδημιουργήστε το DBF από τα καθαρά δεδομένα.
7.2 Java (UCanAccess)
Το πρόγραμμα οδήγησης JDBC του UCanAccess υποστηρίζει DBF αρχεία και επιτρέπει την προγραμματική επιδιόρθωση μέσω τυπικής εισόδου/εξόδου Java:
- Προσθέστε τη βιβλιοθήκη UCanAccess στις εξαρτήσεις του έργου σας μέσω του Maven ή κατεβάζοντας απευθείας το JAR.
- Ανοίξτε μια σύνδεση JDBC στον φάκελο που περιέχει το DBF αρχείο:
Connection conn = DriverManager.getConnection("jdbc:ucanaccess:///path/to/folder"); - Εκτελέστε το
SELECT *ερώτημα μέσα σε ένα μπλοκ try-catch. CatchSQLExceptionεξαιρέσεις σε μεμονωμένες γραμμές για να παρακάμψετε μη αναγνώσιμες εγγραφές αντί να διακόψετε ολόκληρη την ανάγνωση. - Γράψτε τις ανακτημένες γραμμές σε ένα νέο DBF ή να τα εξαγάγετε σε CSV για επανεισαγωγή.
8. Μέθοδος 6: Χρησιμοποιήστε επαγγελματία DBF Εργαλεία επισκευής
Όταν οι χειροκίνητες μέθοδοι είναι πολύ περίπλοκες, χρονοβόρες ή η διαφθορά είναι πολύ σοβαρή, ένας ειδικός DBF Το εργαλείο επιδιόρθωσης προσφέρει την ταχύτερη διαδρομή για την ανάκτηση των δεδομένων σας.
8.1 Χρήση DataNumen DBF Repair για την επιδιόρθωση του διεφθαρμένου DBF Αρχεία
DataNumen DBF Repair είναι ένα επαγγελματικό εργαλείο σχεδιασμένο ειδικά για την ανάκτηση δεδομένων από κατεστραμμένα και μη προσβάσιμα DBF αρχεία.
- Αρχική DataNumen DBF Repair
- Επιλέξτε το διεφθαρμένο DBF αρχείο προς επιδιόρθωση.
- Ορίστε το όνομα του αρχείου εξόδου.
- Πατήστε Ξεκινήστε την επισκευήΤο εργαλείο θα ξεκινήσει τη σάρωση και την επιδιόρθωση του αρχείου.
- Μετά τη διαδικασία επιδιόρθωσης, ανοίξτε το διορθωμένο αρχείο στο dBase ή στο FoxPro.
8.2 Χρήση στο διαδίκτυο DBF Εργαλεία επισκευής
Οι διαδικτυακές υπηρεσίες επισκευής είναι βολικές για μεμονωμένες επισκευές. Χρησιμοποιήστε τες μόνο με αρχεία που δεν περιέχουν ευαίσθητα ή εμπιστευτικά δεδομένα.
- Εργαλειοθήκη ανάκτησης για DBF Διαδικτυακό σεμινάριοΜια υπηρεσία που βασίζεται σε πρόγραμμα περιήγησης και υποστηρίζει dBASE και FoxPro DBF μορφές.
- OnlineFile.RepairΜια διαδικτυακή υπηρεσία επισκευής πολλαπλών μορφών που περιλαμβάνει DBF Υποστήριξη.
Συνήθη βήματα για online DBF εργαλεία επισκευής:
- Μεταβείτε στον ιστότοπο του ηλεκτρονικού εργαλείου επισκευής.
- Πατήστε Ανέβασμα αρχείου or Αναζήτηση και επιλέγουν τους διεφθαρμένους .dbf αρχείο.
- Πατήστε επισκευή or Αναλύστε για να ξεκινήσει η διαδικασία επισκευής.
- Κάντε προεπισκόπηση των ανακτημένων εγγραφών όταν σας ζητηθεί να επιβεβαιώσετε ότι τα δεδομένα είναι χρησιμοποιήσιμα.
- Πατήστε Λήψη για να κατεβάσετε το επιδιορθωμένο αρχείο στον υπολογιστή σας.
9. Πρόληψη DBF Διαφθορά αρχείου
γέφυρα DBF Η διαφθορά μπορεί να προληφθεί. Η τήρηση αυτών των πρακτικών μειώνει σημαντικά τον κίνδυνο απώλειας δεδομένων:
- Σωστές πρακτικές τερματισμού λειτουργίας: Να κλείνετε πάντα την εφαρμογή βάσης δεδομένων πριν τερματίσετε τον υπολογιστή. Ποτέ μην τερματίζετε την εφαρμογή με Task Manager ενώ ένα αρχείο είναι ανοιχτό.
- Αποφύγετε την πρόσβαση σε αρχεία δικτύου: Μην ανοίγετε DBF αρχεία απευθείας από ένα κοινόχρηστο στοιχείο δικτύου, εκτός εάν η εφαρμογή υποστηρίζει ρητά το κλείδωμα εγγραφών δικτύου. Ποτέ μην επιτρέπετε σε πολλούς χρήστες να γράφουν στο ίδιο DBF λιμάρετε ταυτόχρονα χωρίς να έχετε τοποθετήσει μηχανισμό ασφάλισης.
- Τακτικά αντίγραφα ασφαλείαςΠρογραμματίστε καθημερινά αντίγραφα ασφαλείας και αποθηκεύστε αντίγραφα σε ξεχωριστή φυσική τοποθεσία ή χώρο αποθήκευσης στο cloud. Εξάγετε περιοδικά κρίσιμα δεδομένα σε CSV ή σε άλλη σύγχρονη μορφή ως πρόσθετο δίχτυ ασφαλείας.
- Συντήρηση ευρετηρίου: Τρέξιμο
REINDEXπεριοδικά — ειδικά μετά από οποιαδήποτε μη φυσιολογική διακοπή λειτουργίας — για να διατηρούνται τα αρχεία ευρετηρίου συμβατά με τα αρχεία δεδομένων και να αποτρέπεται η κλιμάκωση σφαλμάτων αλλοίωσης που σχετίζονται με το ευρετήριο.
10. Συχνές ερωτήσεις
Ε: Μπορεί ένα εντελώς κατεστραμμένο DBF θα ανακτηθεί το αρχείο;
Α: Η μερική ανάκτηση είναι σχεδόν πάντα δυνατή. Η πλήρης ανάκτηση εξαρτάται από το αν η περιοχή εγγραφής δεδομένων του αρχείου παραμένει άθικτη. Η καταστροφή κεφαλίδας και ευρετηρίου είναι γενικά επισκευάσιμη, ενώ οι αντικατασταθείσες εγγραφές δεδομένων όχι.
Ε: Τι σημαίνει το σφάλμα "Δεν είναι πίνακας" στο Visual FoxPro;
Α: Το πρώτο byte της κεφαλίδας του αρχείου δεν αναγνωρίζεται DBF δείκτης έκδοσης. Το Visual FoxPro επικυρώνει αυστηρά αυτό το byte κατά το άνοιγμα, επομένως ακόμη και μια καταστροφή κεφαλίδας ενός byte παράγει αυτό το σφάλμα.
Ε: Είναι ασφαλές να χρησιμοποιώ δωρεάν διαδικτυακά εργαλεία για την επισκευή ενός DBF αρχείο;
Α: Μόνο εάν το αρχείο δεν περιέχει ευαίσθητα δεδομένα. Να διαβάζετε πάντα την πολιτική απορρήτου του εργαλείου πριν από τη μεταφόρτωση και να προτιμάτε ένα εργαλείο υπολογιστή όταν εργάζεστε με εμπιστευτικά αρχεία.
Ε: Θα διαγράψει οριστικά το PACK τα αρχεία μου;
Α: Ναι. PACK Καταργεί μόνιμα όλες τις εγγραφές που έχουν επισημανθεί για διαγραφή χωρίς επιλογή αναίρεσης. Εκτελείται πάντα σε αντίγραφο ασφαλείας, ποτέ στο αρχικό αρχείο.
Ε: Μπορεί η Python να ανακτήσει ένα DBF αρχείο χωρίς εμπορικό λογισμικό;
Α: Ναι, για σφάλματα σε επίπεδο δεδομένων. Το dbfread βιβλιοθήκη με το ignore_missing_memofile Το flag μπορεί να διαβάσει πολλά μερικώς κατεστραμμένα αρχεία που οι εγγενείς εφαρμογές αρνούνται να ανοίξουν και τα pandas μπορούν να καθαρίσουν και να εξάγουν τα ανακτημένα δεδομένα.
Ε: Ποια είναι η διαφορά μεταξύ PACK και REINDEX στο FoxPro / dBASE;
A: PACK Αφαιρεί μόνιμα τις εγγραφές που έχουν επισημανθεί για διαγραφή και συμπυκνώνει το αρχείο δεδομένων. REINDEX Αναδομεί τα αρχεία ευρετηρίου από τα υπάρχοντα αρχεία δεδομένων χωρίς να τροποποιεί τα ίδια τα δεδομένα. Επιλύουν διαφορετικά προβλήματα και μπορούν να εκτελεστούν ανεξάρτητα.
Ε: Μπορώ να ανοίξω ένα DBF αρχείο χωρίς εγκατεστημένο το FoxPro ή το dBASE;
Α: Ναι. LibreOffice Calc, DBF Το Commander και το Xbase++ μπορούν να ανοίξουν όλα DBF αρχεία χωρίς να απαιτείται εγκατάσταση FoxPro ή dBASE.
Ε: Γιατί το DBF Το αρχείο είναι ανοιχτό στο LibreOffice αλλά όχι στο Visual FoxPro;
Α: Το LibreOffice είναι πιο ανεκτικό σε μικρές ασυνέπειες κεφαλίδων. Το Visual FoxPro εκτελεί αυστηρή επικύρωση κεφαλίδων και αρνείται να ανοίξει αρχεία που δεν περνούν κανέναν έλεγχο. Εάν το αρχείο ανοίξει στο LibreOffice, εξαγάγετε τα δεδομένα σε CSV και δημιουργήστε ξανά το DBF για να αποκτήσετε ένα καθαρό, συμβατό με FoxPro αρχείο.
Ε: Τι προκαλεί την απώλεια αρχείων ευρετηρίου (.cdx / .idx);
Α: Οι πιο συνηθισμένες αιτίες είναι η τυχαία διαγραφή, η αποτυχημένη εγκατάσταση ή απεγκατάσταση εφαρμογής που αφαίρεσε τα συνοδευτικά αρχεία, η διακοπή λειτουργίας κατά τη διάρκεια μιας λειτουργίας αναδόμησης ευρετηρίου ή η αντιγραφή του .dbf αρχείο σε μια νέα θέση χωρίς να αντιγράψετε τα σχετικά αρχεία ευρετηρίου.
Ε: Μπορεί α DBF Το αρχείο με πεδία υπομνήματος (.fpt / .dbt) εξακολουθεί να επισκευάζεται;
Α: Ναι, αλλά απαιτούνται πρόσθετα βήματα. Χρησιμοποιήστε PACK MEMO στο FoxPro για να συμπιέσετε και να επιδιορθώσετε το αρχείο υπομνήματος. Εάν το ίδιο το αρχείο υπομνήματος είναι κατεστραμμένο, τα δεδομένα που δεν είναι πεδίο υπομνήματος εξακολουθούν να είναι συνήθως ανακτήσιμα ανοίγοντας τον πίνακα χωρίς την αναφορά του αρχείου υπομνήματος από την κεφαλίδα.
Ε: Πώς μπορώ να αποφασίσω ποια μέθοδο επισκευής θα δοκιμάσω πρώτα;
Α: Ξεκινήστε με την λιγότερο επεμβατική προσέγγιση και κλιμακώστε την μόνο εάν αποτύχει: (1) ελέγξτε για τυχόν ελλείποντα σχετικά αρχεία, (2) εκτελέστε REINDEX, (3) άνοιγμα σε μια εναλλακτική εφαρμογή όπως το LibreOffice Calc, (4) εκτέλεση PACK και PACK MEMO, (5) χρησιμοποιήστε ένα hex editor για χειροκίνητη επισκευή, (6) χρησιμοποιήστε ένα επαγγελματικό εργαλείο επισκευής όπως DataNumen DBF Repair.
Ε: Μπορεί ένας διεφθαρμένος DBF αρχείο κατεστραμμένο άλλους πίνακες στην ίδια βάση δεδομένων;
Α: Ένας διεφθαρμένος .dbf ο πίνακας δεν καταστρέφει άμεσα τους αδελφούς πίνακες. Ωστόσο, ένας καταστραμμένος πίνακας .dbc Ένα αρχείο κοντέινερ βάσης δεδομένων στο Visual FoxPro μπορεί να αποτρέψει το άνοιγμα όλων των πινάκων που είναι συνδεδεμένοι με αυτό το κοντέινερ, καθιστώντας ουσιαστικά ολόκληρη τη βάση δεδομένων μη προσβάσιμη μέχρι να επισκευαστεί το κοντέινερ ή να αποσπαστούν οι πίνακες από αυτό.
11. Σύναψη
Επιδιόρθωση μιας διεφθαρμένης DBF Το αρχείο σπάνια είναι απελπιστικό. Ξεκινήστε με τα λιγότερο επεμβατικά βήματα: βεβαιωθείτε ότι υπάρχουν τα σχετικά αρχεία ευρετηρίου και υπομνήματος, εκτελέστε REINDEX για να ανακατασκευάσετε τα κατεστραμμένα ευρετήρια και δοκιμάστε να ανοίξετε το αρχείο σε μια ανεκτική εναλλακτική εφαρμογή όπως το LibreOffice Calc ή DBF Διοικητής. Εάν αυτές οι προσεγγίσεις δεν ανακτήσουν τα δεδομένα, κλιμακώστε την PACK και PACK MEMO εντολές, έπειτα σε χειροκίνητη επιθεώρηση και ανακατασκευή σε δεκαεξαδικό επίπεδο ή σε προγραμματική ανάκτηση χρησιμοποιώντας Python ή Java. Σε κάθε βήμα, εργάζεστε αποκλειστικά σε ένα αντίγραφο ασφαλείας — ποτέ στο αρχικό αρχείο.
Για σοβαρή ή σύνθετη διαφθορά όπου έχουν εξαντληθεί οι χειροκίνητες μέθοδοι, ένας επαγγελματίας Εργαλείο επισκευής DBF παρέχει την πιο αξιόπιστη αυτοματοποιημένη ανάκτηση. Μόλις ανακτήσετε τα δεδομένα σας, εφαρμόστε τις πρακτικές πρόληψης στην Ενότητα 9 — τακτικά αντίγραφα ασφαλείας, σωστές διαδικασίες τερματισμού λειτουργίας και περιοδικές εκτελέσεις REINDEX — για να αποφύγετε την επανάληψη της εμπειρίας.
Σχετικά με το Συγγραφέας
Γιουάν Σενγκ είναι ανώτερος διαχειριστής βάσεων δεδομένων (DBA) με πάνω από 10 χρόνια εμπειρίας σε SQL Server περιβάλλοντα και διαχείριση βάσεων δεδομένων επιχειρήσεων. Έχει επιλύσει με επιτυχία εκατοντάδες σενάρια ανάκτησης βάσεων δεδομένων σε χρηματοοικονομικές υπηρεσίες, υγειονομική περίθαλψη και βιομηχανικούς οργανισμούς.
Ο Γιουάν ειδικεύεται στην SQL Server και DBF ανάκτηση βάσεων δεδομένων, λύσεις υψηλής διαθεσιμότητας και βελτιστοποίηση απόδοσης. Η εκτεταμένη πρακτική του εμπειρία περιλαμβάνει τη διαχείριση βάσεων δεδομένων πολλαπλών terabyte, την υλοποίηση ομάδων Always On Availability και την ανάπτυξη αυτοματοποιημένων στρατηγικών δημιουργίας αντιγράφων ασφαλείας και ανάκτησης για κρίσιμα επιχειρηματικά συστήματα.
Μέσω της τεχνικής του εξειδίκευσης και της πρακτικής του προσέγγισης, ο Yuan επικεντρώνεται στη δημιουργία ολοκληρωμένων οδηγών που βοηθούν τους διαχειριστές βάσεων δεδομένων και τους επαγγελματίες πληροφορικής να επιλύουν πολύπλοκα ζητήματα. SQL Server προκλήσεις αποτελεσματικά. Παραμένει ενημερωμένος για τις τελευταίες εξελίξεις SQL Server κυκλοφορίες και τις εξελισσόμενες τεχνολογίες βάσεων δεδομένων της Microsoft, δοκιμάζοντας τακτικά σενάρια ανάκτησης για να διασφαλίσει ότι οι συστάσεις του αντικατοπτρίζουν τις βέλτιστες πρακτικές του πραγματικού κόσμου.
Έχετε ερωτήσεις σχετικά με SQL Server και DBF Ανάκτηση βάσης δεδομένων ή χρειάζεστε πρόσθετες οδηγίες αντιμετώπισης προβλημάτων βάσης δεδομένων; Ο Yuan είναι ευπρόσδεκτος. σχόλια και προτάσεις για τη βελτίωση αυτών των τεχνικών πόρων.





