2012-02-16 1 views
1

Je gère un serveur, Alpha (Debian, et Fusion Forge (un système de gestion de projet Web)) avec ~ 200 Go de dépôts svn (environ 200 dépôts différents). Et j'essaie de gérer les sauvegardes quotidiennes des données vers un bêta de serveur de fichiers (sous Windows, il y a une copie delta) qui gère ensuite toutes les autres sauvegardes. Le problème est maintenant que je finis par transférer tous les 200Go tous les jours, et je ne fais pas bon usage de rsync.Rsyncing sauvegarde quotidienne complète effiecentlly

Actuellement, deux sauvegardes quotidiennes complètes sont stockées sur Alpha, elles sont générées par Fusion Forge tous les soirs, ce qui fait que le répertoire de sauvegarde ressemble à ceci.

$ ls alpha-backup 
cvsroot-tmp-2012-02-15.tar.bz2 etc-tmp-2012-02-15.tar.bz2   svn-repositories-2012-02-15 
cvsroot-tmp-2012-02-16.tar.bz2 etc-tmp-2012-02-16.tar.bz2   svn-repositories-2012-02-16 
db-alpha-tmp-2012-02-15.tar mailinglist-tmp-2012-02-15.tar.bz2 uploads-tmp-2012-02-15.tar.bz2 
db-alpha-tmp-2012-02-16.tar mailinglist-tmp-2012-02-16.tar.bz2 uploads-tmp-2012-02-16.tar.bz2 

Chaque nuit, la nouvelle sauvegarde est créée et l'ancienne est supprimée. J'ai essayé d'éviter de modifier ce processus jusqu'à présent, car ce n'est pas mon code.

Chaque répertoire svn-repositories contient environ 200GB le reste est petit en comparaison. Donc, quand svn-repositories-2012-02-16 est créé, il est très proche de svn-repositories-2012-02-15 sur le serveur de sauvegarde, mais rsync ne semble pas être capable de trouver ce chiffre et de copier uniquement les changements. J'ai essayé plusieurs variantes d'arguments sur rsync avec peu de succès, c'est ce qui est actuellement utilisé.

rsync -aq -P --inplace --delete --fuzzy /alpha-backup/. beta::alpha 

De toute façon je cherche quelque chose pour résoudre ce problème afin que mes sauvegardes ne prennent pas une éternité.

+0

Je voudrais configurer un référentiel svn esclave en tant que sauvegarde. De plus, gzip peut générer des archives amicales rsync (pas sûr pour bzip) – bobah

+0

Merci, j'ai effectivement tourné la fermeture éclair des archives SVN pour cette raison précise, je n'avais pas réalisé que gzip avait cette fonctionnalité, je vais devoir l'activer pour les autres fichiers. – lotu

Répondre

2

Je voudrais utiliser la commande svnsync.

  1. Créer un répertoire vide:
    svnadmin create c:\svn\backup_repo

  2. activer les modifications de propery:
    echo exit 0 >> c:\svn\backup_repo\hooks\pre-revprop-change.bat

  3. sauvegarde Initialiser:
    svnsync init c:\svn\backup_repo <path_to_alpha_repo>

  4. Begin la synchronisation:
    svnsync sync file:///c:/svn/backup_repo

La première exécution de la synchronisation (à savoir Étape 4), il faudra probablement beaucoup de temps. Cependant, une fois que vous êtes synchronisé avec HEAD, vous planifiez un travail rapide pour exécuter régulièrement svnsync sync file:///c:/svn/backup_repo et votre sauvegarde est toujours à jour. Ce sera une réplique exacte du référentiel SVN original, y compris les mêmes ID de révision, commentaires de journaux, etc.

+0

Merci, ils sont deux problèmes. D'abord, j'ai un tas de dépôts, je dois donc faire cela pour chacun et créer un script pour en ajouter de nouveaux quand ils seront ajoutés. En outre, je ne pense pas que cela va synchroniser toutes les méta-données, comme les permissions des utilisateurs, qui changent fréquemment :(. – lotu

0

Il existe des solutions commerciales qui traitent cela avec des sauvegardes à chaud telles que Subversion Clustering qui fonctionnent sur un LAN ou un WAN.

Questions connexes