კორუმპირებული DBF ფაილმა შეიძლება შეაჩეროს ბუღალტრული აღრიცხვის სისტემები, ინვენტარიზაციის მონაცემთა ბაზები და CRM აპლიკაციები. ეს სახელმძღვანელო მოიცავს ყველა პრაქტიკულ მეთოდს, რათა შეაკეთოთ DBF ფაილი, მარტივი ასოცირებული ფაილების შემოწმებიდან ექვსკუთხა დონის რეკონსტრუქციამდე, დალაგებული ყველაზე ნაკლებად ინვაზიურიდან ყველაზე ინვაზიურამდე.
1. შესავალი
1.1 რა არის DBF ფაილი?
A DBF ფაილი არის სტრუქტურირებული ცხრილური მონაცემთა ბაზის ფაილის ფორმატი, რომელიც თავდაპირველად შემუშავდა dBASE-სთვის და მოგვიანებით იქნა მიღებული FoxPro-ს, Clipper-ის, Visual FoxPro-ს და მრავალი მემკვიდრეობით მიღებული ბიზნეს აპლიკაციის მიერ, რომელიც ხშირად გამოიყენება ბუღალტრული ჩანაწერების, ინვენტარიზაციის ცხრილების და მომხმარებელთა მონაცემებისთვის.
A DBF მონაცემთა ბაზა, როგორც წესი, მოიცავს რამდენიმე თანმხლებ ფაილს:
- .cdx / .idxრთული და ერთჯერადი ინდექსის ფაილები, რომლებიც აჩქარებენ ჩანაწერების ძიებას.
- .fpt / .dbtMemo ველის ფაილები, რომლებიც ინახავს ცვლადი სიგრძის ტექსტს ან ორობით მონაცემებს, რომლებზეც მითითება ხდება მთავარი ცხრილის მიერ.
- .dbcმონაცემთა ბაზის კონტეინერის ფაილი, რომელსაც Visual FoxPro იყენებს დაკავშირებული ცხრილების, ხედების და შენახული პროცედურების დასაკავშირებლად.
1.2 ნიშნები თქვენი DBF ფაილი დაზიანებულია
შემდეგი სიმპტომები მიუთითებს, რომ DBF შესაძლოა ფაილი დაზიანებულია და შეკეთებას საჭიროებს:
- შეცდომა „მაგიდა არ არის“აპლიკაცია ფაილის სათაურის პირველ ბაიტს ვალიდურად არ ცნობს. DBF ვერსიის მარკერი.
- შეცდომა „ფაილი მონაცემთა ბაზა არ არის“ფაილის სათაურის სტრუქტურა წაუკითხავია ან გადაწერილია.
- აპლიკაციის გახსნისას კრახი ხდებაფაილის ჩატვირთვის მცდელობისას მასპინძელი პროგრამა იყინება ან წყვეტს მუშაობას.
- დამახინჯებული ან დაკარგული ჩანაწერებირიგები აჩვენებს არასწორ სიმბოლოებს, შემოკლებულ მნიშვნელობებს ან საერთოდ არ არის.
- ჩანაწერების არასწორი რაოდენობააპლიკაციის მიერ მოხსენებული ჩანაწერების რაოდენობა არ ემთხვევა ფაილში არსებული სტრიქონების რეალურ რაოდენობას.
- ინდექსის შეცდომებიაპლიკაცია იუწყება ინდექსის შეუსაბამობებს ან ვერ პოულობს ჩანაწერებს, რომლებიც უნდა არსებობდეს.
- ნულოვანი ბაიტი ან არანორმალურად მცირე ფაილის ზომაფაილმა დაკარგა თავისი შინაარსი ჩაწერის ოპერაციის შეწყვეტის გამო.
1.3 გავრცელებული მიზეზები DBF ფაილის კორუფცია
- არასწორი გამორთვა და ელექტროენერგიის გათიშვაფაილის გახსნისას ელექტროენერგიის გათიშვა ან იძულებითი გადატვირთვა წყვეტს ჩაწერის ოპერაციას, რის შედეგადაც ფაილი არათანმიმდევრულ მდგომარეობაში აღმოჩნდება.
- მრავალმომხმარებლიანი წვდომის კონფლიქტები: რამდენიმე მომხმარებელი ხსნის და წერს ერთსა და იმავე ფაილს DBF ფაილის ერთდროულად ქსელში გაზიარებამ შეიძლება დააზიანოს როგორც მონაცემთა ჩანაწერები, ასევე ინდექსის ფაილები.
- ინდექსის ფაილის დაზიანება: დაკარგული ან დაზიანებული .cdx / .idx ფაილები მონაცემთა ბაზას გაუმართავად აჩვენებენ, მაშინაც კი, როდესაც ძირითადი მონაცემების ჩანაწერები ხელუხლებელია.
- წაშლილი ჩანაწერების დაგროვება და ფრაგმენტაციაწაშლისთვის მონიშნული, მაგრამ ფიზიკურად არასდროს წაშლილი ჩანაწერები დროთა განმავლობაში გროვდება და შეიძლება სტრუქტურული შეუსაბამობები გამოიწვიოს.
- პროგრამული უზრუნველყოფის კრახი და ვირუსული შეტევებიჩაწერის ოპერაციის დროს აპლიკაციის გაუმართაობამ ან ფაილის ბაიტებზე გადაწერის შედეგად გამოწვეულმა მავნე პროგრამამ შეიძლება დააზიანოს სათაური, ველის აღმწერები ან მონაცემთა ჩანაწერები.
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 დაკარგული ფაილების აღდგენა
თუ ინდექსის ფაილები აკლია, აღადგინეთ ისინი შემდეგი ფუნქციის გამოყენებით: რეინდექსი ბრძანება. თუ მემო ფაილები აკლია და სარეზერვო ასლი არ არსებობს, ამ ჩანაწერების მემო ველის მონაცემები აღუდგენელია, მაგრამ არამემო ველებზე წვდომა მაინც შესაძლებელია ცხრილის გახსნით მემო ფაილის მითითების სათაურიდან წაშლის შემდეგ, ბრძანების გამოყენებით. hex რედაქტორი.
4. მეთოდი 2: გამოიყენეთ მონაცემთა ბაზის კომუნალური ბრძანებები (FoxPro / dBASE)
თუ თქვენ გაქვთ წვდომა Visual FoxPro-ზე ან dBASE-ზე, მათ აქვთ ჩაშენებული ბრძანებები, რომლებსაც შეუძლიათ გავრცელებული კორუფციების ფართო სპექტრის გამოსწორება.
4.1 ფაილის გახსნა ექსკლუზიურ რეჟიმში
ფაილის ექსკლუზიურ რეჟიმში გახსნა სრული წაკითხვის/ჩაწერის კონტროლს იძლევა და აუცილებელია ნებისმიერი შეკეთების ბრძანების შესრულებამდე. Visual FoxPro Command Window-ში აკრიფეთ:
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-ბიტიან არქიტექტურას და შესაძლოა 64-ბიტიან ვერსიაში სწორად არ ჩაიტვირთოს.
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 ბაიტი)პირველი ბაიტი განსაზღვრავს DBF ვერსია (მაგალითად,
0x03dBASE III-ისთვის მემორანდუმის გარეშე,0x30Visual FoxPro-სთვის). ბაიტები 1–3 ინახავს ბოლო განახლების თარიღს (წელი/თვე/დღე). ბაიტები 4–7 ინახავს ჩანაწერების საერთო რაოდენობას 32-ბიტიანი მთელი რიცხვის სახით. ბაიტები 8–9 ინახავს სათაურის ზომას ბაიტებში, ხოლო ბაიტები 10–11 ინახავს ჩანაწერის ფიქსირებულ ზომას ბაიტებში. - ველის აღმწერი მასივი: 32-ბაიტიანი ჩანაწერების თანმიმდევრობა, თითო ველში, სათაურისთანავე. თითოეული ჩანაწერი ინახავს ველის სახელს (ბაიტები 0–10, ცარიელი ველებით), ველის ტიპს (ბაიტი 11: C=სიმბოლო, N=რიცხვითი, D=თარიღი, L=ლოგიკური, M=შენიშვნა), ველის სიგრძეს (ბაიტი 16) და ათწილადების რაოდენობას (ბაიტი 17). მასივი მთავრდება a-თი
0x0Dბაიტი. - მონაცემთა ჩანაწერებიფიქსირებული სიგრძის ჩანაწერები, თითოეული ზუსტად იმდენივე სიგანის, რამდენიც სათაურში შენახული ჩანაწერის ზომაა. თითოეული ჩანაწერის პირველი ბაიტი წაშლის ფლაგია (
0x20= აქტიური ჩანაწერი,0x2A= წაშლილი ჩანაწერი). - EOF მარკერი: ერთი ბაიტი (
0x1A), რომელიც ფაილის დასასრულს აღნიშნავს.
6.2 ტექსტური რედაქტორების გამოყენება წასაკითხი მონაცემების მისაღებად
იმის გამო, რომ DBF არის ორობითი ფორმატი, ტექსტის რედაქტორებმა უნდა არა გამოიყენება ფაილის უშუალოდ რედაქტირებისთვის. თუმცა, მათ შეუძლიათ აჩვენონ წასაკითხი ნაწილები — ველების სახელები და სიმბოლოების მონაცემების ჩანაწერები — რომელთა გამოყენებაც შეგიძლიათ ახალი მონაცემთა ბაზის კოპირებისა და რეკონსტრუქციისთვის.
ქვემოთ მოცემულია რამდენიმე პოპულარული ტექსტური რედაქტორი, რომელთა გამოყენებაც შეგიძლიათ:
- Notepad++ (Windows): გახსენით დაზიანებული DBF ფაილი Notepad++-ში. ველის აღმწერიდან ველების სახელები. მონაცემთა ჩანაწერებიდან მასივისა და სიმბოლოების ველის მნიშვნელობები ხილული იქნება როგორც წასაკითხი ASCII ტექსტი, ბინარული შინაარსის გარდა. დაადგინეთ და ჩაინიშნეთ ველების სახელები, ტიპები და ნებისმიერი აღსადგენი მონაცემთა რიგი.
- ვიმი (Linux): Გააღე DBF შეიტანეთ ფაილი
vim -b yourfile.dbfორობით რეჟიმში შესასვლელად. გამოიყენეთ / ცნობილი ველის სახელების ან მონაცემთა სტრიქონების მოსაძებნად. Vim-ის ძებნისა და ჩანაცვლების ფუნქცია ასევე შეიძლება გამოყენებულ იქნას ჩანაწერებში მუდმივად არასწორი მნიშვნელობის ყველა შემთხვევის მოსაძებნად.
მას შემდეგ, რაც დაადგენთ წაკითხვად ველის აღმწერებსა და მონაცემთა ჩანაწერებს, გამოიყენეთ ეს ინფორმაცია dBASE-ში ან Visual FoxPro-ში ცხრილის სტრუქტურის ხელახლა შესაქმნელად და ხელით ხელახლა შეიყვანეთ ან ჩასვით აღდგენილი ჩანაწერები ახალ ფაილში. ნუ ეცდებით ორიგინალი ორობითი ფაილის ტექსტური რედაქტორიდან შეკეთებას - ეს თითქმის დანამდვილებით გამოიწვევს მის კიდევ უფრო დაზიანებას.
6.3 მონაცემების ხელით შესაკეთებლად ან რეკონსტრუქციისთვის გამოიყენეთ Hex რედაქტორი
ჰექსადეალური რედაქტორი უფრო პროფესიონალური ინსტრუმენტია, რომელსაც შეუძლია ბაიტური დონის წვდომა უზრუნველყოს. DBF ფაილი, რაც საშუალებას იძლევა როგორც პირდაპირი შეკეთების, ასევე მონაცემების საიმედო მოპოვების.
6.3.1 საერთო Hex რედაქტორები
შემდეგი hex რედაქტორები შესაფერისია DBF სარემონტო სამუშაოები:
- VFP-ის ჩაშენებული HexEditხელმისაწვდომია Visual FoxPro-ში. ბრძანების ფანჯარაში, შეასრულეთ
DO HOME() + "Tools\HexEdit\HexEdit.app", აირჩიეთ DBF ფაილი მოთხოვნისთანავე. ცალკე ინსტალაცია საჭირო არ არის. - WinHex: Windows-ისთვის განკუთვნილი პროფესიონალური დონის hex რედაქტორი შაბლონების მხარდაჭერით, რომელიც საშუალებას გაძლევთ, შექმნათ რუკა DBF სათაურის ველები ვიზუალურად.
- UltraEdit: კროსპლატფორმული რედაქტორი თექვსმეტობითი რეჟიმით, რომელიც ამუშავებს დიდ ფაილებს და მხარს უჭერს სვეტების შერჩევას, სასარგებლოა მონაცემთა ჩანაწერების ბლოკების კოპირებისთვის.
6.3.2 ხელით ანალიზი და შეკეთება
გახსენით სარეზერვო ასლი DBF ფაილი hex რედაქტორში და შეასრულეთ შემდეგი შემოწმების თანმიმდევრობა:
- შეამოწმეთ სათაურის პირველი რამდენიმე ბაიტი: გადაამოწმეთ ფაილის ტიპი ბაიტი (ბაიტი 0), ბოლო განახლების თარიღი (ბაიტები 1–3), ჩანაწერების რაოდენობა (ბაიტები 4–7), სათაურის ზომა (ბაიტები 8–9) და ჩანაწერის ზომა (ბაიტები 10–11). სათაურის დაზიანების აღმოსაჩენად, შეადარეთ ჩანაწერების რაოდენობა და ზომა ფაილის რეალურ ზომას.
- შეამოწმეთ ველის აღმწერი მასივი, რომელიც იწყება 32 ბაიტიდან: დაადასტურეთ, რომ თითოეული 32-ბაიტიანი ჩანაწერი შეიცავს ვალიდურ ველის სახელს, ამოცნობილ ტიპის სიმბოლოს, არანულოვანი ველის სიგრძეს და რომ მასივი მთავრდება a-თი.
0x0Dბაიტი. - შეამოწმეთ მონაცემთა ჩანაწერები, რომლებიც იწყება სათაურის ზომით მითითებული ოფსეტიდან: გადაამოწმეთ, რომ თითოეული ჩანაწერი იწყება წაშლის ფლაგით (
0x20or0x2A) და რომ ჩანაწერის სიგრძე ემთხვევა სათაურში მოცემულ მნიშვნელობას. - დაადგინეთ, დაზიანებულია თუ არა სათაურში, ველის აღმწერ მასივში თუ მონაცემთა ჩანაწერებში. ეს განსაზღვრავს, თუ რომელი რეკონსტრუქციის სტრატეგია უნდა იქნას გამოყენებული.
- უმნიშვნელო დაზიანებების შემთხვევაში, როგორიცაა ჩანაწერების არასწორი რაოდენობა ან ერთი დაზიანებული ბაიტი, შეასწორეთ მნიშვნელობა პირდაპირ hex რედაქტორში და შეინახეთ ფაილი.
ქვემოთ მოცემულია ნიმუში DBF ფაილი გაიხსნა hex რედაქტორში:
6.3.3 ხელით რეკონსტრუქცია DBF ფაილი
როდესაც დაზიანება იმდენად სერიოზულია, რომ ადგილზე მისი გამოსწორება შეუძლებელია, მონაცემთა ბაზის რეკონსტრუქცია უნდა მოხდეს ხელუხლებელი მონაცემების ჩანაწერების ახლად შექმნილ ფაილში გადატანით:
- გახსენით dBASE ან Visual FoxPro და შექმენით ახალი DBF ფაილი.
- შექმენით ველები იგივე სახელებითა და მონაცემთა ტიპებით, რაც ორიგინალ მონაცემთა ბაზაშია, თექვსმეტობითი შემოწმების დროს იდენტიფიცირებული ველის აღმწერების ან სხვა წყაროების გამოყენებით, როგორიცაა მონაცემთა ბაზის დირექტორი, რომელმაც შექმნა ორიგინალი.
- ჰექსადეიდური რედაქტორში აირჩიეთ და დააკოპირეთ ძველიდან ხელუხლებელი მონაცემების ჩანაწერები. DBF ფაილი.
- ჩასვით კოპირებული მონაცემების ჩანაწერები ახალი ჩანაწერის შესაბამის ოფსეტში DBF ფაილი.
- ხელით გამოასწორეთ ჩასმულ მონაცემთა ჩანაწერებში ხილული ნებისმიერი დაზიანება, როგორიცაა არასწორი წაშლის დროშები ან შემოკლებული ველის მნიშვნელობები.
- ხელით ხელახლა შეიყვანეთ ნებისმიერი მონაცემთა ჩანაწერი, რომლის აღდგენაც თექვსმეტობითი ასლიდან ვერ მოხერხდა.
- შეინახეთ ახალი DBF ფაილი და გახსენით იგი Visual FoxPro-ში ან dBASE-ში, რათა დაადასტუროთ, რომ ყველა ჩანაწერი სწორად იტვირთება.
7. მეთოდი 5: შეკეთება პროგრამირების ენებით
პროგრამირების ბიბლიოთეკები გაძლევთ ზუსტ კონტროლს იმაზე, თუ როგორ ხდება კორუმპირებული DBF ფაილი იკითხება, რაც საშუალებას გაძლევთ, გამონაკლისები ელეგანტურად დაამუშაოთ და აღსადგენი მონაცემები ახალ და სუფთა მონაცემთა ბაზაში გადაიტანოთ.
7.1 პითონი (პანდა / 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_memofileflag საშუალებას აძლევს ცხრილს ჩაიტვირთოს მაშინაც კი, თუ მემო ფაილი არ არის. - ჩატვირთეთ ჩანაწერები 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)
UCanAccess JDBC დრაივერი მხარს უჭერს DBF ფაილები და საშუალებას იძლევა პროგრამული შეკეთების სტანდარტული Java I/O-ს მეშვეობით:
- დაამატეთ 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 files.
- დასაწყისი DataNumen DBF Repair
- აირჩიეთ კორუმპირებული DBF შესაკეთებელი ფაილი.
- დააყენეთ გამომავალი ფაილის სახელი.
- დაწკაპეთ დაიწყეთ შეკეთებაინსტრუმენტი დაიწყებს ფაილის სკანირებას და აღდგენას.
- შეკეთების პროცესის შემდეგ, გახსენით გამოსწორებული ფაილი dBase-ში ან FoxPro-ში.
8.2 ონლაინ გამოყენება DBF სარემონტო ინსტრუმენტები
ონლაინ სარემონტო სერვისები მოსახერხებელია ერთჯერადი შეკეთებისთვის. გამოიყენეთ ისინი მხოლოდ იმ ფაილებით, რომლებიც არ შეიცავს მგრძნობიარე ან კონფიდენციალურ მონაცემებს.
- აღდგენის ინსტრუმენტარიუმისთვის DBF Onlineბრაუზერზე დაფუძნებული სერვისი, რომელიც მხარს უჭერს dBASE-ს და FoxPro-ს DBF ფორმატებში.
- OnlineFile.Repairმრავალფორმატიანი ონლაინ შეკეთების სერვისი, რომელიც მოიცავს DBF მხარდაჭერა.
ონლაინ რეჟიმში მუშაობის საერთო ნაბიჯები DBF სარემონტო ინსტრუმენტები:
- გადადით ონლაინ სარემონტო ინსტრუმენტის ვებსაიტზე.
- დაწკაპეთ ფაილის ატვირთვა or იხილე და კორუმპირებულებს არჩევენ .dbf ფაილი.
- დაწკაპეთ რემონტი or ანალიზი სარემონტო პროცესის დასაწყებად.
- როდესაც მოგეთხოვებათ დაადასტუროთ, რომ მონაცემები გამოსაყენებელია, გადახედეთ აღდგენილ ჩანაწერებს.
- დაწკაპეთ ಡೌನ್ಲೋಡ್ ಮಾಡಿ შეკეთებული ფაილის თქვენს კომპიუტერში გადმოსაწერად.
9. პრევენცია DBF ფაილის კორუფცია
ხიდი DBF კორუფციის პრევენცია შესაძლებელია. ამ პრაქტიკის დაცვა მნიშვნელოვნად ამცირებს მონაცემთა დაკარგვის რისკს:
- სათანადო გამორთვის პრაქტიკაკომპიუტერის გამორთვამდე ყოველთვის დახურეთ მონაცემთა ბაზის აპლიკაცია. არასდროს დახუროთ აპლიკაცია პროცესების მენეჯერი (Task Manager) სანამ ფაილი გახსნილია.
- ქსელურ ფაილებზე წვდომის თავიდან აცილება: არ გახსნათ DBF ფაილები პირდაპირ ქსელური გაზიარებიდან, თუ აპლიკაცია აშკარად არ უჭერს მხარს ქსელური ჩანაწერების დაბლოკვას. არასოდეს მისცეთ რამდენიმე მომხმარებელს ერთსა და იმავე საცავში ჩაწერის უფლება. DBF ერთდროულად დააარქივეთ ფაილი საკეტი მექანიზმის გარეშე.
- რეგულარული სარეზერვო ასლებიდაგეგმეთ ყოველდღიური სარეზერვო ასლების შექმნა და შეინახეთ ასლები ცალკე ფიზიკურ ადგილას ან ღრუბლოვან საცავში. პერიოდულად ექსპორტირეთ კრიტიკული მონაცემები CSV ან სხვა თანამედროვე ფორმატში, როგორც დამატებითი უსაფრთხოების ბადე.
- ინდექსის მოვლა: გაიქეცი
REINDEXპერიოდულად — განსაკუთრებით ნებისმიერი არანორმალური გათიშვის შემდეგ — ინდექსის ფაილების მონაცემთა ჩანაწერებთან თავსებადობის შესანარჩუნებლად და ინდექსთან დაკავშირებული კორუფციის შეცდომების ესკალაციის თავიდან ასაცილებლად.
10. კითხვა
კითხვა: შეიძლება თუ არა სრულიად დაზიანებული DBF ფაილი აღდგება?
ნაწილობრივი აღდგენა თითქმის ყოველთვის შესაძლებელია. სრული აღდგენა დამოკიდებულია იმაზე, შენარჩუნებულია თუ არა ფაილის მონაცემთა ჩანაწერის არე ხელუხლებელი. სათაურისა და ინდექსის დაზიანება, როგორც წესი, გამოსწორებადია; გადაწერილი მონაცემთა ჩანაწერები - არა.
კითხვა: რას ნიშნავს შეცდომა „არ არის ცხრილი“ Visual FoxPro-ში?
A: ფაილის სათაურის პირველი ბაიტი არ არის ამოცნობილი. DBF ვერსიის მარკერი. Visual FoxPro მკაცრად ამოწმებს ამ ბაიტს გახსნისას, ამიტომ ერთბაიტიანი სათაურის დაზიანებაც კი იწვევს ამ შეცდომას.
კითხვა: უსაფრთხოა თუ არა უფასო ონლაინ ინსტრუმენტების გამოყენება შეკეთებისთვის? DBF ფაილი?
A: მხოლოდ იმ შემთხვევაში, თუ ფაილი არ შეიცავს მგრძნობიარე მონაცემებს. ატვირთვამდე ყოველთვის წაიკითხეთ ინსტრუმენტის კონფიდენციალურობის პოლიტიკა და კონფიდენციალურ ჩანაწერებთან მუშაობისას უპირატესობა მიანიჭეთ დესკტოპის ინსტრუმენტს.
კითხვა: PACK სამუდამოდ წაშლის ჩემს ჩანაწერებს?
დიახ. PACK სამუდამოდ შლის წაშლისთვის მონიშნულ ყველა ჩანაწერს გაუქმების ოფციის გარეშე. ყოველთვის გაუშვით სარეზერვო ასლზე და არასდროს ორიგინალ ფაილზე.
კითხვა: შეუძლია თუ არა Python-ს აღდგენა? DBF ფაილი კომერციული პროგრამული უზრუნველყოფის გარეშე?
A: დიახ, მონაცემთა დონის შეცდომებისთვის. 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-ში?
A: LibreOffice უფრო ტოლერანტულია სათაურის მცირე შეუსაბამობების მიმართ. Visual FoxPro ახორციელებს სათაურის მკაცრ ვალიდაციას და უარს ამბობს ფაილების გახსნაზე, რომლებიც ვერ გაივლიან შემოწმებას. თუ ფაილი გაიხსნება LibreOffice-ში, ექსპორტირეთ მონაცემები CSV ფორმატში და ხელახლა შექმენით DBF სუფთა, FoxPro-თავსებადი ფაილის მისაღებად.
კითხვა: რა იწვევს ინდექსის ფაილების (.cdx / .idx) დაკარგვას?
A: ყველაზე გავრცელებული მიზეზებია შემთხვევითი წაშლა, აპლიკაციის წარუმატებელი ინსტალაცია ან დეინსტალაცია, რომელმაც წაშალა თანმხლები ფაილები, ინდექსის აღდგენის ოპერაციის დროს ავარია ან ფაილის კოპირება. .dbf ფაილის ახალ ადგილას გადატანა მასთან დაკავშირებული ინდექსის ფაილების კოპირების გარეშე.
კითხვა: შეიძლება ა DBF ფაილი, რომელსაც აქვს მემო ველები (.fpt / .dbt), კვლავ შეკეთდება?
A: დიახ, მაგრამ ეს დამატებით ნაბიჯებს მოითხოვს. გამოიყენეთ PACK MEMO FoxPro-ში მემო ფაილის კომპაქტირებისა და აღსადგენად. თუ მემო ფაილი თავად დაზიანებულია, არამემო ველის მონაცემები, როგორც წესი, მაინც აღდგება ცხრილის გახსნით მემო ფაილის მითითების სათაურიდან ამოღებით.
კითხვა: როგორ გადავწყვიტო, რომელი შეკეთების მეთოდი ვცადო პირველ რიგში?
A: დაიწყეთ ყველაზე ნაკლებად ინვაზიური მიდგომით და ესკალაცია მხოლოდ იმ შემთხვევაში, თუ ის ვერ მოხერხდა: (1) შეამოწმეთ დაკარგული დაკავშირებული ფაილები, (2) გაუშვით REINDEX, (3) გახსნა ალტერნატიულ აპლიკაციაში, როგორიცაა LibreOffice Calc, (4) გაშვება PACK მდე PACK MEMO, (5) ხელით შესაკეთებლად გამოიყენეთ hex რედაქტორი, (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 მონაცემთა ბაზის აღდგენა, მაღალი ხელმისაწვდომობის გადაწყვეტილებები და მუშაობის ოპტიმიზაცია. მისი ფართო პრაქტიკული გამოცდილება მოიცავს მრავალტერაბაიტიანი მონაცემთა ბაზების მართვას, Always On Availability Groups-ის დანერგვას და კრიტიკულად მნიშვნელოვანი ბიზნეს სისტემებისთვის ავტომატური სარეზერვო ასლისა და აღდგენის სტრატეგიების შემუშავებას.
თავისი ტექნიკური ექსპერტიზისა და პრაქტიკული მიდგომის წყალობით, იუანი ფოკუსირებულია ყოვლისმომცველი სახელმძღვანელოების შექმნაზე, რომლებიც მონაცემთა ბაზის ადმინისტრატორებსა და IT სპეციალისტებს დაეხმარება რთული საკითხების გადაჭრაში. SQL Server ეფექტურად უწევს გამოწვევებს. ის მუდმივად ადევნებს თვალყურს უახლეს ამბებს SQL Server რელიზები და Microsoft-ის განვითარებადი მონაცემთა ბაზის ტექნოლოგიები, რეგულარულად ამოწმებს აღდგენის სცენარებს იმის უზრუნველსაყოფად, რომ მისი რეკომენდაციები ასახავდეს რეალურ სამყაროს საუკეთესო პრაქტიკას.
გაქვთ შეკითხვები SQL Server მდე DBF მონაცემთა ბაზის აღდგენა ან გჭირდებათ დამატებითი რჩევები მონაცემთა ბაზის პრობლემების მოგვარებაში? იუანი სიამოვნებით მოგმართავთ. გამოხმაურება და წინადადებები ამ ტექნიკური რესურსების გასაუმჯობესებლად.





