Kopīgot tūlīt:
Saturs slēpt

Korumpants DBF fails var apturēt grāmatvedības sistēmu, inventarizācijas datubāzu un CRM lietojumprogrammu darbību. Šajā rokasgrāmatā ir aplūkotas visas praktiskās metodes, kā labot DBF fails, sākot no vienkāršām saistīto failu pārbaudēm līdz heksadecimālskaitļa līmeņa rekonstrukcijai, sakārtots no vismazākā līdz most invazīvs.

1. Ievads

1.1 Kas ir DBF Fails?

A DBF fails ir strukturēts tabulāras datubāzes faila formāts, kas sākotnēji tika izstrādāts dBASE un vēlāk tika ieviests FoxPro, Clipper, Visual FoxPro un daudzās mantotajās biznesa lietojumprogrammās, ko parasti izmanto grāmatvedības ierakstiem, inventāra tabulām un klientu datiem.

A DBF Datubāzē parasti ir iekļauti vairāki pavadošie faili:

  • .cdx / .idx failsSalikti un viena indeksa faili, kas paātrina ierakstu meklēšanu.
  • .fpt / .dbtMemo lauka faili, kuros tiek glabāts mainīga garuma teksts vai binārie dati, uz kuriem atsaucas galvenā tabula.
  • .dbc: Datu bāzes konteinera fails, ko Visual FoxPro izmanto, lai saistītu saistītās tabulas, skatus un saglabātās procedūras.

1.2 pazīmes par tavu DBF Fails ir bojāts

Turpmāk minētie simptomi liecina, ka DBF Fails, iespējams, ir bojāts un ir jālabo:

  • Kļūda “Nav tabula”Lietojumprogramma neatpazīst faila galvenes pirmo baitu kā derīgu DBF versijas marķieris.
  • Kļūda “Fails nav datubāze”Faila galvenes struktūra nav lasāma vai ir pārrakstīta.
  • Lietojumprogrammas avārija, atverotHost Programma sasalst vai pārtrauc darboties, mēģinot ielādēt failu.
  • Sagrozīti vai trūkstoši ierakstiRindās tiek attēlotas nepareizas rakstzīmes, saīsinātas vērtības vai to vispār nav.
  • Nepareizs ierakstu skaitsLietojumprogrammas ziņotais ierakstu skaits neatbilst faktiskajam rindu skaitam failā.
  • Indeksa kļūdasLietojumprogramma ziņo par indeksa neatbilstībām vai neatrod ierakstus, kuriem vajadzētu pastāvēt.
  • Nulles baitu vai neparasti mazs faila lielumsFailā ir lost tā saturs pārtrauktas rakstīšanas operācijas dēļ.

1.3 Biežākie cēloņi DBF Failu korupcija

  • Nepareiza izslēgšana un strāvas padeves pārtraukumsStrāvas padeves pārtraukums vai piespiedu pārstartēšana, kamēr fails ir atvērts, pārtrauc rakstīšanas darbību, atstājot failu nekonsekventā stāvoklī.
  • Vairāku lietotāju piekļuves konfliktiVairāki lietotāji atver un raksta vienā un tajā pašā lapā DBF Faila vienlaicīga pārvietošana tīklā var sabojāt gan datu ierakstus, gan indeksa failus.
  • Indeksa faila bojājumsTrūkst vai ir bojāts .cdx / .idx fails faili rada iespaidu, ka datubāze ir bojāta pat tad, ja galvenie datu ieraksti ir neskarti.
  • Dzēsto ierakstu uzkrāšana un fragmentācijaIeraksti, kas atzīmēti dzēšanai, bet nekad nav fiziski noņemti, laika gaitā uzkrājas un var izraisīt strukturālas neatbilstības.
  • Programmatūras avārijas un vīrusu uzbrukumiLietojumprogrammas avārija rakstīšanas operācijas laikā vai ļaunprogrammatūra, kas pārraksta faila baitus, var sabojāt galveni, lauku deskriptorus vai datu ierakstus.

2. Pirms remonta: svarīgi pirmie soļi

Pirms jebkādas labošanas metodes izmēģināšanas veiciet šīs divas darbības, lai novērstu bojājuma pasliktināšanos vai datu neatgriezenisku zaudēšanu.

2.1 Pārtrauciet faila atkārtotu atvēršanu

