Pergunta

Eu tenho que restaurar um banco de dados que tenha sido inadvertidamente caiu no MySQL 5.0. De verificar os arquivos de backup, eu só parecem ter arquivos .FRM para armazenar os dados do banco de dados.

Alguém pode aconselhar se isso é tudo necessidade I para executar uma restauração de banco de dados / importação a partir do backup, ou existem outros arquivos que eu deveria ter a mão para completar isso?

Foi útil?

Solução

.frm não são os arquivos de dados, eles apenas armazenar os "dados informações dicionário" (ver MySQL manual do ). InnoDB armazena seus dados em ib_logfile arquivos *. Isso é o que você precisa para fazer um backup / restore. Para mais detalhes veja aqui .

Outras dicas

innodb Restaurar: (Assumindo que os dados da pasta é C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data)

  1. Copiar as pastas das bases de dados (nomeado após o nome do banco de dados) que deseja restaurar para C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data
  2. Copiar os 3 arquivos ibdata para a pasta de dados ex. (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data)

    _ib_logfile0
    _ib_logfile1
    _ibdata1
    
  3. Obter o tamanho do _ib_logfile0 em MB (que deve ser o mesmo que _ib_logfile1) por File Botão direito do mouse -> Propriedades

  4. Edite o arquivo mysql config (mysql \ bin \ my.ini) para o innodb_log_file_size = 343m para ser exatamente o tamanho arquivos ibdata

  5. Executar

    mysqld --defaults-file = mysql \ bin \ my.ini --standalone --console --innodb_force_recovery = 6

  6. Agora, os dados devem estar de volta em seu banco de dados. Exportá-los usando phpmysql ou qualquer outra ferramenta

Oh meu ... você está em apuros. Desligar o banco de dados. Faça backup do arquivo do InnoDB. Ore para que você não fez nada depois que você deixou cair o banco de dados.

Os caras da Percona (inclui autores de MySQL Desempenho Blog) deve ser capaz de ajudá-lo: Percona apoio de emergência .

Se você se aventurar por conta própria, tomar isso com você: Data Recovery Toolkit para Innodb .

A logística da TI? Você tem que ler cada página (a página termo computador ... 16k bloco no caso do InnoDB) e reconstruir seus dados dessa forma. É muito trabalho de baixo nível (estamos falando Abra seu editor hexadecimal e iniciar a contagem bytes se o kit de ferramentas não fazer isso por você), e se você não é um programador fortemente experiente, você vai estar prejudicando .

A solução detalhada você pode encontrar aqui:

http://www.unilogica.com/mysql-innodb-recovery/ (artigo em Português)

Além da bandeira de innodb_force_recovery , encontrei outra solução:. innodb_file_per_table , que divide tabelas InnoDB em cada arquivo como tabelas MyISAM

Em uma recuperação de falhas pode perder menos dados do que em fila indiana ibdata1 .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top