Fazendo backup de dados (incluindo mysqldumps) para S3

1

Temos um aplicativo da web em vários servidores e queremos adicionar uma camada adicional de redundância fazendo o backup dos dados principais no S3. Os principais dados são o banco de dados MySQL e uma pasta contendo recursos do site criados dinamicamente - predominantemente imagens. Algum tipo de solução baseada em rsync pareceria inicialmente o melhor plano. Um par de anos atrás nós tocamos com S3cmd (em particular o s3cmd sync) com algum sucesso, mas não achamos isso particularmente confiável, embora isso possa mudaram desde então. Ocorreu-me que uma solução rsync pode não funcionar muito bem com um único arquivo db.sql criado com o mysqldump e eu suponho que isso significa que todo o banco de dados é transferido a cada vez, com múltiplos bancos de dados acima de 1GB. muito tráfego (e $ s) muito rapidamente. Com os arquivos de imagem eu poderia simplesmente transferir arquivos modificados no último dia, o que seria muito mais simples. Qual abordagem devo olhar?

    
por robjmills 19.07.2012 / 11:44

3 respostas

2

Parece-me um trabalho perfeito para opendedup . Dê uma chance. Deixe-nos saber se resolve o seu problema.

    
por 19.07.2012 / 15:12
1

Como você adivinhou, o s3cmd é muito mais confiável do que há alguns anos e muitas pessoas o usam, inclusive eu, sem nenhum problema. Além disso, o Amazon S3 não cobra pelo upload de dados, portanto, o fator dinheiro não é um problema, mas definitivamente você quer evitar transferências desnecessárias, que na maioria das vezes ocorrem com backups de banco de dados.

Eu tive o mesmo problema com o MySQL, porque infelizmente não suporta backup incremental. É por isso que eu escrevi um script bash que para cada banco de dados despeja uma tabela em um arquivo diferente. Depois disso eu comprimo-lo e zdiff com a cópia anterior, ignorando as últimas 2-3 linhas (onde mysqldump escreve a data atual). Se não houver diferença entre os arquivos, não sincronizo o conteúdo na nuvem. A desvantagem dessa abordagem é a complexidade da solução, que adiciona etapas extras ao restaurar os dados.

Além disso, se você tiver alguma palavra no desenvolvimento do software que você executa no servidor, você pode adicionar um parâmetro extra para cada tabela, que mantém as alterações. Portanto, com base nisso, você instrui seu script de backup a despejar apenas as tabelas que foram alteradas desde o último backup.

    
por 19.07.2012 / 12:16
0

O Plain Rsync é uma boa opção para fazer backup de arquivos, pois é simples e tem um bom desempenho. No entanto, se um arquivo for modificado durante a execução do Rsync, a cópia poderá estar corrompida. Portanto, é fundamental garantir que todos os arquivos estejam fechados. No seu caso, se houvesse alguns arquivos de imagem sendo alterados e corrigidos, o próximo Rsync os substituiria de qualquer maneira, já que o Rsync copia apenas os arquivos modificados, portanto, é como um processo de autorrecuperação. Então eu acho que o Rsync e salvar no S3 é uma boa escolha aqui.

    
por 28.08.2012 / 10:45