Vissza a bloghoz

Gyors megoldások a sérült táblák javítására MySQL-ben: Útmutató

Gyors megoldások a sérült táblák javítására MySQL-ben: Útmutató

MySQL az egyik legnépszerűbb nyílt forráskódú RDBMS (relációs adatbázis-kezelő rendszer). Szerves részét képezi a gyorsan növekvő LAMP Stack szoftvercsomagnak, és lenyűgöző rajongótábort szerzett a fejlesztők és a rendszergazdák körében. Összehasonlítva a nem relációs adatbázisokkal, az SQL kiváló funkciókat biztosít az adatok hatékony rendszerezéséhez, tárolásához és kezeléséhez. Az SQL adatbázis megkülönböztető táblaelrendezési funkciói és kiemelkedő képességei miatt preferált választás a szervezet minden szintjén, legyen az nagy vagy kicsi.

A MySQL táblák ritka esetekben megsérülhetnek, ami azt jelzi, hogy ilyen hiba történt, és a bennük tárolt adatok olvashatatlanok. Amikor megpróbál adatokat olvasni egy sérült táblából, a szerver összeomlik, és hibát vagy hibalistát dob.

A MySQL táblák sérülésének lehetséges okai

Az alábbiakban bemutatjuk a sérült táblák legjellemzőbb okait:

  • A MySQL szolgáltatás összeomlik az újraindítás után.
  • A gép váratlanul leáll áramkimaradás miatt.
  • Hibás memória vagy hardverhiba.
  • Szoftverhibák az OS-ben vagy az SQL kódban.
  • A MySQL leáll írás közben.
  • A rendszer kikapcsol az SQL frissítése közben.

Mielőtt kijavítana egy feltételezhetően sérült táblát, készítsen biztonsági mentést az adatkönyvtáráról. Ez segít csökkenteni az adatvesztés valószínűségét. Ebben a rövid útmutatóban végigvezetjük a sérült MySQL táblák javításának hibaelhárítási lépésein.

Előfeltételek

Az útmutató követéséhez a következőkre lesz szüksége:

1. lépés: A MySQL szolgáltatás leállítása és adatmentés

Először állítsa le a MySQL szolgáltatást a systemctl paranccsal:

Az SQL szolgáltatás leállítása után a következő lépés az összes meglévő fájl biztonsági mentése egy új könyvtárba. Használja az Ubuntu alapértelmezett adatkönyvtárát, a /var/lib/mysql/ az összes rendszeradat másolásához:

2. lépés: A hiba azonosítása

Ezután megkezdjük a vizsgálatot, és azonosítjuk a sérült táblát. Ha a tábla a MyISAM tárolómotort használja, használja a CHECK TABLE utasítást, és ellenőrizze a tábla állapotát:

A kimenetben egy üzenet fogja megerősíteni a sérült táblát vagy táblákat.

3. lépés: A sérült tábla javítása

Ha hiba van a MyISAM táblában, és azonosította azt, használja a REPAIR TABLE utasítást a hiba javításához:

Ha a javítás sikeres volt, a következő hibamentes üzenetet kell látnia kimenetként:

Ha azonban a hiba újra jelentkezik, kövesse a MySQL 8.0-s verziójának hivatalos dokumentációját a táblák újraépítéséhez vagy javításához.

A MyISAM tárolómotorral ellentétben az InnoDB táblák javításának folyamata eltér az InnoDB tárolómotorban. Az InnoDB az alapértelmezett tárolómotor a MySQL 8.0-ban. Automatikus sérülésellenőrzési és javítási műveletekkel rendelkezik. A MySQL InnoDB ellenőrzi a sérült oldalakat azáltal, hogy ellenőrző összeget számol minden olvasott oldalon. Ha eltérést észlel, automatikusan leállítja a MySQL szervert.

A lényeg az, hogy ritkán van szükség az InnoDB táblák javítására. Az InnoDB olyan összeomlás-helyreállítási mechanizmussal rendelkezik, amely a legtöbb problémát újraindítással képes megoldani.

Próbálja meg újraindítani a MySQL szolgáltatást, hogy ellenőrizze, hozzáfér-e a szerverhez:

If you fail to rebuild a corrupted InnoDB table even after the reboot, try the “Dump and Reload” method suggested in the MySQL documentation. This method involves regaining access to the corrupted table, using the mysqldump utility. A folder must be created to store and retain the logical backup of the table. Once the error gets fixed, it reloads the table back into the database.

Step 4: Leverage innodb_force_recovery Option

If the server stays crashed or unreachable, try using the force_recovery option in InnoDB. Turning ON the force_recovery option is an excellent way to restore MySQL databases. You can enable this option by modifying the mysqld.cnf file in the nano text editor:

Insert the following line under the [mysqld] section:

innodb force recovery

Save and close the file after rebooting the MySQL service.

Step 5: Create a mysqldump File

If you are able to access the corrupted table, use the mysqldump option to put all the dumps in the new file. Name the new file as per your preference and make sure to add the .sql extension at the end. Here we are naming the file as demo.sql:

After that, use the DROP TABLE query to remove the table from the database. You can use the following syntax to avoid needing to reopen the MySQL prompt:

Then, using the dump document demo.sql you just prepared, restore the table:

You have successfully fixed your MySQL corrupt table, and are ready to work the database seamlessly.

Conclusion

Table corruptions or unexpected system crashes are likely to happen if you are working with a large volume of data. It is worth mentioning that the MySQL InnoDB storage engine is more fault-tolerant than the previous MyISAM engine. Tables utilising InnoDB storage engine can still be corrupted, although the danger of table corruption and breakdowns is significantly reduced thanks to its auto-recovery features.

Finally,  there are many topics and tutorials on databases that you can explore on our blog:

Happy Computing!

author

Akshay Nagpal

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.