Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 12936|Atsakyti: 0

[Šaltinis] Išmokykite jus naudoti Myisamchk atkūrimui po gedimo MySQL

[Kopijuoti nuorodą]
Paskelbta 2017-11-15 13:23:05 | | |

"tbl_name.frm" lentelės apibrėžimo (lentelės) failas "tbl_name. MYD " Duomenų failas "tbl_name. MYI" rodyklės failas
Kiekvienas iš šių 3 failų tipų gali nukentėti nuo skirtingų korupcijos formų, tačiau problema dažniausiai kyla duomenų failuose ir indekso failuose.
myisamchk sukuria ". MYD" (duomenų) failą, kad veiktų, jis veikia pašalindamas seną ". MYD failą ir pervardykite naują failą į pradinį failo pavadinimą, kad užbaigtumėte taisymo etapą. Jei naudojate --quick, myisamchk nesukuria laikino ". MYD" failą, tik darant prielaidą". MYD" failas yra teisingas ir sukuria tik naują indekso failą, neliečiant". MYD", kuris yra saugus, nes myisamchk automatiškai aptinka". MYD" failas yra sugadintas ir tokiu atveju atsisakykite taisymo. Taip pat galite duoti myisamchk du greitus variantus. Tokiu atveju myisamchk neatsisako kai kurių klaidų (pvz., kartoti klavišus), o bando modifikuoti ". MYD" failą, kad juos išspręstumėte. Paprastai tai naudinga tik tuo atveju, jei įdiegiate įprastą pataisymą per mažai laisvos vietos diske, naudodami dvi greitąsias parinktis. Tokiu atveju prieš paleisdami myisamchk turėtumėte bent jau pasidaryti atsarginę kopiją.
1. Kaip patikrinti lentelės klaidas
Norėdami patikrinti lentelę, naudokite šią komandą:
myisamchk tbl_name
Tai užfiksuoja 99,99% visų klaidų. Ko ji negali sužinoti, yra tai, kad korupcija yra susijusi tik su duomenų failais (o tai yra neįprasta). Jei norite patikrinti lentelę, paprastai turėtumėte paleisti myisamchk be parinkties arba naudoti vieną iš -s arba --silent parinkčių.
myisamchk -e tbl_name
Jis atlieka visiškai išsamų duomenų patikrinimą (-e reiškia "išplėstinis patikrinimas"). Jis atlieka kiekvienos eilutės skaitymo patikrinimą, kad patvirtintų, kad jie nurodo teisingą eilutę. Tai gali užtrukti ilgai ant didelio stalo su daugybe raktų. Myisamchk paprastai sustoja, kai randa pirmąją klaidą. Jei norite daugiau informacijos, galite pridėti parinktį --verbose(-v). Tai daro myisamchk tęsti iki daugiausiai 20 klaidų. Apskritai pakanka paprasto myisamchk (be jokių kitų argumentų, išskyrus lentelės pavadinimą).
myisamchk -e -i tbl_name
Kaip ir ankstesnėje komandoje, bet parinktis -i nurodo myisamchk taip pat atsispausdinti kai kuriuos statistinius duomenis.
2. Kaip pataisyti stalą
Sugadintos lentelės požymis paprastai yra netikėtas užklausos lūžis ir galite pamatyti, pavyzdžiui, šias klaidas:
"tbl_name.frm" yra užrakintas ir negali būti pakeistas.
Nepavyko rasti failo "tbl_name. MYI"(Klaidingas kodas: ### )。
Gaukite klaidą ### iš lentelės procesoriaus (šiuo atveju 135 klaida yra išimtis).
Netikėta failo pabaiga.
Įrašų bylos buvo sunaikintos.
Tokiais atvejais turite sutvarkyti lentelę. Myisamchk paprastai aptinka ir ištaiso daugumą dalykų, kurie negerai.
Remonto procesas susideda iš 4 etapų, aprašytų žemiau. Prieš pradėdami, turėtumėte cd teises į duomenų bazės katalogą ir kontrolinio sąrašo failus, kad įsitikintumėte, jog juos gali skaityti Unix vartotojai, naudojantys mysqld (ir jūs, nes jums reikia prieigos prie tikrinamo failo). Jei ji atsisako keisti failą, jie taip pat turi būti rašomi jums.
1 etapas: patikrinkite lentelę
Bėk
Myisamchk *. MYI
arba (myisamchk -e *. MYI, jei turite daugiau laiko). Naudokite parinktį -s (tyla), kad išjungtumėte nereikalingą informaciją.

Failo formatas, kurį MySQL naudoja duomenims saugoti, buvo išsamiai išbandytas, tačiau visada yra išorinių sąlygų, dėl kurių duomenų bazės lentelės gali būti sugadintos:
mysqld procesas nužudomas vienu rašymu; Netikėtas kompiuterio išjungimas (pvz., jei kompiuteris praranda maitinimą); Aparatūros klaida.
Šiame skyriuje aprašoma, kaip patikrinti ir tvarkyti duomenis MySQL duomenų bazėje. Jei jūsų stalas yra labai pažeistas, turėtumėte pabandyti išsiaiškinti, kodėl! Žr. G.1 MySQL serverio derinimas.
Atliekant atkūrimą po gedimo, svarbu suprasti, kad kiekviena duomenų bazės tbl_name lentelė atitinka 3 failus duomenų bazės kataloge




Ankstesnis:mysql #1062 – Pasikartojantis įrašas "1" raktui "PRIMARY"
Kitą:MySQL peržiūri SQL sakinius, kurie vykdomi realiuoju laiku
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com