mysql 4

4.4.6.9. Hogyan orvosolható asztalok

Ez a rész csak a használat myisamchk asztalokon MyISAM (bővítés .MYI és .MYD). Ha a rendszer ISAM táblákat használnak (bővítés .ISM és .ISD), akkor használja isamchk.

Kezdve MySQL 3.23.14 verzió tudja javítani MyISAM táblákat JAVÍTÁS TABLE parancs (lásd 4.4.5 „Syntax JAVÍTÁS TABLE»).

Tünetei a sérült asztal közé váratlan megszakítását lekérdezés és a következő hibaüzenet:

tbl_name.frm van zárva változás elleni (File blokkolva változások)

A fájl nem található tbl_name.MYI (ERRCODE: ###) (Nem találom a fájlt tbl_name.MYI (Hiba: ###))

Váratlan fájl vége (end jött váratlanul)

Vedd fájl lezuhant (bejegyzések fájl sérült)

Megvan a hiba ### táblázatból felvezető (Hiba ### a leíró táblázatokat). További információ akkor perror ### hiba. Leggyakrabban problémák A táblázatban a következő hibákat:

Figyeljük meg, hogy a hiba 135 - „nincs több hely a rekord fájl” ( „nincs helye a nyilvántartásban” fájl) nem lehet korrigálni egyszerűen teljesítő javításokat. Ebben az esetben, akkor kell használni a következő parancsot:

Más esetekben, akkor elvégzik a javítást asztalra. myisamchk általában felismerni és kijavítani a legtöbb problémát.

javítási eljárás magában foglalja akár négy az itt leírt lépések. Mielőtt elkezdené a javítást, amire szükség van, hogy a cd adatbázis könyvtárba és ellenőrizze a jogosultságokat az asztalon fájlokat. A fájlok legyen olvasható Unix-felhasználó, akinek a nevében végezzük mysqld. (Csakúgy, mint a javítás, mert van, hogy olvassa el a fájlokat beolvasni). Ha szükséges módosítani a fájlokat, az ellenőrzések is kell az írási hozzáférést.

Ha egy MySQL verzió 3.23.16 felett használja az ellenőrzés és javítás parancsokat, hogy ellenőrizze és javítási MyISAM táblák, akkor (és kell) (lásd a 4.4.4 „szintaktikai ellenőrzés asztal» és lásd 4.4.5 „Syntax JAVÍTÁS TABLE» ).

Amikor azt mondta, csapata nem vagy kívánatos a fejlett funkciók be isamchk / myisamchk. tárgyalt a következő fejezetben.

Ha azt tervezi, hogy elvégzi a javítást a táblázat a parancssorból, akkor először le kell állítani a szervert. Meg kell jegyezni, hogy amikor a MySQLadmin shutdown mysqld a távoli szerver továbbra is egy ideig, miután MySQLadmin munka befejezését. meg kell szakítania minden kérelmet, és kipirult az összes kulcsot.

1. lépés: ellenőrző táblázatokat

Kövesse myisamchk * .MYI, vagy ha van időd, myisamchk -e * .MYI. A következő lehetőség -s (néma üzemmódban), hogy elnyomják a felesleges információkat.

Ha mysqld leáll, akkor használja a --update-state opcióval megadhatja myisamchk hogy jelölje meg a táblázatban az „ellenőrzött” (jelölve).

Javítás kell csak azokat a táblákat, amelyek myisamchk sikertelen. kell menni a 2. lépésre az ilyen táblákat.

Ha az ellenőrzés során kerül elő furcsa hibákat (például elfogyott a memória), vagy myisamchk összeomlik, folytassa a 3. lépéssel.

2. szakasz: Egyszerű biztonságos javítás

Megjegyzés: ha azt akarjuk, hogy gyorsítsák fel a javítás, akkor ajánlott felvenni: -O sort_buffer = # -O key_buffer = # (ahol a # 1/4 a rendelkezésre álló memória), hogy minden csapat isamchk / myisamchk.

Először meg kell próbálni futtatni myisamchk -r -q tbl_name (-r -q jelentése „gyors helyreállítási módba”). Ebben az esetben, megpróbálja kijavítani az index fájlt megváltoztatása nélkül a fájl adatait. Ha az adatállomány tartalmaz mindent, amire szüksége van, és a távoli csatlakozási pont a megfelelő helyzetbe az adatállományban, akkor a csapat meg kell adni az eredményt, és az asztal fix. Lépés a következő táblázat javításra. Ellenkező esetben, a következőképpen kell eljárni:

Készítsen biztonsági másolatot az adatállományban.

Használja myisamchk -r tbl_name (-r azt jelenti, "hasznosítási mód"). Ebben az esetben az adatfájlt kell távolítani, és elpusztította a helytelen bejegyzéseket, és újra kell létrehozni index fájlt.

Ha nem tudja megoldani a problémát, az előző lépésben, használja myisamchk --safe helyreállítás tbl_name. A Biztonságos Recovery módban használ egy régi beszedési módszer, amely kezeli a néhány esetben, amelyek kívül esnek a hatalom a hagyományos mód javítások (de ez a módszer működik lassabban).

Ha az ellenőrzés során kerül elő furcsa hibákat (például a szabad memória) vagy myisamchk összeomlik, folytassa a 3. lépéssel.

3. lépés: bonyolult javítások

Eddig a pontig, akkor jön csak akkor, ha az első 16KB blokk a indexfájlja megsemmisült vagy helytelen adatokat tartalmaz, vagy ha az index fájl hiányzik. Ebben az esetben meg kell hozzon létre egy új index fájlt. hajtsa végre a következő lépéseket:

Tolja az adatfájlt egy biztonságos helyre.

A táblázat leíró fájl létrehozása új (üres) fájl - adatok és index:

Ha az SQL verzió nem TRUNCATE TABLE. helyett használható DELETE FROM táblanév.

Másolja át a régi adatfájlt helyett az újonnan létrehozott (a mozgó a régi fájlokat vissza a helyére az új célszerűtlen, mert a régi fájl ismét szükség lehet, ha valami elromlik).

Vissza a 2. lépésre myisamchk -r -q most dolgozik (a szakaszban, de már nem kell újra végtelenül).

Ami a MySQL 4.0.2, akkor lehet használni, JAVÍTÁS. USE_FRM. elvégzi az egész eljárás automatikusan.

4. szakasz: Nagyon nehéz javítás

Eddig a pontig, akkor kap csak abban az esetben, minden más korrupt és egy leíró fájl. Ez nem történhet meg, mert a leíró fájl létrehozása után a táblázat nem változik. Kövesse az alábbi lépéseket:

Állítsa vissza a leíró fájl egy biztonsági mentésből, és menjen a 3. szakasz is visszaállíthatja az index fájlt, és menj vissza a Stage 2. Az utóbbi esetben meg kell kezdeni myisamchk -r.

Ha nincs tartalék, de pontosan tudja, hogy a tábla jön létre, hogy létrehoz egy másolatot az asztal másik adatbázisban. Egy új adatfájlt kell hagyni, akkor a leírás a fájlt az index fájl átkerül egy másik adatbázis a sérült. Így kapsz egy új leírást fájlt, és az index fájlt, hogy ne érjen az adatállományban. Van egy visszatérő a 2. lépésre, hogy megpróbálja rekonstruálni az index fájlt.

Kapcsolódó cikkek