Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Melhores maneiras de reparar a tabela InnoDB corrompida no MySQL


Resumo:  Nesta postagem, discutiremos algumas das melhores maneiras de reparar uma tabela InnoDB corrompida no MySQL, que pode ser corrompida devido a falha de hardware, falha do MySQL Server e outros motivos. Essas maneiras incluem um procedimento passo a passo para reparar manualmente a tabela InnoDB corrompida ou usando o software de reparo MySQL.



A partir da versão MySQL 5.5, o InnoDB é usado como mecanismo de armazenamento padrão para todas as novas tabelas em um banco de dados MySQL. O melhor do InnoDB é que ele suporta recuperação de falhas. Assim, ele não pode ser corrompido facilmente, mas quando isso acontece, pode ocorrer devido a uma falha do MySQL Server após uma reinicialização, falha de hardware ou bugs na plataforma subjacente, etc.



Quando uma tabela InnoDB é corrompida, os dados dentro dela se tornam ilegíveis e inacessíveis. E, uma tentativa de ler de uma tabela corrompida pode causar o travamento do MySQL Server.


Como reparar uma tabela InnoDB corrompida no MySQL?


Observação: Antes de tentar reparar a tabela InnoDB corrompida, certifique-se de fazer backup dos arquivos do banco de dados MySQL primeiro.

A seguir estão as maneiras pelas quais você pode reparar a tabela de banco de dados InnoDB corrompida


1. Corrigir manualmente a tabela InnoDB corrompida


Você raramente precisará reparar tabelas InnoDB, pois o mecanismo de armazenamento ajuda a realizar a recuperação de falhas que pode corrigir a maioria dos problemas assim que o servidor for reiniciado. No entanto, pode surgir uma situação em que você precisará reconstruir ou reparar manualmente uma tabela corrompida. Veja como você pode fazer isso:


Etapa 1:reinicie o serviço MySQL


Reinicie o MySQL Service, para verificar se você consegue acessar o servidor, fazendo o seguinte:
  1. Abra a janela Executar clicando em 'Windows+R' teclas juntas.
  2. Digite msc e pressione Enter .
  3. Dos Serviços janela, procure MySQL Service e clique com o botão direito do mouse nele e clique em reiniciar .



Se o servidor estiver acessível, pule para a Etapa 3. Mas se ele não iniciar ou continuar travando, use a opção innodb_force_recovery explicada na próxima etapa.




Etapa 2:forçar a recuperação do InnoDB


Ative o innodb_force_recovery opção no arquivo de configuração my.cnf do MySQL para recuperar o acesso ao banco de dados MySQL e sua tabela corrompida. Para fazer isso, siga estas etapas:
  • Abra o arquivo my.cnf e adicione a seguinte linha de código na seção [mysqld]:
[mysqld]
Innodb_force_recovery=1

  • Salve e feche o arquivo de configuração.
  • Tente reiniciar o serviço MySQL novamente.




Etapa 3:elimine a tabela corrompida


Uma vez que você possa acessar a tabela corrompida, despeje os dados da tabela em um novo arquivo usando o seguinte comando mysqldump:
mysqldump –u user –p db_name table_name > single_dbtable_dump.sql


Observação: Adicione o nome da tabela separado por espaço em branco no comando acima para despejar várias tabelas.

Agora, elimine a tabela corrompida do banco de dados:
mysql –u user –p –execute=”DROP TABLE db_name.table_name”


Etapa 4:restaurar a tabela


Use o arquivo dump recém-criado para restaurar a tabela do arquivo dump (ou seja, single_dbtable_dump):
mysql –u user –p < single_dbtable_dump.sql

Etapa 5:reinicie o MySQL no modo normal


Quando a tabela corrompida for reparada, pare o MySQL Service e desative o modo de recuperação do InnoDB digitando a seguinte linha na seção [mysqld]:
#innodb_force_recovery=...


Agora reinicie o MySQL Service no modo normal.

Observação: Se você não usou a opção innodb_force_recovery, basta parar e reiniciar o servidor no modo normal.




2. Corrigir a tabela InnoDB corrompida usando o software de reparo MySQL


Usar o valor 'innodb_force_recovery' maior que 4 para recuperar o acesso ao banco de dados pode levar à corrupção de dados. Além disso, em casos de corrupção grave, você pode falhar ao reiniciar seu servidor MySQL. Você pode superar essas limitações de reparar manualmente a tabela corrompida do banco de dados MySQL usando o software de reparo do MySQL especializado como Stellar Repair para MySQL.

O software pode reparar e restaurar tabelas InnoDB do banco de dados MySQL, mantendo seus dados intactos. Além disso, ajuda a recuperar propriedades da tabela, chaves, restrições de relacionamento, etc.

Este utilitário de reparo de banco de dados MySQL ajuda a reparar as tabelas InnoDB e MyISAM criadas em sistemas baseados em Windows e Linux OS.

As etapas para reparar a tabela InnoDB corrompida usando o software são as seguintes:
  1. Baixe, instale e execute gratuitamente o Stellar Repair for MySQL
  2. Na Selecionar pasta de dados caixa de diálogo, selecione a versão do MySQL que você está usando e clique em OK .
  3. No Selecionar banco de dados caixa, escolha o banco de dados que deseja reparar e clique em Reparar .
  4. Uma visualização do banco de dados reparado, da tabela e de outros componentes recuperáveis ​​é exibida na janela de visualização do software.
  5. Selecione as tabelas que deseja restaurar e clique no menu Salvar no arquivo.
  6. No Salvar banco de dados caixa, escolha MySQL em Salvar como e insira as credenciais necessárias para conectar-se ao servidor. Clique em Salvar .

Você pode encontrar o arquivo de banco de dados reparado em uma nova pasta no mesmo local em que seu banco de dados original está armazenado.

Você pode encontrar o arquivo de banco de dados reparado em uma nova pasta no mesmo local em que seu banco de dados original está armazenado.




Conclusão


A corrupção na tabela InnoDB pode tornar os dados dentro dela ilegíveis e, se não for tratado com o tempo, pode até resultar em uma falha do servidor e tempo de inatividade não planejado. Você pode corrigir a tabela corrompida do InnoDB seguindo o procedimento passo a passo manual. No entanto, o processo manual para reparar tabelas InnoDB pode resultar em perda de dados e pode não fornecer o resultado esperado.



No entanto, usando uma ferramenta de reparo de banco de dados MySQL, como Stellar Repair for MySQL, você pode reparar tabelas no mecanismo de armazenamento InnoDB e restaurá-las ao seu estado funcional original. Este utilitário de reparo de arquivos ajuda a reparar o banco de dados MySQL criado no sistema operacional Windows e Linux. Ele pode não apenas reparar tabelas InnoDB, mas também corrigir a corrupção nas tabelas MyISAM do banco de dados MySQL.