Procurando a melhor maneira de fazer backup do Mysql

1

Qual é a maneira mais apropriada de fazer backup dos bancos de dados MySQL? Eu gostaria de ter os backups em intervalos de pelo menos 1 hora. Eu acho que o mysqldump era a única opção, mas acontece que existem outras opções também, como logs binários.

Eu gostaria de saber como "grandes caras fazem isso"

Minhas tabelas são innodb gostaria de ter backups tão frequentemente quanto possível (pelo menos a cada hora)

Eu acho que intervalos de 1 hora não são uma solução perfeita, pois eu ainda usaria as alterações após o último backup, até 1 hora.

    
por user80666 10.06.2011 / 06:40

4 respostas

3

Acredito que o mysqldump é melhor usado em servidores nos quais você não irá reter tráfego. Nas tabelas myisam, isso cria um bloqueio de leitura. Eu sei que você disse que está usando o innodb, então existem algumas soluções por aí.

Eu começaria verificando essa ferramenta. link Os caras do Percona são considerados alguns dos especialistas no mysql e esta é uma das ferramentas deles para fazer um 'hot backup' das tabelas innodb. Isso significa que você pode executá-lo mesmo enquanto seu banco de dados estiver em uso. Eu pessoalmente não tenho nenhuma experiência com isso ainda.

O site no qual estou trabalhando atualmente tem centenas de usuários simultâneos e, para fazer backups confiáveis, primeiro precisamos configurar a replicação para um escravo. Então nós rodamos mysqldump no slave, o que não perturba o desempenho no servidor master. Leia mais sobre replicação aqui: link

Eu acredito que o sentido é que você quer rodar backups uma vez por dia usando um método muito confiável como o mysqldump. Entre você tem um mestre e escravo replicando e produzindo logs binários. Os logs binários podem ser usados para fazer pequenas capturas. Na minha experiência, as ferramentas de backups quentes tendem a bloquear uma operação ou outra, levando a que um usuário ruim tenha uma experiência ruim.

    
por 10.06.2011 / 06:51
1

Até certo ponto, depende de quais opções de restauração você deseja. Alguns métodos funcionam (principalmente), mas limitam muito seus recursos de restauração. por exemplo. Um backup em nível de sistema de arquivos permite restaurar apenas a mesma máquina ou um clone. Usar logs binários para fins de backup é repleto de riscos, pois o log binário não conta toda a história.

Usar o mysqldump em um replicante é a melhor opção na grande maioria dos casos. Ele não só permite o backup sem perturbar o master, mas se você configurar master / master em vez de master / slave você também adicionará redundância. Se você precisar tirar o mestre off-line, por qualquer motivo, apenas aponte seu aplicativo para o segundo sistema primeiro.

    
por 10.06.2011 / 07:54
1

Em conjunto com um backup mysqldump, você pode replicar dados para um MySQL Slave onde os dados são armazenados em um sistema de arquivos com um recurso de snapshot como o ZFS. Nesse caso, você para o escravo, tira um instantâneo e reinicia o escravo.

    
por 10.06.2011 / 08:40
0

O esquema básico de backup de banco de dados inclui os seguintes componentes:

  1. dados do banco de dados e registros de transações em diferentes discos físicos
  2. backups restauráveis frequentes

A idéia por trás disso é que, no caso de uma falha no disco do banco de dados, você poderá restaurar seus dados até a última transação com o backup feito anteriormente e a reprodução da última transação. logs que não foram afetados pela falha.

Em como para fazer isso, uma pergunta semelhante foi perguntou antes e obteve uma referência à documentação do MySQL que descreve algumas opções.

Eu certamente recomendaria strongmente a replicação como uma "estratégia" de backup - ela não é projetada como backup. Algumas pessoas usam a réplica para reduzir a carga e bloquear a simultaneidade no servidor de banco de dados principal usando o banco de dados de um escravo como fonte de backup. No entanto, você ainda tem o problema de verificar a consistência do conjunto de dados do escravo - o MySQL não faz isso por você e é fácil estragar a replicação do MySQL por meio de um erro de configuração. Existem ferramentas para verificação de consistência como mk-table-checksum do maatkit , mas novamente é ganho - a verificação de consistência colocaria carga e bloqueios nas tabelas do seu mestre.

    
por 10.06.2011 / 08:42

Tags