Katru reizi, kad lietojumprogramma mēģina ielādēt bojātu failu DBF failu, tas var ierakstīt failā papildu datus vai atjaunināt galveni, potenciāli pasliktinot bojājumus. Pārtrauciet faila atvēršanu, tiklīdz rodas aizdomas, ka tas ir bojāts.

2.2 Izveidojiet rezerves kopiju

Pirms jebkādu citu darbību veikšanas nokopējiet bojāto failu un pārdēvējiet to (piemēram, faila_nosaukums_rezerves_kopija.dbf). Katru remonta mēģinājumu veiciet kopijai, nekad oriģinālam. Ja remonta metode problēmu pasliktina, varattart pāri no neskartā oriģināla.

Tāpat dublējiet visus pavadošos failus (.cdx, .idx fails, .fpt, .dbt) kopā ar galveno .dbf fails.

3. 1. metode: pārbaudiet un atjaunojiet saistītos failus

Daudzi acīmredzami DBF Bojājumus patiesībā izraisa trūkstoši vai nesakritīgi pavadošie faili. Pārbaudiet tos, pirms mēģināt veikt jebkādu failu līmeņa labošanu.

3.1 Trūkstošo indeksa failu (.cdx / .idx) identificēšana

Atveriet mapi, kurā atrodas .dbf failu un pārbaudiet, vai ir visi paredzētie indeksa faili. Visual FoxPro tabula ar nosaukumu pasūtījumus.dbfpiemēram, parasti ir pavadonis pasūtījumi.cdxJa indeksa faila nav, lietojumprogramma ziņos par kļūdām, pat ja paši dati ir neskarti.

3.2 Trūkstošo piezīmju failu identificēšana (.dbt / .fpt)

