O Mysql leva muito tempo para restaurar o backup para o ambiente de teste. Como contornar isso?

2

Em um servidor MySQL 5.1 Enterprise, o db-dump leva muito tempo. Eu gostaria de reduzir a quantidade de tempo para restaurar o db-dump ou para poder voltar rapidamente a um estado conhecido. Esta máquina é usada para testes. Então vamos dizer que temos um DB Dump no ponto A. Eu faço algumas alterações no banco de dados com um aplicativo e depois de um tempo eu quero voltar para o mesmo db dump. Eu tenho as seguintes opções.

  • Excluir tudo e começar com uma nova restauração do db-dump, leva cerca de 14 horas
  • Use um backup de toda a pasta mysql

Tenho outras opções. Alguma maneira de voltar rapidamente ao estado A. Ou para acelerar o meu dbdump. Tentarei fornecer mais detalhes se você perguntar (não tenho certeza do que devo colocar aqui).

    
por geoaxis 20.07.2011 / 10:50

5 respostas

2

Como 3molo sugerido , outra opção é executar o seu servidor de teste como uma máquina virtual.

Configure a máquina virtual de teste com as condições iniciais do teste que você deseja executar, faça um snaphot e execute seus testes. Se você quiser voltar para uma configuração de teste limpa, use o instantâneo para reverter o estado de toda a VM.

    
por 20.07.2011 / 15:00
1

Mysqldump :

Use '--single-transaction' com mysqldump.
A menos que você esteja sobrecarregado de CPU, use gzip.
Desfragmentar as tabelas usando 'OPTIMIZE TABLE' para liberar espaço.
Adicione mais fusos.
Limpe dados desnecessários.

Outras opções :

Você pode usar os instantâneos da tecnologia de virtualização.
Alguns sistemas de arquivos suportam snapshots.
InnoDB suporta snapshots.

    
por 20.07.2011 / 10:57
1

Isso parece um espaço versus tempo de troca. A restauração mais rápida que você obterá é apenas excluir o diretório existente e copiar a cópia de backup do diretório de dados para o local correto.

O único problema é ter certeza de que o mysql é silencioso (desligado ou com um bloqueio de leitura global) para garantir que os dados no disco sejam consistentes antes de você fazer sua cópia de backup do diretório de dados.

    
por 20.07.2011 / 11:21
1

Você pode tentar mk-parallel-restore

    
por 20.07.2011 / 14:09
0

Faça o check-out Xtrabackup . Você não disse que tipo de tabelas você tem, mas o script innobackupex do Xtrabackup suporta backups brutos do InnoDB (e do XtraDB), assim como tabelas MyISAM.

Como @opsguy sugeriu que é um pouco de espaço, como um mysqldump gzip geralmente é muito menos que um backup bruto, mas o Xtrabackup oferece opções de compressão também e não há comparação em termos de uma restauração de um raw versus um lógico backup.

HTH

    
por 20.07.2011 / 16:59