Recuperar banco de dados mysql innodb 'table doesn't exist'

2

Nosso servidor caiu na semana passada e perdemos muitas informações. Conseguimos recuperar .frm arquivos para as tabelas, ib_logfile0 , ib_logfile1 e ibdata1 , mas não .ibd .

Eu tentei o innodb-force-recovery em todos os níveis de 1 a 6 e muitas outras 'soluções' que encontrei on-line, sem sucesso algum.

Neste momento, eu estava tentando fazer isso por meio de mysqldump e restore do banco de dados, mas encontrei o mesmo problema .

esta resposta parece que pode funcionar. Meu problema é, primeiro - meu servidor é baseado no Windows, segundo - eu não tenho o conhecimento e as habilidades para aplicar isso na linha de comando do Windows.

Por acaso existe uma solução semelhante para o Windows

editar

não usamos innodb_file_per_table , então todos os dados devem ser armazenados em ibdata1

    
por FabioG 17.07.2015 / 18:43

1 resposta

0

Esta postagem no fórum do MySQL parece uma história de sucesso, embora um pouco antiga. Eu me lembro de uma história similar minha, no Linux. A plataforma Windows não importa aqui, a estrutura dos arquivos de dados do MySQL é semelhante. Nenhum trabalho de linha de comando é realmente necessário. Presumo que o seu arquivo Ibdata não esteja danificado de alguma forma.

AFAIK você não precisa de arquivos ib_logfile? , o post no fórum confirma isso. As principais operações aqui são:

  1. uma nova instalação do MySQL (use a mesma versão);
  2. a recriação manual de bancos de dados de nome idêntico , pode ser feita a partir do último backup, se você tiver um;
  3. desabilitando innodb_file_per_table em my.cnf , é melhor restaurar a configuração antiga;
  4. substituindo Ibdata em nova instalação com a recuperada.

Depois de iniciar o MySQL, você poderá navegar e despejar seus dados a partir de tabelas InnoDB.

    
por 25.07.2015 / 10:09