arquivo mysql ibdata1

1

O que acontece se eu excluir o arquivo ibdata1 e reiniciar o servidor, meu banco de dados for MyISAM, usei o InnoDB antes, mas agora todas as tabelas são MyISAM. Será um grande problema se eu excluir este arquivo. Tanto quanto eu sei que será recriado quando eu reiniciar o servidor, mas eu não entendo o que exatamente é esse arquivo!

    
por OHLÁLÁ 08.06.2011 / 00:26

3 respostas

2

Você deve fazer o seguinte:

Adicione isto ao /etc/my.cnf

[mysqld]
skip-innodb

Em seguida, faça o seguinte:

  1. serviço mysql stop
  2. rm -f / var / lib / mysql / ib *
  3. serviço mysql start

Quanto ao arquivo: ibdata1 armazena o arquivo interno metadados para cada tabela InnoDB que existe. Certifique-se de que todas as tabelas InnoDB sejam convertidas em MyISAM ou mysqldump'd antes de excluir ibdata1. Existem também dois outros arquivos: ib_logfile0 e ib_logfile1. Esses são os arquivos de log do InnoDB para manter as transações em execução não totalmente comprometidas com o disco, bem como os dados do MVCC (Multiversioning Concurrency Control).

Depois de reiniciar o mysql a partir desses três (3) passos, nenhum dos arquivos InnoDB deve reaparecer. Na verdade, você deve obter uma inicialização do mysql muito mais rápida.

Não se esqueça de dimensione o key_buffer_size

    
por 08.06.2011 / 18:45
1

O InnoDB armazena o tablespace para todas as tabelas com ENGINE = InnoDB nesse arquivo enquanto que no MyISAM o tablespace é armazenado em arquivos individuais .MYD e .MYI.

Felicidades

    
por 08.06.2011 / 01:01
0

Sim, você pode remover o arquivo ibdata1. No entanto, desde que você tenha o mecanismo InnoDB ativado, o arquivo será recriado na inicialização. Eu não iria deletar este arquivo enquanto o serviço mysqld estivesse rodando.

    
por 08.06.2011 / 01:26

Tags