sql >> Databáze >  >> RDS >> Mysql

Nejlepší způsoby, jak opravit poškozenou tabulku InnoDB v MySQL

Shrnutí:  V tomto příspěvku probereme některé z nejlepších způsobů, jak opravit poškozenou tabulku InnoDB v MySQL, která se může poškodit v důsledku selhání hardwaru, selhání serveru MySQL a dalších důvodů. Tyto způsoby zahrnují postupný postup k ruční opravě poškozené tabulky InnoDB nebo pomocí softwaru pro opravu MySQL.

Počínaje verzí MySQL 5.5 se InnoDB používá jako výchozí úložiště pro všechny nové tabulky v databázi MySQL. Skvělá věc na InnoDB je, že podporuje zotavení po havárii. Nemůže se tedy snadno poškodit, ale když se to stane, může k tomu dojít v důsledku selhání serveru MySQL po restartu, selhání hardwaru nebo chyb v základní platformě atd.

Když dojde k poškození tabulky InnoDB, data v ní se stanou nečitelnými a nepřístupnými. A pokus o čtení z poškozené tabulky může způsobit selhání serveru MySQL.

Jak opravit poškozenou tabulku InnoDB v MySQL?

Poznámka: Než se pokusíte opravit poškozenou tabulku InnoDB, nezapomeňte nejprve zálohovat soubory databáze MySQL.

Níže jsou uvedeny způsoby, jakými můžete opravit poškozenou databázovou tabulku InnoDB

1. Opravit poškozenou tabulku InnoDB ručně

Zřídka budete muset opravit tabulky InnoDB, protože modul úložiště pomáhá provádět obnovu po havárii, která může vyřešit většinu problémů, jakmile se server restartuje. Může však nastat situace, kdy budete muset poškozenou tabulku ručně znovu sestavit nebo opravit. Můžete to udělat takto:

Krok 1:Restartujte službu MySQL

Restartujte službu MySQL a zkontrolujte, zda máte přístup k serveru, provedením následujícího:

  1. Otevřete okno Spustit kliknutím na Windows+R klíče dohromady.
  2. Zadejte msc a stiskněte Enter .
  3. Ze Služeb v okně, vyhledejte službu MySQL, klikněte na ni pravým tlačítkem myši a poté klikněte na možnost restartovat .

Pokud je server přístupný, přejděte ke kroku 3. Pokud se však nespustí nebo nadále selhává, použijte možnost innodb_force_recovery vysvětlenou v dalším kroku.

Krok 2:Vynucení obnovy InnoDB

Povolte innodb_force_recovery možnost v konfiguračním souboru MySQL my.cnf znovu získat přístup k databázi MySQL a její poškozené tabulce. Chcete-li tak učinit, postupujte takto:

  • Otevřete soubor my.cnf a do sekce [mysqld] přidejte následující řádek kódu:
[mysqld]
Innodb_force_recovery=1

  • Uložte a zavřete konfigurační soubor.
  • Zkuste znovu restartovat službu MySQL.

Krok 3:Zrušte tabulku poškození

Jakmile získáte přístup k poškozené tabulce, vypište data tabulky do nového souboru pomocí následujícího příkazu mysqldump:

mysqldump –u user –p db_name table_name > single_dbtable_dump.sql

Poznámka: Chcete-li vypsat více tabulek, přidejte název tabulky oddělený mezerami ve výše uvedeném příkazu.

Nyní vypusťte poškozenou tabulku z databáze:

mysql –u user –p –execute=”DROP TABLE db_name.table_name”


Krok 4:Obnovení tabulky

Pomocí nově vytvořeného souboru výpisu obnovte tabulku ze souboru výpisu (tj. single_dbtable_dump):

mysql –u user –p < single_dbtable_dump.sql

Krok 5:Restartujte MySQL v normálním režimu

Když je poškozená tabulka opravena, zastavte službu MySQL a deaktivujte režim obnovy InnoDB zadáním následujícího řádku do sekce [mysqld]:

#innodb_force_recovery=...

Nyní restartujte službu MySQL v normálním režimu.

Poznámka: Pokud jste nepoužili možnost innodb_force_recovery, zastavte a restartujte server v normálním režimu.

2. Opravte poškozenou tabulku InnoDB pomocí softwaru pro opravu MySQL

Použití hodnoty „innodb_force_recovery“ vyšší než 4 k opětovnému získání přístupu k databázi může vést k poškození dat. V případech vážného poškození se také může podařit restartovat server MySQL. Tato omezení ruční opravy poškozené tabulky databáze MySQL můžete překonat pomocí specializovaného softwaru na opravu MySQL jako je Stellar Repair for MySQL.

Software dokáže opravit a obnovit tabulky InnoDB databáze MySQL, přičemž zachová data nedotčená. Také pomáhá obnovit vlastnosti tabulky, klíče, omezení vztahů atd.

Tento nástroj pro opravu databáze MySQL pomáhá opravit tabulky InnoDB a MyISAM vytvořené v systémech založených na OS Windows a Linux.

Kroky k opravě poškozené tabulky InnoDB pomocí softwaru jsou následující:

  1. Bezplatné stažení, instalace a spuštění Stellar Repair for MySQL
  2. Ze Vybrat datovou složku dialogovém okně vyberte verzi MySQL, kterou používáte, a poté klikněte na OK .
  3. Z Vybrat databázi vyberte databázi, kterou chcete opravit, a klikněte na Opravit .
  4. V okně náhledu softwaru se zobrazí náhled opravené databáze, tabulky a dalších obnovitelných součástí.
  5. Vyberte tabulky, které chcete obnovit, a poté v nabídce Soubor klikněte na Uložit.
  6. Z Uložit databázi vyberte MySQL v části Uložit jako a zadejte přihlašovací údaje potřebné pro připojení k serveru. Klikněte na Uložit .

Opravený soubor databáze můžete najít v nové složce na stejném místě, kde je uložena vaše původní databáze.

Opravený soubor databáze můžete najít v nové složce na stejném místě, kde je uložena vaše původní databáze.

Závěr

Korupce v tabulce InnoDB může způsobit, že data v ní jsou nečitelná, a pokud se včas nevyřeší, může dokonce vést ke zhroucení serveru a neplánovanému výpadku. Poškozenou tabulku InnoDB můžete opravit podle ručního postupu. Manuální proces opravy tabulek InnoDB však může vést ke ztrátě dat a nemusí přinést očekávaný výsledek.

Pomocí nástroje pro opravu databáze MySQL, jako je Stellar Repair for MySQL, však můžete opravit tabulky na úložišti InnoDB a obnovit jej do původního funkčního stavu. Tento nástroj pro opravu souborů pomáhá opravit databázi MySQL vytvořenou v OS Windows i Linux. Dokáže nejen opravit tabulky InnoDB, ale také opravit poškození v tabulkách MyISAM databáze MySQL.


  1. Část 2 – Jak uspořádat velký databázový diagram

  2. Jak přesunu tabulku do schématu v T-SQL

  3. Php volající skript zálohování databáze sqlserver, záložní soubor vytvořen a poté odstraněn

  4. Jak funguje funkce LEFT() v SQL Server (T-SQL)