Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 12936|Svar: 0

[Kilde] Lære dig, hvordan du bruger Myisamchk til crash-gendannelse af MySQL

[Kopier link]
Opslået på 15/11/2017 13.23.05 | | |

"tbl_name.frm" tabeldefinition (tabel) fil "tbl_name. MYD "Data File "tbl_name. MYI"-indeksfil
Hver af disse 3 filtyper kan lide af forskellige former for korruption, men problemet opstår oftest i datafiler og indeksfiler.
myisamchk skaber en ". MYD" (data)filen virker, den virker ved at fjerne den gamle ". MYD-fil og omdøbe den nye fil til det oprindelige filnavn for at afslutte reparationsfasen. Hvis du bruger --quick, skaber myisamchk ikke en midlertidig ". MYD"-fil, antager bare". MYD"-filen er korrekt og opretter kun en ny indeksfil uden at røre". MYD"-fil, hvilket er sikkert, fordi myisamchk automatisk opdager". MYD"-filen er korrupt, og i dette tilfælde opgiv reparationen. Du kan også give myisamchk to – hurtige muligheder. I dette tilfælde giver myisamchk ikke op på nogle fejl (som gentagne taster), men forsøger i stedet at ændre ". MYD"-filen for at løse dem. Normalt er det kun nyttigt, hvis du implementerer en normal løsning på for lidt ledig diskplads ved at bruge de to hurtige muligheder. I dette tilfælde bør du i det mindste lave en backup, før du kører myisamchk.
1. Hvordan man tjekker fejlene i tabellen
For at tjekke en tabel skal du bruge følgende kommando:
Myisamchk tbl_name
Dette fanger 99,99% af alle fejl. Hvad den ikke kan finde ud af, er, at korruption kun er involveret i datafiler (hvilket er usædvanligt). Hvis du vil tjekke en tabel, bør du som regel køre myisamchk uden muligheden eller bruge enten -s eller --stille indstillingerne.
myisamchk -e tbl_name
Den laver en fuldstændig grundig datakontrol (-e betyder "udvidet kontrol"). Den laver en læsekontrol per tast på hver linje for at bekræfte, at de peger på den rigtige linje. Det kan tage lang tid på et stort bord med mange nøgler. Myisamchk stopper som regel, når den finder den første fejl. Hvis du vil have mere information, kan du tilføje --verbose(-v)-muligheden. Dette får myisamchk til at fortsætte indtil maksimalt 20 fejl. I almindelig brug er en simpel myisamchk (uden andre argumenter end tabelnavnet) tilstrækkelig.
myisamchk -e -i tbl_name
Ligesom den forrige kommando, men -i-muligheden fortæller myisamchk også at printe nogle statistikker.
2. Hvordan man reparerer bordet
Symptomet på en korrupt tabel er som regel et uventet forespørgselsbrud, og du kan for eksempel se disse fejl:
"tbl_name.frm" er låst og kan ikke ændres.
Kan ikke finde filen "tbl_name. MYI"(Errcode :### )。
Få fejl ### fra tabelprocessoren (i dette tilfælde er fejl 135 en undtagelse).
Uventet fil slut.
Arkivfiler blev ødelagt.
I disse tilfælde skal du reparere bordet. Myisamchk opdager og retter som regel de fleste fejl.
Reparationsprocessen består af op til 4 faser, beskrevet nedenfor. Før du starter, bør du cd-e tilladelser til databasemappen og tjekke tjekfilerne for at sikre, at de er læsbare for Unix-brugere, der kører mysqld (og for dig, da du har brug for adgang til den fil, du tjekker). Hvis den nægter at ændre filen, skal de også kunne skrives til dig.
Fase 1: Tjek dit bord
Løb
myisamchk *. MYI
eller (myisamchk -e *. MYI, hvis du har mere tid). Brug -s (stilhed) funktionen til at deaktivere unødvendig information.

Filformatet, som MySQL bruger til at gemme data, er blevet grundigt testet, men der er altid eksterne betingelser, der kan forårsage korruption i databasetabeller:
MySQLD-processen dræbes i én skrivning; En uventet nedlukning af computeren (for eksempel hvis computeren mister strøm); En hardwarefejl.
Dette kapitel beskriver, hvordan man tjekker for og håndterer datakorruption i en MySQL-database. Hvis dit bord er meget beskadiget, bør du prøve at finde ud af hvorfor! Se G.1 Debugging af en MySQL-server.
Når man udfører crash-gendannelse, er det vigtigt at forstå, at hver tabel i en database tbl_name svarer til de 3 filer i databasemappen




Tidligere:mysql #1062 – Duplikat post '1' for nøglen 'PRIMARY'
Næste:MySQL-visninger af SQL-sætninger, der udføres i realtid
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com