"tbl_name.frm" tabulka definice (tabulka) soubor "tbl_name. MYD "Datový soubor" tbl_name. MYI" indexový soubor Každý z těchto tří typů souborů může trpět různými formami poškození, ale problém se nejčastěji vyskytuje v datových a indexových souborech. myisamchk vytváří ". MYD" (data) soubor, který funguje, funguje tak, že odstraní starý ". MYD soubor a přejmenujte nový soubor na původní název souboru, čímž ukončíte fázi opravy. Pokud použijete --quick, myisamchk nevytváří dočasný ". MYD" jen předpokládám". MYD" je správný a vytvoří pouze nový indexový soubor, aniž by se ho dotkl." MYD", což je bezpečné, protože myisamchk automaticky detekuje". MYD" je poškozený a v tomto případě je oprava opuštěna. Můžeš také dát myisamchk dvě – rychlé možnosti. V tomto případě myisamchk nevzdává některých chyb (například opakujících se kláves), ale místo toho se snaží upravit ". MYD" k jejich vyřešení. Obvykle je užitečná jen tehdy, pokud implementujete běžnou opravu na příliš málo volného místa na disku, pomocí dvou rychlých možností. V takovém případě byste si měli alespoň udělat zálohu před spuštěním myisamchk. 1. Jak zkontrolovat chyby v tabulce Pro kontrolu tabulky použijte následující příkaz: myisamchk tbl_name To zachytí 99,99 % všech chyb. Co však nemůže zjistit, je, že poškození je zapojeno pouze do datových souborů (což je neobvyklé). Pokud chcete zkontrolovat tabulku, obvykle byste měli spustit myisamchk bez této možnosti nebo použít jednu z možností -s nebo --tichého. myisamchk -e tbl_name Provádí zcela důkladnou kontrolu dat (-e znamená "rozšířená kontrola"). Provádí kontrolu přečtených kláves na každém řádku, aby potvrdil, že skutečně ukazují na správný řádek. To může trvat dlouho na velkém stole s mnoha klávesami. myisamchk obvykle přestane po nalezení první chyby. Pokud chcete více informací, můžete přidat možnost --verbose(-v). To způsobí, že myisamchk pokračuje až do maximálně 20 chyb. V běžném použití stačí jednoduchý myisamchk (bez argumentů kromě názvu tabulky). myisamchk -e -i tbl_name Stejně jako předchozí příkaz, ale možnost -i říká myisamchk, aby také vytiskl nějaké statistiky. 2. Jak opravit stůl Příznakem poškozené tabulky je obvykle nečekané přerušení dotazu a můžete například vidět tyto chyby: "tbl_name.frm" je uzamčené a nelze jej změnit. Soubor "tbl_name. MYI"(Errcode :### )。 Získejte chybu ### z procesoru tabulky (v tomto případě je chyba 135 výjimkou). Nečekaný konec souboru. Záznamy byly zničeny. V těchto případech musíte stůl opravit. MyiSamchk obvykle zjistí a opraví většinu problémů, které se pokazí. Proces opravy se skládá až ze 4 fází, které jsou popsány níže. Než začnete, měli byste přidat CD-práva k databázovému adresáři a kontrolním souborům, abyste se ujistili, že jsou čitelné pro uživatele Unixu používající mysqld (a pro vás, protože potřebujete přístup k souboru, který kontrolujete). Pokud odmítne soubor upravit, musí být také zapisovatelný k vám. Fáze 1: Zkontrolujte svůj stůl Utíkej myisamchk *. MYI nebo (myisamchk -e *. MYI, pokud máte více času). Použijte možnost -s (ticho) k deaktivaci zbytečných informací.
Formát souborů používaný MySQL pro ukládání dat byl rozsáhle testován, ale vždy existují vnější podmínky, které mohou způsobit poškození databázových tabulek: Proces mysqld je ukončen jedním zápisem; Neočekávané vypnutí počítače (například pokud počítač ztratí napájení); Hardwarová chyba. Tato kapitola popisuje, jak kontrolovat a řešit poškození dat v databázi MySQL. Pokud je váš stůl hodně poškozený, měli byste zjistit proč! Viz G.1 Debagging a MySQL server. Při provádění obnovy po havárii je důležité pochopit, že každá tabulka v databázi tbl_name odpovídá třem souborům v adresáři databáze |