"tbl_name.frm" tabelldefinisjon (tabell) fil "tbl_name. MYD "Datafil" tbl_name. MYI"-indeksfil Hver av disse tre filtypene kan lide av ulike former for korrupsjon, men problemet oppstår oftest i datafiler og indeksfiler. myisamchk lager en ". MYD" (data)-filen fungerer, fungerer den ved å fjerne den gamle ". MYD-filen og gi den nye filen nytt navn til det opprinnelige filnavnet for å avslutte reparasjonsfasen. Hvis du bruker --quick, lager ikke myisamchk en midlertidig ". MYD"-fil, bare antar". MYD"-filen er korrekt og oppretter kun en ny indeksfil, uten å røre". MYD"-fil, som er trygg fordi myisamchk automatisk oppdager". MYD"-filen er korrupt og i dette tilfellet, forlat reparasjonen. Du kan også gi myisamchk to – raske alternativer. I dette tilfellet gir ikke myisamchk opp noen feil (som gjentakende taster), men prøver i stedet å endre ". MYD"-filen for å løse dem. Vanligvis er det bare nyttig hvis du implementerer en normal løsning på for lite ledig diskplass, ved å bruke de to – hurtigalternativene. I dette tilfellet bør du i det minste lage en backup før du kjører myisamchk. 1. Hvordan sjekke feilene i tabellen For å sjekke en tabell, bruk følgende kommando: Myisamchk tbl_name Dette fanger opp 99,99 % av alle feil. Det den ikke kan finne ut, er at korrupsjon kun er involvert i datafiler (noe som er uvanlig). Hvis du vil sjekke en tabell, bør du vanligvis kjøre myisamchk uten valgmuligheten, eller bruke enten -s eller --stille alternativene. myisamchk -e tbl_name Den utfører en fullstendig grundig datasjekk (-e betyr "utvidet sjekk"). Den gjør en lesekontroll per tast på hver linje for å bekrefte at de peker på riktig linje. Dette kan ta lang tid på et stort bord med mange nøkler. Myisamchk stopper vanligvis når den finner den første feilen. Hvis du vil ha mer informasjon, kan du legge til --verbose(-v)-alternativet. Dette gjør at myisamchk fortsetter til maksimalt 20 feil. I generell bruk er en enkel myisamchk (uten andre argumenter enn tabellnavnet) tilstrekkelig. myisamchk -e -i tbl_name Som den forrige kommandoen, men -i-alternativet forteller myisamchk å skrive ut noen statistikker også. 2. Hvordan reparere bordet Symptomet på en korrupt tabell er vanligvis et uventet spørringsbrudd, og du kan for eksempel se disse feilene: "tbl_name.frm" er låst og kan ikke endres. Klarer ikke å finne filen "tbl_name. MYI"(Errkode :### )。 Få feil ### fra tabellprosessoren (i dette tilfellet er feil 135 et unntak). Uventet filslutt. Arkivfiler ble ødelagt. I slike tilfeller må du fikse bordet. Myisamchk oppdager og fikser vanligvis det meste som går galt. Reparasjonsprosessen består av opptil 4 trinn, beskrevet nedenfor. Før du starter, bør du CD-e tillatelser til databasekatalogen og sjekklistefiler for å sikre at de er lesbare for Unix-brukere som kjører mysqld (og for deg, siden du trenger tilgang til filen du sjekker). Hvis den nekter å endre filen, må de også være skrivbare for deg. Fase 1: Sjekk tabellen din Løp myisamchk *. MYI eller (myisamchk -e *. MYI, hvis du har mer tid). Bruk -s (stillhet) for å deaktivere unødvendig informasjon.
Filformatet som MySQL bruker for å lagre data er grundig testet, men det finnes alltid ytre forhold som kan føre til at databasetabeller blir ødelagt: MySQLD-prosessen blir drept i én skriving; En uventet nedstengning av datamaskinen (for eksempel hvis datamaskinen mister strømmen); En maskinvarefeil. Dette kapittelet beskriver hvordan man kan sjekke for og håndtere datakorrupsjon i en MySQL-database. Hvis bordet ditt er mye skadet, bør du prøve å finne ut hvorfor! Se G.1 Feilsøking av en MySQL-server. Når man utfører krasjgjenoppretting, er det viktig å forstå at hver tabell i en database tbl_name tilsvarer de 3 filene i databasekatalogen |