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:
- Abra a janela Executar clicando em 'Windows+R' teclas juntas.
- Digite msc e pressione Enter .
- 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:
- Baixe, instale e execute gratuitamente o Stellar Repair for MySQL
- Na Selecionar pasta de dados caixa de diálogo, selecione a versão do MySQL que você está usando e clique em OK .
- No Selecionar banco de dados caixa, escolha o banco de dados que deseja reparar e clique em Reparar .
- Uma visualização do banco de dados reparado, da tabela e de outros componentes recuperáveis é exibida na janela de visualização do software.
- Selecione as tabelas que deseja restaurar e clique no menu Salvar no arquivo.
- 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.