À ce moment, nous utilisons Visual Svn et nous sauvegardons tout le répertoire de référentiels pour Visual SVN. Cela sauvegarde toutes les données pour chaque référentiel à l'intérieur de notre moteur SVN. Je suis curieux si je serai en mesure de restaurer ces fichiers en cas d'urgence ou d'une catastrophe? Vous avez-vous de l'expérience avec cette procédure de restauration? Merci.
Voir: http://www.visualsvn.com/support/topic/00012/
Cela pointe vers la documentation suivante:
[.____] http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup
Il décrit en utilisant les commandes de subversion pour prendre une sauvegarde. J'espère que c'est ce que vous faites déjà parce que la sauvegarde de répertoire consécutive peut entraîner un référentiel non utilisable.
Vous devriez pouvoir utiliser la sauvegarde de la subversion et utiliser svnadmin dump
ou svnadmin hotcopy
Commande de restauration du référentiel complet. Cependant, comme pour toute stratégie de sauvegarde, vous devez tester la restauration vous-même pour vous assurer que cela fonctionne pour vous.
Je le fais par:
svnadmin dump "c:/Repositories/svnroot" > c:/backup/svnroot_%date%.dump
Vous pouvez également rar/zip-le pour économiser de l'espace. J'utilisais la même méthode lorsque j'ai déplacé SVN de Linux à VisualSvn, de sorte que cette sauvegarde fonctionne comme elle devrait.
Le moyen le plus simple et le meilleur de faire des sauvegardes d'un repo SVN est d'utiliser svnsync . C'est un outil incrémental qui rejoue tout engagement à un référentiel de sauvegarde. Il est facile de se rendre - voir - ce blog post - et c'est rapide car il n'envoie que des modifications. Vous devrez configurer un crochet post-rev-rep-répons pour attraper le "cas de bord" du moment où une personne met à jour une révomption historique, mais sinon, vous pouvez l'exécuter toutes les heures (comme je le fais) pour garder des sauvegardes continuellement. Vous pouvez même l'exécuter dans le crochet post-validation si vous êtes vraiment paranoïaque à propos de la sauvegarde des données!
Si votre repo en direct meurt, vous pouvez alors simplement "svn déménager" à la repo de sauvegarde jusqu'à ce que vous viviez que vous viviez à nouveau en direct (cependant, soyez prudent si vous écrivez quelque chose à la sauvegarde tandis que la Live est réduite, à moins que vous ne svnsync pour obtenir ces Changements appliqués sur le repo en direct, qui est assez évident quand on y pense).
Vous avez donc des sauvegardes continues et des temps d'arrêt mesurés en quelques secondes en l'utilisant avec une utilisation minimale de ressources. Les sauvegardes ne sont pas bien meilleures que ça!
Une autre option est hotcopy . Cela fait une sauvegarde de votre référentiel complet. Prend plus d'espace disque, mais très facile à courir et également très facile à restaurer le référentiel à l'aide de cela.
VisualSVN est un produit Windows afin qu'il fonctionnera sous Windows. Si l'utilitaire de sauvegarde est capable d'utiliser une copie d'observation du volume pour effectuer la sauvegarde, cela devrait produire une sauvegarde cohérente en interne. Le logiciel intégré NTBackup ou tiers, tel que Symantec Backup Exec, ou les outils de sauvegarde basés sur disque intégrés à Windows Server 2008 sont tous capables d'utiliser une copie de volume Shadow.
Pour ceux qui souhaitent simplement sauvegarder tous les référentiels d'une installation par défaut de visual SVN sur un système Windows
J'utilise le script CMD suivant - il empêche tous les sous-dossiers de la racine de référentiel sur le chemin de sauvegarde et 7 zips eux.
@echo off
set svnAdminPath="C:\Program Files (x86)\VisualSVN Server\bin"
set sevenZipPath="C:\Program Files\7-Zip"
set repositoryRoot=d:\Repositories
set backupPath=c:\Source\Backup\SVN
set dateStamp=%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%
for /f %%f in ('dir /b /AD %%repositoryRoot%%') do (
call:dumpRepository %%f
call:zipLastDump
)
goto:eof
:dumpRepository
cd /d %svnAdminPath%
set repoPath=%repositoryRoot%/%~1
set dumpFile=%~1_%dateStamp%
echo.-------------------
echo.Dumping %~1 to %dumpFile%.dump
echo.-------------------
svnadmin dump "%repoPath%" > "%backupPath%\%dumpFile%.dump"
exit /b
:zipLastDump
cd /d %sevenZipPath%
set zipFile="%backupPath%\%dumpFile%.7z"
echo.-------------------
echo.Zipping %dumpFile%.dump to %zipFile%
echo.-------------------
7z a "%zipFile%" "%backupPath%\%dumpFile%.dump"
del "%backupPath%\%dumpFile%.dump"
exit /b