web-dev-qa-db-fra.com

Quels moyens il y a pour sauvegarder des référentiels pour Windows Visuorsvn?

À 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.

15
Geo

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.

11
DCNYAM

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.

5
Alex

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!

3
gbjbaanb

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.

3
swolff1978

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.

2
Tim Long

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
0
JDizzle