Se o seu banco de dados for grande, armazenar centenas de cópias de um banco de dados irá exceder sua capacidade de armazenamento, provavelmente pegando você despreparado e ocupado com outra coisa. A compactação gzip quase certamente prejudicará, já que isso impede que a capacidade do SVN de compactar entre as revisões , e eu acho O SVN já usa uma biblioteca zip internamente. Você pode levar alguns dias de backups e experimentá-los nos dois sentidos e ver qual deles usa menos disco. Provavelmente também será útil ordenar o dump de alguma forma, como com - ordem por primária ; caso contrário, o SVN terá que desperdiçar disco representando reordenações frívolas do mysqldump, com as quais você não se importa.
Mas, eventualmente, você simplesmente precisa descartar os dados. Uma abordagem interessante que vi foi pelo nome de "backups logarítmicos". A ideia é que os backups mais recentes sejam mais importantes do que os backups mais antigos, para que você salve mais e expire a maioria deles à medida que envelhecem. Então você acaba com
- 7 backups diários da semana anterior
- 12 backups mensais do ano anterior
- 1 backup anual de anos anteriores.
Esta é uma abordagem semelhante à ferramenta RRD , na qual os dados são consolidados em um representante objeto. Você acaba com mais de 20 backups e a capacidade de recuperar dados de curta duração do passado recente e dados de longa duração de um passado distante.
Na verdade, respondendo à pergunta
Como seus dados são relativamente pequenos e provavelmente não mudam muito, o SVN pode não ser uma abordagem ruim.
Eu tenho um processo semelhante para colocar sites de interesse no SVN, que eu modifiquei para atender às suas necessidades. Coloque isso em seu cron.daily ou whereever, e você vai conseguir terminar. Você precisará inicializar o repositório primeiro e ajustá-lo para atender às suas necessidades, mas este é um bom começo:
#!/bin/bash
# check out to temp dir
DIR='mktemp -d'
cd $DIR
# check out repository
svn co $1 .
# dump db
mysqldump --order-by-primary -u root -pPASSWORD database_name
# if changed, commit
svn commit -m 'Nightly backup'
cd ..
rm -rf $DIR