Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 12936|Răspunde: 0

[Sursă] Te învăț cum să folosești Myisamchk pentru recuperarea după crash MySQL

[Copiază linkul]
Postat pe 15.11.2017 13:23:05 | | |

"tbl_name.frm" tabel definiție (tabel) fișier "tbl_name. MYD "Fișier de date "tbl_name. Fișierul index MYI"
Fiecare dintre aceste 3 tipuri de fișiere poate suferi de forme diferite de corupere, dar problema apare cel mai frecvent în fișierele de date și fișierele index.
myisamchk creează un ". MYD" (date) funcționează prin eliminarea vechiului fișier ". MYD și redenumirea fișierului nou în numele original pentru a încheia faza de reparație. Dacă folosești --quick, myisamchk nu creează o "temporară". MYD", doar presupun. "MYD" este corect și creează doar un nou fișier index, fără a fi atins". MYD", care este sigur deoarece myisamchk detectează automat". MYD" este corupt și, în acest caz, abandonează reparația. Poți să-i dai și lui myisamchk două opțiuni rapide. În acest caz, myisamchk nu renunță la unele erori (cum ar fi repetarea tastelor), ci încearcă să modifice ". MYD" pentru a le rezolva. De obicei, este utilă doar dacă implementezi o soluție normală pe prea puțin spațiu liber pe disc, folosind cele două opțiuni rapide. În acest caz, ar trebui măcar să faci un backup înainte de a rula myisamchk.
1. Cum să verifici erorile din tabel
Pentru a verifica un tabel, folosește următoarea comandă:
A mea tbl_name
Aceasta detectează 99,99% din toate erorile. Ce nu poate afla este că corupția este implicată doar în fișierele de date (ceea ce este rar). Dacă vrei să verifici un tabel, de obicei ar trebui să rulezi myisamchk fără opțiunea sau să folosești oricare dintre opțiunile -s sau --silent.
myisamchk -e tbl_name
Efectuează o verificare complet amănunțită a datelor (-e înseamnă "verificare extinsă"). Face o verificare de citire pe fiecare cheie pentru a confirma că indică corect linia. Acest lucru poate dura mult timp pe o masă mare cu multe chei. myisamchk se oprește de obicei după ce găsește prima eroare. Dacă vrei mai multe informații, poți adăuga opțiunea --verbose(-v). Acest lucru face ca myisamchk să continue până la maximum 20 de erori. În uz general, un myisamchk simplu (fără alte argumente decât numele tabelului) este suficient.
myisamchk -e -i tbl_name
Ca și comanda anterioară, dar opțiunea -i îi spune lui myisamchk să afișeze și niște statistici.
2. Cum să repari masa
Simptomul unui tabel corupt este de obicei o întrerupere neașteptată a interogării, iar poți vedea, de exemplu, aceste erori:
"tbl_name.frm" este blocat și nu poate fi modificat.
Nu am găsit fișierul "tbl_name. MYI"(Errcode :### )。
Primește eroarea ### de la procesorul de tabel (în acest caz, eroarea 135 este o excepție).
Sfârșit neașteptat al fișierului.
Dosarele de înregistrare au fost distruse.
În aceste cazuri, trebuie să repari masa. myisamchk detectează și repară de obicei majoritatea problemelor.
Procesul de reparație constă în până la 4 etape, descrise mai jos. Înainte să începi, ar trebui să trimiți permisiuni către directorul bazei de date și fișierele de verificare pentru a te asigura că sunt lizibile de utilizatorii Unix care rulează mysqld (și de tine, deoarece ai nevoie de acces la fișierul pe care îl verifici). Dacă refuză să modifice fișierul, acestea trebuie să poată fi scrise și pentru tine.
Faza 1: Verifică tabelul
Fugi
myisamchk *. MYI
sau (myisamchk -e *. Să știu, dacă ai mai mult timp). Folosește opțiunea -s (tăcere) pentru a dezactiva informațiile inutile.

Formatul de fișier folosit de MySQL pentru stocarea datelor a fost testat extensiv, dar există întotdeauna condiții externe care pot duce la coruptarea tabelelor bazei de date:
procesul mysqld este omorât într-o scriere; O oprire neașteptată a calculatorului (de exemplu, dacă calculatorul pierde alimentarea); O eroare hardware.
Acest capitol descrie cum să verifici și să gestionezi corupția datelor într-o bază de date MySQL. Dacă masa ta este foarte deteriorată, ar trebui să încerci să afli de ce! Vezi G.1 Depanarea unui server MySQL.
Atunci când se efectuează recuperarea în caz de blocare, este important să înțelegeți că fiecare tabel dintr-o bază de date corespunde tbl_name celor 3 fișiere din directorul bazei de date




Precedent:mysql #1062 – Intrare duplicată '1' pentru cheia 'PRIMARY'
Următor:MySQL vizualizează instrucțiunile SQL care sunt executate în timp real
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com