Como posso criar backups incrementais de bancos de dados mysql

2

Eu tenho o servidor linux centos 6.4 com mysql5.6

Eu tenho o cron job para fazer backups de banco de dados mysql de hora em hora como este

É em python

os.popen("mysqldump -u %s --password=%s -h %s -e --opt --skip-lock-tables  --skip-extended-insert -c %s | gzip -c > %s.gz" % (username, password, hostname, database, filename))

O problema é que muito poucos dados são armazenados, mas toda vez eu tenho que fazer backup de todos os bancos de dados 24 vezes, o que demanda muito espaço.

Qual é a melhor alternativa para isso

Existe alguma maneira de ter backups incrementais para que eu faça um backup completo da semana do banco de dados e, em seguida, apenas backups incrementais.

Eu quero ter arquivos separados para bancos de dados separados para que, se eu precisar restaurar o banco de dados único, eu possa fazer isso também

    
por user2424160 14.07.2013 / 10:37

4 respostas

6

Muito simples: binlogging. Configure o mysql para manter o log binário por pelo menos um dia (possivelmente mais). Então mude seu backup para não fazer mysqldump, mas use algo como xtrabackup.

Dessa forma, você pode reduzir o agendamento de backup para uma vez por dia e ainda ter a possibilidade de avançar para qualquer ponto no tempo usando o log binário.

    
por 14.07.2013 / 10:53
1

É muito bobo estar fazendo backup a cada hora na maioria das situações. Talvez você precise considerar a replicação do mysql para outro nó.

    
por 14.07.2013 / 10:41
1

Você pode fazer backups incrementais com xtrabackup. Para restaurar um único banco de dados, prepare os backups completos e incrementais (que incluem todos os bancos de dados) e execute o MySQL usando o diretório xtrabackup como o datadir e obtenha um mysqldump do banco de dados único que você deseja.

    
por 14.07.2013 / 16:09
0

Se você deseja economizar espaço, pode continuar fazendo backups completos de hora em hora, mas em um sistema de arquivos desduplicado, como lessfs . Você poderia facilmente remover uma partição e formatá-la / montá-la com lessfs e, em seguida, permitir que ela manipulasse a deduplicação enquanto ainda seria capaz de restaurar a qualquer ponto de hora, sem o espaço.

    
por 14.07.2013 / 16:33