Ja tabulā ir piezīmju lauki, tās piezīmju fails (.fpt paredzēts Visual FoxPro, .dbt (dBASE III/IV) jāatrodas tajā pašā mapē. Trūkstošs piezīmju fails izraisa lasīšanas kļūdas jebkuram ierakstam, kas atsaucas uz piezīmju vērtību, pat ja pārējā ieraksta daļa ir neskarta.

3.3 Trūkstošo failu atjaunošana

Ja trūkst indeksa failu, izveidojiet tos atkārtoti, izmantojot REINDEKSS komandu. Ja trūkst piezīmju failu un nav dublējuma, šo ierakstu piezīmju lauku datus nevar atgūt, bet laukiem, kas nav piezīmju lauki, joprojām var piekļūt, atverot tabulu pēc piezīmju faila atsauces noņemšanas no galvenes, izmantojot hex redaktors.

4. 2. metode: izmantojiet datubāzes utilītas komandas (FoxPro/dBASE)

Ja jums ir piekļuve Visual FoxPro vai dBASE, tām ir iebūvētas komandas, kas var novērst plašu izplatītu bojājumu klāstu.

4.1 Atveriet failu ekskluzīvā režīmā

Faila atvēršana ekskluzīvā režīmā piešķir pilnīgas lasīšanas/rakstīšanas tiesības, un tas ir nepieciešams pirms jebkuras labošanas komandas palaišanas. Visual FoxPro komandu logā ierakstiet:

USE yourfile.dbf EXCLUSIVE

Ja fails tiek veiksmīgi atvērts, datus var atgūt, nekavējoties kopējot ieraksta datus uz jaunu datubāzi.

4.2 Tabulas integritātes validēšana ar SET TABLEVALIDATE

Pirms labojumu piemērošanas izmantojiet SET TABLEVALIDATE lai atklātu korupcijas kļūdas:

SET TABLEVALIDATE 11
USE yourfile.dbf EXCLUSIVE

Šī komanda liek Visual FoxPro veikt stingru validāciju, atverot tabulu. Jebkurš šajā darbībā atgrieztais kļūdas ziņojums norāda bojājuma raksturu un atrašanās vietu.

4.3 Indeksu atjaunošana ar REINDEX

Atverot failu ekskluzīvajā režīmā, palaidiet:

REINDEX

REINDEX atjauno visus ar atvēršanu saistītos indeksa failus DBFTas novērš ar indeksu saistītas kļūmes, kuru dēļ šķiet, ka trūkst ierakstu vai lietojumprogramma ziņo, ka failu nevar nolasīt.

4.4. Tabulas kompaktēšana ar PACK

Atverot failu ekskluzīvajā režīmā, palaidiet:

PACK

PACK fiziski noņem visus ierakstus, kas atzīmēti dzēšanai, un saspiež failu. Tas atrisina problēmas, ko rada pārmērīga dzēsto ierakstu uzkrāšanās.

Brīdinājums: PACK neatgriezeniski un neatgriezeniski dzēš atzīmētos ierakstus. Palaidiet to tikai rezerves kopijā.

4.5. Memo lauku labošana ar PACK MEMO

Ja tabulā ir piezīmju lauki, pēc tam palaidiet šo komandu PACK:

PACK MEMO

PACK MEMO saspiež piezīmju failu (.fpt / .dbt), noņemot neizmantotos piezīmju blokus un labojot izmēru neatbilstības starp piezīmju failu un galveno tabulu.

BrīdinājumsPACK MEMO neatgriezeniski atmet dzēsto ierakstu un pārrakstīto piezīmju vērtību piezīmju datus bez atcelšanas opcijas. Palaidiet to tikai rezerves kopijā.

5. 3. metode: atveriet alternatīvā lietojumprogrammā

Dažreiz, atverot failu tolerantākā lietojumprogrammā, datus var atgūt pat tad, ja galvenā lietojumprogramma atsakās tos atvērt.

5.1 LibreOffice kalkulators

LibreOffice Calc ir iebūvēts dBASE importa filtrs, un tas var nolasīt neapstrādātus datus no daudziem daļēji bojātiem failiem. DBF faili:

  • Doties uz fileja -> atvērts Un izvēlieties .dbf fails. LibreOffice parādīs importēšanas dialoglodziņu, kurā varēsiet atlasīt rakstzīmju kodējumu.
  • Ja fails tiek ielādēts, dati tiek parādīti kā izklājlapa. Pat daļēji bojāti faili bieži tiek ielādēti ar lasāmiem ierakstiem.
  • Eksportējiet atgūtos datus, izmantojot fileja -> Saglabāt kā Un izvēlies Teksts CSV formātā or Microsoft Excel formātu un pēc tam izveidojiet to no jauna DBF no eksportētajiem datiem, ja nepieciešams.

Izmantojiet Libre Office Calc, lai atvērtu un labotu bojātus failus DBF fails.

PiezīmesAtverot DBF failus, kas izveidoti ar Visual FoxPro, izmantojiet 32-bit LibreOffice versija. Visual FoxPro failu formāts neatbalsta 64 bitu arhitektūru un, iespējams, nedarbosies pareizi 64 bitu versijā.

5.2 OpenOffice kalkulators

OpenOffice ir līdzīgs LibreOffice, taču tam ir vairākas drošības ievainojamības. Izmantojiet to tikai tad, ja LibreOffice neizdodas.

Izmantojiet OpenOffice Calc, lai atvērtu un labotu bojātus failus DBF fails.

5.3 DBF Komandieris

DBF Komandieris ir veltīts DBF skatītājs un redaktors, kas apstrādā plašāku klāstu DBF apakšversijas nekā vispārējas nozīmes lietojumprogrammas:

  • Lejupielādēt un instalēt DBF Komandieris, tad palaid to.
  • Doties uz fileja -> atvērts un ielādējiet bojāto .dbf fails. DBF Commander automātiski analizē failu struktūru un ielādes laikā mēģina novērst nelielus bojājumus.
  • Ja dati ir lasāmi, dodieties uz fileja -> Saglabāt kā un saglabājiet to ar jaunu faila nosaukumu, lai saglabātu sākotnējo dublējumu.

lietošana DBF Komandieris, lai atvērtu un labotu bojātus DBF fails.

5.4 Xbase++

Xbase++ ir izstrādes vide ar uzlabotām funkcijām. DBF saderība, kas spēj apstrādāt bojājumu veidus, kas izraisa avarē vecākas FoxPro vai dBASE vides:

  • Ielādējiet bojāto DBF failu, izmantojot Xbase++ failu pārvaldības funkcijas.
  • Palaidiet iebūvēto diagnostikuostic un labošanas rutīnas, kas var novērst bojātus indeksus un datu ievades kļūdas, kuras citi rīki nevar apstrādāt.

Izmantojiet xBase++, lai atvērtu un labotu bojātus failus DBF fails.

6. 4. metode: manuāla labošana ar teksta/heksadecimālkodeņu redaktoriem

Ja iepriekš minētās metodes neizdodas, manuāla pārbaude, izmantojot teksta vai heksadecimālos redaktorus, ļauj pārbaudīt neapstrādāta faila saturu, kopēt neskartus datus un rekonstruēt darbojošos datubāzi. Šī metode prasa rūpību un pamatzināšanas par DBF failu struktūra.

6.1 DBF Pamatstruktūras pārskats

A DBF fails sastāv no četrām secīgām sadaļām:

  • Faila galvene (32 baiti)Pirmais baits identificē DBF versija (piemēram, 0x03 dBASE III bez piezīmjdatora, 0x30 (Visual FoxPro). 1.–3. baiti saglabā pēdējās atjaunināšanas datumu (GG/MM/DD). 4.–7. baiti saglabā kopējo ierakstu skaitu kā 32 bitu veselu skaitli. 8.–9. baiti saglabā galvenes lielumu baitos, bet 10.–11. baiti saglabā fiksēto ieraksta lielumu baitos.
  • Lauka deskriptora masīvs: 32 baitu ierakstu secība, pa vienam katrā laukā, tūlīt aiz galvenes. Katrā ierakstā tiek saglabāts lauka nosaukums (0.–10. baiti, ar nulles papildinājumu), lauka tips (11. baits: C=rakstzīme, N=skaitlis, D=datums, L=loģisks, M=atzīme), lauka garums (16. baits) un decimālskaitļu skaitlis (17. baits). Masīvu noslēdz 0x0D baits.
  • Datu ierakstiFiksēta garuma ieraksti, katrs tieši tik plats, cik galvenē saglabātais ieraksta lielums. Katra ieraksta pirmais baits ir dzēšanas karodziņš (0x20 = aktīvs ieraksts, 0x2A = dzēsts ieraksts).
  • EOF marķieris: Viens baits (0x1A), kas norāda faila beigas.

6.2 Izmantojiet teksta redaktorus, lai iegūtu lasāmus datus

Jo DBF ir binārs formāts, teksta redaktoriem vajadzētu NAV var izmantot faila tiešai rediģēšanai. Tomēr tie var parādīt lasāmas daļas — lauku nosaukumus un rakstzīmju datu ierakstus —, ko var izmantot, lai kopētu un rekonstruētu jaunu datubāzi.

Zemāk ir daži populāri teksta redaktori, ko var izmantot:

  • Notepad++ (Windows)Atveriet bojāto DBF fails programmā Notepad++. Lauku nosaukumi no lauka deskriptora masīva un rakstzīmju lauku vērtības no datu ierakstiem būs redzamas kā lasāms ASCII teksts, izņemot bināro saturu. Identificējiet un pierakstiet lauku nosaukumus, tipus un visas atgūstamās datu rindas.
  • Vim (Linux): Atveriet DBF failu ar vim -b yourfile.dbf lai pārietu binārajā režīmā. Izmantojiet / lai meklētu zināmus lauku nosaukumus vai datu virknes. Vim meklēšanas un aizstāšanas funkciju var izmantot arī, lai atrastu visus konsekventi nepareizas vērtības gadījumus visos ierakstos.

Kad esat identificējis lasāmus lauku deskriptorus un datu ierakstus, izmantojiet šo informāciju, lai atjaunotu tabulas struktūru programmā dBASE vai Visual FoxPro un manuāli atkārtoti ievadītu vai ielīmētu saglabātos ierakstus jaunajā failā. Nemēģiniet labot sākotnējo bināro failu no teksta redaktora — tas var sabojāt jūsu datus.ost noteikti to vēl vairāk sabojās.

6.3 Datu manuāla labošana vai rekonstrukcija, izmantojot heksadecimālkodu redaktoru

Heksadimensiju redaktors ir profesionālāks rīks, kas var nodrošināt piekļuvi baitu līmenī. DBF failu, kas nodrošina gan tiešus labojumus, gan uzticamu datu ieguvi.

6.3.1 Bieži sastopamie heksadecimālkodu redaktori

Šādi heksadecimālie redaktori ir piemēroti DBF remonta darbi:

  • VFP iebūvētais HexEditPieejams Visual FoxPro ietvaros. Komandu logā izpildiet DO HOME() + "Tools\HexEdit\HexEdit.app", pēc tam atlasiet DBF failu, kad tas tiek prasīts. Atsevišķa instalēšana nav nepieciešama.
  • WinHexProfesionāla līmeņa heksadecimālkodu redaktors operētājsistēmai Windows ar veidņu atbalstu, kas ļauj kartēt DBF galvenes lauki vizuāli.
  • UltraEdit: Starpplatformu redaktors ar heksadecimālkodeņu režīmu, kas apstrādā lielus failus un atbalsta kolonnu atlasi, kas ir noderīgs datu ierakstu bloku kopēšanai.

6.3.2 Manuāla analīze un labošana

Atveriet faila dublējumkopiju DBF failu heksadecimālajā redaktorā un veiciet šādu pārbaudes secību:

  • Pārbaudiet galvenes pirmos dažus baitus: pārbaudiet faila tipu (baits 0), pēdējās atjaunināšanas datumu (baiti 1–3), ierakstu skaitu (baiti 4–7), galvenes lielumu (baiti 8–9) un ieraksta lielumu (baiti 10–11). Salīdziniet ierakstu skaitu un ieraksta lielumu ar faktisko faila lielumu, lai atklātu galvenes bojājumus.
  • Pārbaudiet lauka deskriptora masīvu starpārbaude 32. baitā: apstipriniet, ka katrs 32 baitu ieraksts satur derīgu lauka nosaukumu, atpazītu tipa rakstzīmi, lauka garumu, kas nav nulle, un ka masīvs beidzas ar 0x0D baits.
  • Pārbaudiet datu ierakstustarveicot nobīdi, ko norāda galvenes izmērs: pārbaudiet, vai katrs ieraksts sākas ar dzēšanas karodziņu (0x20 or 0x2A) un ka ieraksta garums atbilst vērtībai galvenē.
  • Nosakiet, vai bojājums ir galvenē, lauku deskriptoru masīvā vai datu ierakstos. Tas nosaka, kuru rekonstrukcijas stratēģiju lietot.
  • Nelielu bojājumu, piemēram, nepareiza ierakstu skaita vai viena bojāta baita, gadījumā labojiet vērtību tieši heksadecimālkodejā redaktorā un saglabājiet failu.

Zemāk ir paraugs DBF fails atvērts heksadecimālkodejā redaktorā:

Izmantojiet heksadecimālo redaktoru, lai atvērtu, analizētu un labotu bināros datus bojātajā failā. DBF fails.

6.3.3 Manuāli rekonstruēt DBF fileja

Ja bojājums ir pārāk nopietns, lai to novērstu uz vietas, rekonstruējiet datubāzi, pārsūtot neskartus datu ierakstus uz jaunizveidotu failu:

  1. Atveriet dBASE vai Visual FoxPro un izveidojiet jaunu DBF fails.
  2. Izveidojiet laukus ar tādiem pašiem nosaukumiem un datu tipiem kā sākotnējā datubāzē, izmantojot heksadecimālās pārbaudes laikā identificētos lauku deskriptorus vai citus avotus, piemēram, datu bāzes administratoru, kurš izveidoja sākotnējo datubāzi.
  3. Heksa redaktorā atlasiet un kopējiet neskartos datu ierakstus no vecā DBF fails.
  4. Ielīmējiet kopētos datu ierakstus atbilstošajā jaunā ieraksta nobīdē. DBF fails.
  5. Manuāli izlabojiet visus ielīmētajos datu ierakstos redzamos bojājumus, piemēram, nepareizus dzēšanas karodziņus vai saīsinātas lauku vērtības.
  6. Manuāli atkārtoti ievadiet visus datu ierakstus, kurus nevarēja atgūt no heksadecimālkoda kopijas.
  7. Saglabājiet jauno DBF failu un atveriet to programmā Visual FoxPro vai dBASE, lai pārbaudītu, vai visi ieraksti tiek ielādēti pareizi.

7. 5. metode: labošana ar programmēšanas valodām

Programmēšanas bibliotēkararsniedz jums precīzu kontroli pār to, kā korumpēts DBF fails tiek nolasīts, ļaujot jums eleganti apstrādāt izņēmumus un eksportēt atgūstamos datus uz jaunu un tīru datubāzi.

7.1 Python (pandas / dbflasīt)

Python's pandas un dbfread librarvar izlasīt daudzus daļēji bojātus DBF faili, kurus vietējās datubāzes lietojumprogrammas atsakās atvērt:

  • Instalējiet nepieciešamo bibliotēkurar: pip install pandas dbfread simpledbf.
  • Izlasiet bojāto DBF failu, izmantojot dbfread: from dbfread import DBF; table = DBF('yourfile.dbf', ignore_missing_memofile=True). ignore_missing_memofile karodziņš ļauj ielādēt tabulu pat tad, ja memo faila nav.
  • Ielādējiet ierakstus DataFrame: import pandas as pd; df = pd.DataFrame(iter(table)).pandas eleganti apstrādā nelielas datu tipu neatbilstības un ļauj pārbaudīt un iztīrīt datus.
  • Veiciet datu tīrīšanu pēc nepieciešamības: aizpildiet trūkstošās vērtības ar df.fillna(), izlabojiet nepareizus datu tipus ar df.astype()un noņemiet dublētās rindas ar df.drop_duplicates().
  • Eksportējiet iztīrīto DataFrame uz CSV failu ar df.to_csv('recovered.csv', index=False), pēc tam atjaunojiet DBF no tīriem datiem.

7.2 Java (UCanAccess)

UCanAccess JDBC draiveris atbalsta DBF failus un ļauj programmatiski labot, izmantojot standarta Java I/O:

  • Pievienojiet UCanAccess bibliotēkurary uz sava projekta atkarībām, izmantojot Maven vai tieši lejupielādējot JAR failu.
  • Atveriet JDBC savienojumu ar mapi, kurā atrodas DBF failu: Connection conn = DriverManager.getConnection("jdbc:ucanaccess:///path/to/folder");
  • Izpildīt SELECT * vaicājums try-catch blokā. Catch SQLException izņēmumi atsevišķām rindām, lai izlaistu nelasāmus ierakstus, nevis pārtrauktu visu lasīšanu.
  • Ierakstiet atgūtās rindas jaunā mapē DBF vai eksportējiet tos CSV formātā atkārtotai importēšanai.

8. 6. metode: Izmantojiet profesionāli DBF Remonta rīki

Ja manuālās metodes ir pārāk sarežģītas, laikietilpīgas vai bojājumi ir pārāk lieli, ir nepieciešams speciāls DBF labošanas rīks piedāvā ātrāko ceļu datu atgūšanai.

8.1 Lietošana DataNumen DBF Repair labot korumpētu DBF faili

DataNumen DBF Repair ir profesionāls rīks, kas īpaši izstrādāts datu atgūšanai no bojātiem un nepieejamiem failiem. DBF faili.

  1. Start DataNumen DBF Repair
  2. Izvēlieties bojāto DBF labojams fails.
  3. Iestatiet izvades faila nosaukumu.
  4. Noklikšķiniet Start RemontsInstruments darbosies.tart, lai skenētu un labotu failu.
  5. Pēc labošanas procesa atveriet laboto failu programmā dBase vai FoxPro.

lietošana DataNumen DBF Repair labot korumpētos DBF fails.

8.2 Lietošana tiešsaistē DBF Remonta rīki

Tiešsaistes remonta pakalpojumi ir ērti vienreizējiem remontiem. Izmantojiet tos tikai ar failiem, kas nesatur sensitīvus vai konfidenciālus datus.

  • Atgūšanas rīku komplekts DBF Online: pārlūkprogrammā balstīts pakalpojums, kas atbalsta dBASE un FoxPro DBF formātos.
  • Tiešsaistes fails.Remonts: Vairāku formātu tiešsaistes remonta pakalpojums, kas ietver DBF Atbalstīt.

Bieži sastopamas darbības tiešsaistē DBF remonta instrumenti:

  1. Dodieties uz tiešsaistes remonta rīka tīmekļa vietni.
  2. Noklikšķiniet Augšupielādēt failu or Pārlūkot un izvēlieties korumpēto .dbf fails.
  3. Noklikšķiniet Remonts or Analizēt lai sāktu remonta procesu.
  4. Kad tiek prasīts apstiprināt, ka dati ir lietojami, priekšskatiet atgūtos ierakstus.
  5. Noklikšķiniet Download lai lejupielādētu laboto failu savā datorā.

9. Novēršana DBF Failu korupcija

Most DBF korupciju var novērst. Šo darbību ievērošana ievērojami samazina datu zaudēšanas risku:

  • Pareiza izslēgšanas praksePirms datora izslēgšanas vienmēr aizveriet datubāzes lietojumprogrammu. Nekad nepārtrauciet lietojumprogrammu ar Task Manager kamēr fails ir atvērts.
  • Izvairieties no piekļuves failiem tīklāNeatvērt DBF failus tieši no tīkla koplietojuma, ja vien lietojumprogramma nepārprotami neatbalsta tīkla ierakstu bloķēšanu. Nekad neļaujiet vairākiem lietotājiem rakstīt vienā un tajā pašā DBF vienlaikus vīlēt bez fiksācijas mehānisma.
  • Regulāri dublējumiIeplānojiet ikdienas dublējumus un glabājiet kopijas atsevišķā fiziskā vietā vai mākoņkrātuvē. Periodiski eksportējiet kritiskos datus CSV vai citā modernā formātā kā papildu drošības tīklu.
  • Indeksa uzturēšana: Skrien REINDEX periodiski — īpaši pēc jebkādas anomālas izslēgšanas —, lai indeksa faili atbilstu datu ierakstiem un novērstu ar indeksu saistītu bojājumu kļūdu saasināšanos.

10. Bieži uzdotie jautājumi

J: Vai pilnībā bojāts var DBF failu var atgūt?

A: Daļēja atveseļošanās ir gandrīzost vienmēr ir iespējams. Pilnīga atkopšana ir atkarīga no tā, vai faila datu ierakstu apgabals joprojām ir neskarts. Galvenes un indeksa bojājumus parasti var labot; pārrakstītus datu ierakstus nevar.

J: Ko nozīmē kļūda “Nav tabula” programmā Visual FoxPro?

A: Faila galvenes pirmais baits nav atpazīts. DBF Versijas marķieris. Visual FoxPro stingri pārbauda šo baitu atvēršanas brīdī, tāpēc pat viena baita galvenes bojājums rada šo kļūdu.

J: Vai ir droši izmantot bezmaksas tiešsaistes rīkus, lai labotu DBF failu?

A: Tikai tad, ja failā nav sensitīvu datu. Pirms augšupielādes vienmēr izlasiet rīka konfidencialitātes politiku un, strādājot ar konfidenciāliem ierakstiem, dodiet priekšroku datora rīkam.

J: Vai PACK neatgriezeniski izdzēsīs manus ierakstus?

A: Jā. PACK neatgriezeniski noņem visus ierakstus, kas atzīmēti dzēšanai, bez atcelšanas opcijas. Vienmēr palaidiet to rezerves kopijā, nekad oriģinālajā failā.

J: Vai Python var atgūt DBF fails bez komerciālas programmatūras?

A: Jā, datu līmeņa kļūdām. dbfread library ar ignore_missing_memofile karodziņš var nolasīt daudzus daļēji bojātus failus, kurus vietējās lietojumprogrammas atsakās atvērt, un pandas var iztīrīt un eksportēt atgūtos datus.

J: Kāda ir atšķirība starp PACK un REINDEX programmā FoxPro/dBASE?

A: PACK neatgriezeniski noņem dzēšanai atzīmētos ierakstus un saspiež datu failu. REINDEX atjauno indeksa failus no esošajiem datu ierakstiem, nemainot pašus datus. Tie risina dažādas problēmas un tos var palaist neatkarīgi.

J: Vai es varu atvērt DBF fails bez instalētas FoxPro vai dBASE?

A: Jā. LibreOffice Calc, DBF Var atvērt gan Commander, gan Xbase++ DBF failus bez nepieciešamības instalēt FoxPro vai dBASE.

J: Kāpēc mans DBF Fails ir atvērts LibreOffice, bet ne Visual FoxPro?

A: LibreOffice ir tolerantāka pret nelielām galvenes neatbilstībām. Visual FoxPro veic stingru galvenes validāciju un atsakās atvērt failus, kas neiztur nevienu pārbaudi. Ja fails tiek atvērts LibreOffice, eksportējiet datus CSV formātā un izveidojiet failu atkārtoti. DBF lai iegūtu tīru, ar FoxPro saderīgu failu.

J: Kāpēc pazūd indeksfaili (.cdx / .idx)?

A: Most Biežākie cēloņi ir nejauša dzēšana, neveiksmīga lietojumprogrammas instalēšana vai atinstalēšana, kuras rezultātā tika noņemti pavadošie faili, avārija indeksa atjaunošanas laikā vai failu kopēšana. .dbf failu uz jaunu atrašanās vietu, nekopējot saistītos indeksa failus.

J: Vai var DBF Vai failu ar piezīmju laukiem (.fpt / .dbt) joprojām var salabot?

A: Jā, bet tam ir nepieciešamas papildu darbības. Izmantojiet PACK MEMO FoxPro programmā, lai saspiestu un labotu piezīmju failu. Ja pats piezīmju fails ir bojāts, datus, kas nav piezīmju lauki, parasti joprojām var atgūt, atverot tabulu, no kuras galvenes ir noņemta piezīmju faila atsauce.

J: Kā izlemt, kuru remonta metodi izmēģināt vispirms?

A: Start izmantojot vismazāk invazīvo pieeju un eskalējot tikai tad, ja tā neizdodas: (1) pārbaudiet, vai trūkst saistīto failu, (2) palaidiet REINDEX, (3) atvērt alternatīvā lietojumprogrammā, piemēram, LibreOffice Calc, (4) palaist PACK un PACK MEMO, (5) manuālai labošanai izmantojiet heksadecimālo redaktoru, (6) izmantojiet profesionālu labošanas rīku, piemēram, DataNumen DBF Repair.

J: Vai korumpēts var DBF Vai fails ir sabojājis citas tabulas tajā pašā datubāzē?

A: Korumpēts .dbf tabula tieši nebojā radniecīgās tabulas. Tomēr bojāta .dbc Visual FoxPro datubāzes konteinera fails var neļaut atvērt visas ar šo konteineru saistītās tabulas, faktiski padarot visu datubāzi nepieejamu, līdz konteiners tiek salabots vai tabulas tiek no tā atdalītas.

11. secinājums

Korumpēta remonta DBF fails ir rarpilnīgi bezcerīgi. Starar vismazāk iejaukšanās darbībām: pārbaudiet, vai ir pieejami saistītie indeksa un piezīmju faili, palaidiet REINDEX lai atjaunotu bojātos indeksus, un mēģiniet atvērt failu tolerantā alternatīvā lietojumprogrammā, piemēram, LibreOffice Calc vai DBF Komandieris. Ja šīs metodes neatgūst datus, vērsieties pie PACK un PACK MEMO komandas, pēc tam manuālu heksadecimālā līmeņa pārbaudi un rekonstrukciju vai programmatisku atkopšanu, izmantojot Python vai Java. Katrā solī strādājiet tikai ar rezerves kopiju — nekad ar oriģinālo failu.

Smagas vai sarežģītas korupcijas gadījumā, kad manuālās metodes ir izsmeltas, profesionālis DBF remonta rīks nodrošina most uzticama automatizēta atkopšana. Kad dati ir atgūti, ieviesiet 9. sadaļā aprakstītās preventīvās darbības — regulāras dublējumkopijas, atbilstošas ​​izslēgšanas procedūras un periodiskas REINDEX palaišanas —, lai izvairītos no šādas pieredzes atkārtošanās.


par autoru

Juaņs Šens ir vecākais datubāzes administrators (DBA) ar vairāk nekā 10 gadu pieredzi SQL Server vides un uzņēmumu datubāzu pārvaldību. Viņš ir veiksmīgi atrisinājis simtiem datubāzu atkopšanas scenāriju finanšu pakalpojumu, veselības aprūpes un ražošanas organizācijās.

Juaņa specializējas SQL Server un DBF datubāzu atjaunošana, augstas pieejamības risinājumi un veiktspējas optimizācija. Viņa plašā praktiskā pieredze ietver vairāku terabaitu datubāzu pārvaldību, Always On pieejamības grupu ieviešanu un automatizētu dublēšanas un atkopšanas stratēģiju izstrādi kritiski svarīgām biznesa sistēmām.

Izmantojot savu tehnisko pieredzi un praktisko pieeju, Juans koncentrējas uz visaptverošu rokasgrāmatu izveidi, kas palīdz datubāzu administratoriem un IT speciālistiem risināt sarežģītus jautājumus SQL Server efektīvi izaicina. Viņš seko līdzi jaunākajām tendencēm SQL Server laidieniem un Microsoft attīstītajām datubāzu tehnoloģijām, regulāri testējot atkopšanas scenārijus, lai nodrošinātu, ka viņa ieteikumi atspoguļo labāko praksi reālajā pasaulē.

Ir jautājumi par SQL Server un DBF Datubāzes atkopšana vai nepieciešama papildu palīdzība datubāzes problēmu novēršanā? Yuan laipni aicina atsauksmes un ieteikumi lai uzlabotu šos tehniskos resursus.

Kopīgot tūlīt: