Recuperação Mysql InnoDB, transferida de um Mac morto para o Windows

1

Depois que um servidor Mac falhou, estou lutando para recuperar os registros de uma tabela InnoDB. Todas as tabelas compartilhavam um único arquivo de dados. Eu copiei ibdata1 e os dois arquivos de log para um novo servidor mysql hospedado no Windows para recuperação, junto com o único arquivo .frm para a tabela de que preciso. Até agora, a recuperação falhou miseravelmente.

A tentativa de várias opções innodb_force_recovery em combinação com lower_case_table_names opções em cópias desses arquivos de dados não resolve o problema. Até mesmo um início normal usando cópias desses arquivos detecta inicialmente o travamento e o repara, e outras startups não apresentam erros. Excluir o ib_logfiles e fazer com que o Mysql os recriar no reinício não resolve o problema. Alterar o nome do arquivo .frm para todas as letras minúsculas e reiniciar não resolve o problema.

SHOW TABLES query mostra a tabela, mas qualquer consulta na própria tabela falha com o erro 1146. Ao executar um innodb_table_monitor , na saída eu posso ver claramente a definição da tabela (mais ou menos) e a contagem da linha. Visualizando o conteúdo do arquivo ibdata1, vejo todos os dados do registro em texto simples, mas não há nenhum padrão utilizável para analisá-lo.

Pelo que eu posso dizer, o problema parece se resumir a "erro 1146 - Tabela 'db.my_table' não existe" quando tento referenciar a tabela em qualquer comando ou consulta. Você vê, a tabela foi criada com caracteres maiúsculos no Mac e, de acordo com o MySQL, o Windows não consegue lidar com isso.

Alguém sabe de uma solução para extrair esses registros?

    
por bob-the-destroyer 18.03.2011 / 03:42

1 resposta

1

tente instalar Subsistema para aplicativos baseados em UNIX O Thsi instala ou disponibiliza a capacidade de instalar uma versão * nix de mysql que pode resolver seu problema. Tecnicamente falando, o problema não é que o Windows não possa lidar com os caracteres maiúsculos (o Windows certamente pode exibi-los), o problema é que o mysql está usando o caso nas janelas que, por padrão, não se importam com maiúsculas e minúsculas retorna nomes de arquivos em todas as letras minúsculas (ou em algum momento em maiúsculas - depende da chamada particular).

    
por 18.03.2011 / 05:16

Tags