Մի կոռումպացված 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)
Եթե աղյուսակը պարունակում է memo դաշտեր, ապա դրա memo ֆայլը (.fpt Visual FoxPro-ի համար, .dbt dBASE III/IV-ի համար) պետք է գտնվեն նույն պանակում: Հիշողության ֆայլի բացակայությունը հանգեցնում է ընթերցման սխալների ցանկացած գրառման համար, որը հղում է կատարում հիշատակման արժեքին, նույնիսկ եթե գրառման մնացած մասը անվնաս է:
3.3 Վերականգնել բացակայող ֆայլերը
Եթե ինդեքսի ֆայլերը բացակայում են, վերակառուցեք դրանք՝ օգտագործելով ՌԵԻՆԴԵՔՍ հրաման։ Եթե հուշագրի ֆայլերը բացակայում են և պահուստային պատճեն գոյություն չունի, այդ գրառումների հուշագրի դաշտի տվյալները չեն վերականգնվի, բայց ոչ հուշագրի դաշտերին դեռևս կարելի է մուտք գործել՝ հուշագրի ֆայլի հղումը վերնագրից հեռացնելուց հետո աղյուսակը բացելով՝ օգտագործելով hex խմբագիր.
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-ը կցուցադրի ներմուծման երկխոսության պատուհան, որտեղ կարող եք ընտրել նիշերի կոդավորումը:
- Եթե ֆայլը բեռնվում է, տվյալները հայտնվում են որպես աղյուսակ։ Նույնիսկ մասամբ վնասված ֆայլերը հաճախ բեռնվում են ընթեռնելի գրառումներով։
- Վերականգնված տվյալները արտահանեք հետևյալ կերպ՝ Ֆայլ -> Պահել As եւ ընտրեք Տեքստային 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-ը ավտոմատ կերպով վերլուծում է ֆայլի կառուցվածքը և փորձում է շտկել բեռնման ժամանակ աննշան վնասները։
- Եթե տվյալները կարդացվող են, անցեք Ֆայլ -> Պահել As և պահպանեք այն նոր ֆայլի անվամբ՝ սկզբնական պահուստային պատճենը պահպանելու համար։
5.4 Xbase++
Xbase++-ը առաջադեմ մշակման միջավայր է DBF համատեղելիություն, որը կարող է կարգավորել կոռուպցիայի տեսակները, որոնք խափանում են հին FoxPro կամ dBASE միջավայրերը.
- Բեռնեք վնասված ֆայլը DBF ֆայլ՝ օգտագործելով Xbase++ ֆայլերի կառավարման գործառույթները։
- Գործարկեք ներկառուցված ախտորոշիչ և վերանորոգման ընթացակարգերը, որոնք կարող են շտկել վնասված ինդեքսները և տվյալների մուտքագրման սխալները, որոնք այլ գործիքները չեն կարող կարգավորել։
6. Մեթոդ 4. Ձեռքով շտկում տեքստային/տասնվեցական խմբագրիչներով
Երբ վերը նշված մեթոդները չեն աշխատում, տեքստային կամ hex խմբագրիչների միջոցով ձեռքով ստուգումը թույլ է տալիս ուսումնասիրել ֆայլի հում պարունակությունը, պատճենել ամբողջական տվյալները և վերականգնել գործող տվյալների բազան։ Այս մեթոդը պահանջում է զգուշություն և տարրական գիտելիքներ։ 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 երկուական ձևաչափ է, տեքստային խմբագիրները պետք է ՈՉ կարող են օգտագործվել ֆայլը անմիջապես խմբագրելու համար: Այնուամենայնիվ, դրանք կարող են ցուցադրել ընթեռնելի մասեր՝ դաշտերի անուններ և նիշերի տվյալների գրառումներ, որոնք կարող եք օգտագործել նոր տվյալների բազա պատճենելու և վերակառուցելու համար:
Ստորև ներկայացված են մի քանի հայտնի տեքստային խմբագրիչներ, որոնք կարող եք օգտագործել.
- Նոթատետր++ (Windows)Բացեք վնասված ֆայլը DBF ֆայլը Notepad++-ում: Դաշտի նկարագրիչից դաշտերի անունները: Տվյալների գրառումներից զանգվածի և նիշերի դաշտերի արժեքները տեսանելի կլինեն որպես ընթեռնելի ASCII տեքստ, բացի երկուական բովանդակությունից: Նույնականացրեք և նշեք դաշտերի անունները, տեսակները և վերականգնվող տվյալների բոլոր տողերը:
- Վիմ (Լինուքս)Բացել DBF ֆայլի հետ
vim -b yourfile.dbfերկուական ռեժիմ մուտք գործելու համար։ Օգտագործեք / հայտնի դաշտերի անուններ կամ տվյալների տողեր որոնելու համար: Vim-ի որոնումը և փոխարինումը կարող են նաև օգտագործվել գրառումներում հետևողականորեն սխալ արժեքի բոլոր դեպքերը գտնելու համար:
Երբ որոշեք ընթեռնելի դաշտերի նկարագրիչները և տվյալների գրառումները, օգտագործեք այդ տեղեկատվությունը՝ dBASE-ում կամ Visual FoxPro-ում աղյուսակի կառուցվածքը վերստեղծելու և վերականգնված գրառումները ձեռքով վերամուտքագրելու կամ տեղադրելու նոր ֆայլում: Մի փորձեք շտկել սկզբնական երկուական ֆայլը տեքստային խմբագրիչից. դա գրեթե անկասկած կփչացնի այն:
6.3 Օգտագործեք Hex Editor-ը՝ տվյալները ձեռքով վերականգնելու կամ վերակառուցելու համար
Hex խմբագրիչը ավելի պրոֆեսիոնալ գործիք է, որը կարող է բայթային մակարդակի հասանելիություն ապահովել։ DBF ֆայլը, որը հնարավորություն է տալիս ինչպես անմիջական վերանորոգումներ, այնպես էլ հուսալի տվյալների արդյունահանում։
6.3.1 Տարածված տասնվեցական խմբագրիչներ
Հետևյալ hex խմբագրիչները հարմար են DBF վերանորոգման աշխատանքներ՝
- VFP ներկառուցված HexEditՀասանելի է Visual FoxPro-ի ներսում։ Հրամանների պատուհանում կատարեք
DO HOME() + "Tools\HexEdit\HexEdit.app", ապա ընտրեք DBF ֆայլը, երբ ձեզ հուշեն։ Առանձին տեղադրում անհրաժեշտ չէ։ - WinHexWindows-ի համար նախատեսված պրոֆեսիոնալ մակարդակի hex խմբագրիչ՝ ձևանմուշների աջակցությամբ, որը թույլ է տալիս քարտեզագրել DBF վերնագրի դաշտերը տեսողականորեն։
- UltraEditՔս-պլատֆորմային խմբագրիչ՝ տասնվեցական ռեժիմով, որը մշակում է մեծ ֆայլեր և աջակցում է սյունակների ընտրությունը, օգտակար է տվյալների գրառումների բլոկները պատճենելու համար։
6.3.2 Ձեռքով վերլուծություն և վերանորոգում
Բացեք պահուստային պատճենը DBF ֆայլը hex խմբագրիչում և կատարեք հետևյալ ստուգման հաջորդականությունը՝
- Ստուգեք վերնագրի առաջին մի քանի բայթերը՝ ստուգեք ֆայլի տեսակը՝ բայթ (բայթ 0), վերջին թարմացման ամսաթիվը (բայթեր 1–3), գրառումների քանակը (բայթեր 4–7), վերնագրի չափը (բայթեր 8–9) և գրառումների չափը (բայթեր 10–11): Վերնագրի վնասումը հայտնաբերելու համար համեմատեք գրառումների քանակը և գրառումների չափը ֆայլի իրական չափի հետ:
- Ստուգեք դաշտի նկարագրիչի զանգվածը՝ սկսած 32 բայթից. հաստատեք, որ յուրաքանչյուր 32 բայթանոց գրառում պարունակում է վավեր դաշտի անուն, ճանաչված տիպի նիշ, զրոյից տարբեր դաշտի երկարություն, և որ զանգվածն ավարտվում է
0x0Dբայթ - Ստուգեք տվյալների գրառումները՝ սկսած վերնագրի չափսով նշված շեղումից. համոզվեք, որ յուրաքանչյուր գրառում սկսվում է ջնջման դրոշակով (
0x20or0x2A) և որ գրառման երկարությունը համընկնում է վերնագրում նշված արժեքի հետ։ - Որոշեք, թե արդյոք վնասը գտնվում է վերնագրում, դաշտի նկարագրության զանգվածում, թե՞ տվյալների գրառումներում։ Սա որոշում է, թե որ վերակառուցման ռազմավարությունը կիրառել։
- Աննշան վնասների դեպքում, ինչպիսիք են սխալ գրառումների քանակը կամ մեկ վնասված բայթը, ուղղեք արժեքը անմիջապես hex խմբագրիչում և պահպանեք ֆայլը։
Ստորև բերված է նմուշ DBF ֆայլը բացվել է hex խմբագրիչում։
6.3.3 Ձեռքով վերակառուցել DBF Ֆայլ
Երբ վնասը չափազանց լուրջ է տեղում վերականգնելու համար, վերակառուցեք տվյալների բազան՝ անվնաս տվյալների գրառումները տեղափոխելով նոր ստեղծված ֆայլ։
- Բացեք dBASE-ը կամ Visual FoxPro-ն և ստեղծեք նորը DBF ֆայլը.
- Ստեղծեք դաշտեր նույն անուններով և տվյալների տեսակներով, ինչ սկզբնական տվյալների բազան՝ օգտագործելով տասնվեցական կոդի ստուգման ընթացքում նույնականացված դաշտերի նկարագրիչները կամ այլ աղբյուրներ, ինչպիսիք են բնօրինակը ստեղծած տվյալների բազայի կառավարիչը։
- Hex խմբագրիչում ընտրեք և պատճենեք հին տվյալների գրառումները DBF ֆայլը.
- Տեղադրեք պատճենված տվյալների գրառումները նորի համապատասխան օֆսեթում DBF ֆայլը.
- Ձեռքով շտկեք տեղադրված տվյալների գրառումներում տեսանելի ցանկացած վնասում, ինչպիսիք են սխալ ջնջման դրոշները կամ կրճատված դաշտերի արժեքները:
- Ձեռքով վերամուտքագրեք բոլոր տվյալների գրառումները, որոնք հնարավոր չէ վերականգնել hex պատճենից։
- Պահպանեք նորը DBF ֆայլը և բացեք այն Visual FoxPro-ում կամ dBASE-ում՝ ստուգելու համար, որ բոլոր գրառումները ճիշտ են բեռնվում։
7. Մեթոդ 5. Վերականգնում ծրագրավորման լեզուներով
Ծրագրավորման գրադարանները ձեզ ճշգրիտ վերահսկողություն են տալիս այն բանի վրա, թե ինչպես է կոռումպացված DBF ֆայլը կարդացվում է, ինչը թույլ է տալիս նրբանկատորեն մշակել բացառությունները և արտահանել վերականգնվող տվյալները նոր և մաքուր տվյալների բազա։
7.1 Python (pandas / dbfread)
Python- ի pandas և dbfread Գրադարանները կարող են կարդալ բազմաթիվ մասամբ վնասված DBF ֆայլեր, որոնք բնիկ տվյալների բազայի ծրագրերը հրաժարվում են բացել՝
- Տեղադրեք անհրաժեշտ գրադարանները՝
pip install pandas dbfread simpledbf. - Կարդացե՛ք վնասվածը DBF ֆայլ օգտագործելով
dbfread:from dbfread import DBF; table = DBF('yourfile.dbf', ignore_missing_memofile=True). Theignore_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)
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 ֆայլեր.
- սկիզբ DataNumen DBF Repair
- Ընտրեք կոռումպացվածին DBF ֆայլը, որը պետք է վերանորոգվի։
- Սահմանեք ելքային ֆայլի անունը։
- Սեղմել Սկսեք վերանորոգելԳործիքը կսկսի սկանավորել և վերականգնել ֆայլը։
- Վերանորոգման գործընթացից հետո բացեք շտկված ֆայլը dBase-ում կամ FoxPro-ում:
8.2 Օգտագործեք առցանց DBF Վերանորոգման գործիքներ
Առցանց վերանորոգման ծառայությունները հարմար են միանվագ վերանորոգման համար: Օգտագործեք դրանք միայն այն ֆայլերի հետ, որոնք չեն պարունակում զգայուն կամ գաղտնի տվյալներ:
- Recovery Toolbox համար DBF առցանցdBASE-ին և FoxPro-ին աջակցող զննարկչի վրա հիմնված ծառայություն DBF ձեւաչափերով.
- OnlineFile.RepairԲազմաֆորմատ առցանց վերանորոգման ծառայություն, որը ներառում է DBF աջակցություն.
Առցանց օգտագործման ընդհանուր քայլեր DBF վերանորոգման գործիքներ.
- Անցեք առցանց վերանորոգման գործիքի կայքէջ։
- Սեղմել Ավելացնել ֆայլ or Թերթել և ընտրում են կոռումպացվածներին .dbf ֆայլը.
- Սեղմել նորոգում or Վերլուծել վերանորոգման գործընթացը սկսելու համար։
- Նախադիտեք վերականգնված գրառումները, երբ խնդրվի հաստատել, որ տվյալները օգտագործելի են։
- Սեղմել Բեռնել վերանորոգված ֆայլը ձեր համակարգիչ ներբեռնելու համար։
9. Կանխարգելում DBF Գործի կոռուպցիա
կամուրջ DBF Կոռուպցիան կանխարգելելի է: Հետևյալ գործելակերպերին հետևելը զգալիորեն նվազեցնում է տվյալների կորստի ռիսկը.
- Անջատման ճիշտ պրակտիկաՀամակարգիչը անջատելուց առաջ միշտ փակեք տվյալների բազայի ծրագիրը։ Երբեք մի անջատեք ծրագիրը Task Manager մինչդեռ ֆայլը բաց է։
- Խուսափեք ցանցային ֆայլերի հասանելիությունից: Մի բացիր DBF ֆայլերը ուղղակիորեն ցանցային համօգտագործումից, եթե ծրագիրը հստակորեն չի աջակցում ցանցային գրառումների կողպումը: Երբեք թույլ մի տվեք մի քանի օգտատերերի գրել նույն համակարգում: DBF միաժամանակ ֆայլը տեղադրել առանց կողպման մեխանիզմի։
- Հերթական պահուստավորումՊլանավորեք ամենօրյա պահուստավորումներ և պահեք պատճենները առանձին ֆիզիկական վայրում կամ ամպային պահեստում: Պարբերաբար արտահանեք կարևոր տվյալները CSV կամ այլ ժամանակակից ձևաչափով՝ որպես լրացուցիչ անվտանգության ցանց:
- Ինդեքսի պահպանում: Վազիր
REINDEXպարբերաբար՝ հատկապես ցանկացած աննորմալ անջատումից հետո՝ ինդեքսի ֆայլերը տվյալների գրառումների հետ համապատասխան պահելու և ինդեքսի հետ կապված կոռուպցիոն սխալների սրումը կանխելու համար։
10. ՀՏՀ
Հարց. Կարո՞ղ է լիովին կոռումպացված լինել DBF ֆայլը կվերականգնվի՞
Ա. Մասնակի վերականգնումը գրեթե միշտ հնարավոր է: Լրիվ վերականգնումը կախված է նրանից, թե ֆայլի տվյալների գրանցման տարածքը դեռևս անվնաս է: Վերնագրի և ինդեքսի վնասումը, որպես կանոն, վերականգնվող է, իսկ վերագրվող տվյալների գրառումները՝ ոչ:
Հարց. Ի՞նչ է նշանակում «Ոչ աղյուսակ» սխալը Visual FoxPro-ում:
Ա. Ֆայլի վերնագրի առաջին բայթը ճանաչված չէ DBF տարբերակի նշիչ: Visual FoxPro-ն խստորեն ստուգում է այս բայթը բացելիս, ուստի նույնիսկ մեկ բայթանոց վերնագրի վնասումը առաջացնում է այս սխալը:
Հարց. Անվտա՞նգ է օգտագործել անվճար առցանց գործիքներ՝ սարքը վերանորոգելու համար։ 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 խմբագրիչ ձեռքով վերանորոգման համար, (6) օգտագործել մասնագիտական վերանորոգման գործիք, ինչպիսին է DataNumen DBF Repair.
Հարց. Կարո՞ղ է կաշառակեր լինելը DBF ֆայլը վնասե՞լ է նույն տվյալների բազայի մյուս աղյուսակները։
Ա. Կոռումպացված .dbf աղյուսակը ուղղակիորեն չի վնասում քույր-եղբայր աղյուսակները։ Սակայն, վնասված .dbc Visual FoxPro-ում տվյալների բազայի կոնտեյներային ֆայլը կարող է կանխել այդ կոնտեյներին կապված բոլոր աղյուսակների բացումը, արդյունավետորեն ամբողջ տվյալների բազան անհասանելի դարձնելով մինչև կոնտեյների վերանորոգումը կամ աղյուսակների անջատումը դրանից։
11: եզրափակում
Կոռումպացվածի վերանորոգում DBF ֆայլը հազվադեպ է անհույս լինում։ Սկսեք ամենաքիչ ինվազիվ քայլերից. ստուգեք, որ առկա են համապատասխան ինդեքսի և հուշագրի ֆայլերը, գործարկեք REINDEX վնասված ինդեքսները վերականգնելու համար և փորձեք բացել ֆայլը հանդուրժող այլընտրանքային ծրագրում, ինչպիսիք են LibreOffice Calc-ը կամ DBF Հրամանատար։ Եթե այդ մոտեցումները չեն վերականգնում տվյալները, դիմեք PACK և PACK MEMO հրամաններ, ապա՝ ձեռքով hex մակարդակի ստուգում և վերակառուցում, կամ ծրագրային վերականգնում՝ օգտագործելով Python կամ Java: Յուրաքանչյուր քայլի ընթացքում աշխատեք բացառապես պահուստային պատճենի վրա՝ երբեք բնօրինակ ֆայլի վրա:
Լուրջ կամ բարդ կոռուպցիայի դեպքում, երբ ձեռքով մեթոդները սպառվել են, մասնագետը DBF վերանորոգման գործիք ապահովում է ամենահուսալի ավտոմատ վերականգնումը: Ձեր տվյալները վերականգնելուց հետո կիրառեք 9-րդ բաժնում նշված կանխարգելիչ միջոցառումները՝ կանոնավոր պահուստավորում, պատշաճ անջատման ընթացակարգեր և REINDEX-ի պարբերական գործարկումներ՝ նույն փորձի կրկնությունից խուսափելու համար:
Հեղինակի մասին
Յուան Շենգ տվյալների բազայի ավագ ադմինիստրատոր (DBA) է՝ ավելի քան 10 տարվա փորձով։ SQL Server միջավայրերի և ձեռնարկությունների տվյալների բազայի կառավարման ոլորտում: Նա հաջողությամբ լուծել է տվյալների բազայի վերականգնման հարյուրավոր սցենարներ ֆինանսական ծառայությունների, առողջապահության և արտադրական կազմակերպություններում:
Յուանը մասնագիտանում է SQL Server և DBF տվյալների բազայի վերականգնում, բարձր մատչելիության լուծումներ և կատարողականի օպտիմալացում: Նրա լայնածավալ գործնական փորձը ներառում է բազմաբայթ ծավալով տվյալների բազաների կառավարում, միշտ հասանելի խմբերի ներդրում և կարևորագույն բիզնես համակարգերի համար ավտոմատացված պահուստավորման և վերականգնման ռազմավարությունների մշակում:
Իր տեխնիկական փորձագիտության և գործնական մոտեցման միջոցով Յուանը կենտրոնանում է համապարփակ ուղեցույցներ ստեղծելու վրա, որոնք կօգնեն տվյալների բազայի ադմինիստրատորներին և ՏՏ մասնագետներին լուծել բարդ խնդիրներ։ SQL Server արդյունավետորեն մարտահրավերներ է նետում։ Նա տեղեկացված է մնում վերջին նորություններից SQL Server թողարկումները և Microsoft-ի զարգացող տվյալների բազայի տեխնոլոգիաները, պարբերաբար փորձարկելով վերականգնման սցենարները՝ համոզվելու համար, որ նրա առաջարկությունները արտացոլում են իրական աշխարհի լավագույն փորձը։
Հարցեր ունեք SQL Server և DBF Տվյալների բազայի վերականգնում, թե՞ անհրաժեշտ է տվյալների բազայի խնդիրների լուծման լրացուցիչ ուղեցույց: Յուանը ողջունում է ձեզ արձագանքներ և առաջարկություններ այս տեխնիկական ռեսուրսները բարելավելու համար։





