Como posso fazer backup de bancos de dados de vários gigabytes no MySQL? Pontos de bônus para restaurações mais rápidas

10

Eu tenho um banco de dados de 4GB no MySQL. Como posso fazer o backup? Além disso, existe uma maneira de acelerar o processo de restauração no caso de precisar recuperar?

Atualmente, uso uma tarefa cron toda noite que chama mysqldump para descarregar tudo e manter três dias de backups.

    
por nicudotro 25.09.2008 / 23:28

5 respostas

13

Temos cerca de 90 GB em um MySQL, então aqui estão algumas sugestões:

  • Você pode tentar a seguinte chamada: mysqldump -u USER -pPASS --single-transaction -Q --databases foo bar (use os documentos para verificar se esses switches funcionam para você.)
  • Se você usar apenas tabelas MYISAM, copiar o banco de dados para outra unidade e tará-lo também pode ser uma alternativa. Isso não funcionará com o INNODB, pois mantém um arquivo adicional. Além disso, você tem que testar isso com cuidado.
  • Ative os logs binários e faça backup deles. (Este é provavelmente o meu favorito!)
  • Configure a replicação e faça o backup em um de seus escravos e, em seguida, deixe-o acompanhar o resto. É muito bom quando é executado, mas o problema é fazê-lo funcionar. Replicar não é divertido com o MySQL. : (
  • Seu sistema de arquivos suporta instantâneos? Em caso afirmativo, essa é uma ótima oportunidade para usá-los.
  • Use uma solução comercial, como Amanda .
por 25.09.2008 / 23:59
10

A melhor maneira seria sem interromper a operação normal. Para sistemas de alta confiabilidade e tolerantes a falhas, você tem 2 bancos de dados que são mantidos em sincronia e faz o backup do secundário. (por exemplo, este artigo do howtoforge )

Caso contrário, leia o manual : use myseldump como você atualmente ou use o script mysqlhotcopy (use apenas como mysqldump), ou pare o DB e simplesmente copie os arquivos frm, MID, MYI (usando rsync).

Eu acho que o mecanismo de parar + copiar arquivos é o mais rápido que você vai conseguir.

    
por 25.09.2008 / 23:39
3

Se alguns de seus bancos de dados são somente de leitura ou modificados, raramente o classificam como um cron menos frequente.

    
por 25.09.2008 / 23:40
2

Para responder à sua pergunta, a opção extended_insert funciona bem para mim . Se você tiver recursos suficientes para restauração, o extended_insert inserirá grandes blocos de dados em uma única consulta, tornando a restauração mais rápida.

    
por 26.09.2008 / 20:18
1

Você deve realmente considerar o Xtrabackup da Percona

O script invólucro "innobackupex" pode manipular o MyISAM, mas para um backup não bloqueado / online suas tabelas devem ser todas do InnoDB.

Felicidades

    
por 12.01.2011 / 17:19

Tags