Quelles sont les façons de sauvegarder des référentiels pour Windows VisualSVN?

15

En ce moment, nous utilisons Visual SVN et nous sauvegardons l'intégralité du répertoire des référentiels pour visual svn. Cela sauvegarde l'intégralité des données de chaque référentiel dans notre moteur svn. Je suis curieux de savoir si je pourrai restaurer ces fichiers en cas d'urgence ou de catastrophe? L'un d'entre vous a de l'expérience avec cette procédure de restauration? Merci.

Géo
la source
1
Si vous n'avez pas réellement testé la restauration, vous ne pouvez pas avoir confiance en votre sauvegarde.
Michael Hampton

Réponses:

11

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 l'utilisation des commandes Subversion pour effectuer une sauvegarde. J'espère que c'est ce que vous faites déjà car prendre une sauvegarde de répertoire directe peut avoir un référentiel non utilisable.

Vous devriez pouvoir utiliser la sauvegarde à partir de Subversion et utiliser la commande svnadmin dumpou svnadmin hotcopypour restaurer le référentiel complet. Cependant, comme pour toute stratégie de sauvegarde, vous devez tester la restauration vous-même pour vous assurer qu'elle fonctionne pour vous.

DCNYAM
la source
8

À partir de la version 3.6 de VisualSVN Server, le serveur comprend une fonction de sauvegarde et de restauration du référentiel planifié intégrée. De plus, la version 3.6 ajoute une vérification planifiée des référentiels SVN.

La configuration de la sauvegarde et de la vérification planifiées du référentiel pour vos référentiels Subversion ne prend que quelques minutes. Pour obtenir des instructions pas à pas, consultez l'article KB106: Prise en main de la sauvegarde et de la restauration .

Si vous recherchez une sauvegarde ponctuelle, vous pouvez utiliser la cmdlet Backup-SvnRepository PowerShell. Pour récupérer le référentiel, utilisez Restore-SvnRepository . Ces applets de commande de sauvegarde sont disponibles à partir de la version 3.6.

Téléchargez la dernière version de VisualSVN Server à partir de la page de téléchargement principale .

entrez la description de l'image ici


Il existe plusieurs méthodes pour sauvegarder les référentiels du serveur VisualSVN. Consultez la courte description ci-dessous.

1. svnadmin hotcopyoutil

svnadmin hotcopyvous permet de faire une copie sécurisée du référentiel, que les autres processus utilisent ou non le référentiel. Vous pouvez écrire un script personnalisé qui effectuera régulièrement la sauvegarde de vos référentiels.

Vous pouvez consulter l'article suivant du livre SVN pour en savoir plus sur la sauvegarde des référentiels Subversion: http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

2. svnsyncoutil

Il s'agit de la méthode de sauvegarde incrémentielle. La méthode de sauvegarde incrémentielle sauvegarde uniquement la partie des données du référentiel qui a changé depuis la sauvegarde précédente. Vous pouvez configurer cet outil pour fonctionner en tant que «maître» et «esclave» et dupliquer automatiquement toutes les validations dans ses référentiels.

Voir l'article "svnsync" pour plus de détails: http://www.visualsvn.com/support/svnbook/ref/svnsync/

3. Sauvegarde de Windows Server. Vous pouvez utiliser la sauvegarde Windows Server pour sauvegarder les référentiels Subversion. Il vous permet de planifier des sauvegardes sur un partage réseau, un volume de sauvegarde dédié, un support inscriptible. Par exemple, l' wbadminoutil de ligne de commande vous permet de sauvegarder en toute sécurité vos référentiels. Cette simple commande effectue un temps de sauvegarde de copie C:\foo\barà X:\volume:

wbadmin start backup –backupTarget:x: -include:c\foo\bar -vsscopy

(Pour installer la sauvegarde de Windows Server, exécutez ocsetup WindowsServerBackupdans une invite de commande élevée).

Vous pouvez configurer la sauvegarde de différentes manières:

Il n'est pas nécessaire d'arrêter le service du serveur lorsque vous exécutez la sauvegarde car le backend du référentiel FSFS est toujours dans un état cohérent .

Voici des conseils généraux sur la récupération des sauvegardes Windows Server:

  1. Récupérez les sauvegardes dans un répertoire vide pour vous assurer que les fichiers du référentiel restaurés ne se mélangeront pas avec les fichiers du fichier cassé. Après le référentiel s'il est récupéré, vous pouvez supprimer le référentiel cassé, puis le remplacer par celui récupéré.

  2. Serveur de cycle d'arrêt-démarrage après la récupération du référentiel à partir d'une sauvegarde.

  3. Si vos clients obtiennent des erreurs après la récupération du référentiel, exécutez- svnadmin recoverle. La commande se termine instantanément et rend à nouveau le référentiel accessible.


À l'exception des référentiels, vous devez sauvegarder les informations suivantes:

  1. Fichiers d'authentification et d'autorisation stockés à la racine des référentiels ( 'C: \ Repositories' par défaut). Selon vos paramètres, il devrait y avoir les fichiers suivants: «authz» , «authz-windows» et «htpasswd» .

  2. Dossier "% VISUALSVN_SERVER% \ certs \" où sont stockées les informations sur vos certificats SSL.

  3. Dossier "% VISUALSVN_SERVER% \ conf \" où sont stockés les fichiers de configuration de votre serveur VisualSVN.

  4. Clé de Registre "HKEY_LOCAL_MACHINE \ SOFTWARE \ VisualSVN \ VisualSVN Server" où une autre partie de la configuration du serveur est stockée.

bahrep
la source
1
Pour votre dernière option, vous devez arrêter le service svn, sinon vous risquez de sauvegarder un dépôt où il y a un commit actif qui vous laissera corrompu la sauvegarde.
Andy
5

Je le fais en:

svnadmin dump "c:/Repositories/svnroot" > c:/backup/svnroot_%date%.dump

Vous pouvez également le rar / zip pour économiser de l'espace. J'utilisais la même méthode lorsque j'ai déplacé SVN de Linux vers VisualSVN, donc cette sauvegarde fonctionne comme il se doit.

Alex
la source
3

La manière la plus simple et la meilleure de faire des sauvegardes d'un dépôt SVN est d'utiliser svnsync . C'est un outil incrémentiel qui rejoue toutes les validations dans un référentiel de sauvegarde. C'est facile à démarrer - voir cet article de blog - et c'est rapide car il n'envoie que des modifications. Vous devrez configurer un hook post-rev-prop-change pour attraper le `` cas de bord '' lorsque quelqu'un met à jour un revprop historique, mais sinon vous pouvez l'exécuter toutes les heures (comme je le fais) pour conserver les sauvegardes en continu. vous pouvez même l'exécuter dans le hook post-commit si vous êtes vraiment paranoïaque à propos de la sauvegarde de données!

Si votre repo en direct meurt, vous pouvez alors simplement "svn relocaliser" vers le repo de sauvegarde jusqu'à ce que vous ayez à nouveau un live en cours d'exécution (cependant, soyez prudent si vous écrivez quoi que ce soit dans la sauvegarde pendant que le live est en panne, sauf si vous exécutez svnsync pour les récupérer) changements appliqués au repo en direct, ce qui est assez évident quand on y pense).

Vous disposez donc de sauvegardes continues et d'un temps d'indisponibilité mesuré en secondes en l'utilisant avec une utilisation minimale des ressources. Les sauvegardes ne sont pas beaucoup mieux que ça!

gbjbaanb
la source
3

Une autre option est la copie à chaud . Il fait une sauvegarde de l'ensemble de votre référentiel. Prend plus d'espace disque, mais très facile à exécuter et également très facile à restaurer le référentiel en utilisant cela.

swolff1978
la source
2

VisualSVN est un produit Windows, il s'exécutera donc sur Windows. Si l'utilitaire de sauvegarde est capable d'utiliser le cliché instantané des volumes pour effectuer la sauvegarde, cela devrait produire une sauvegarde cohérente en interne. Le NTBACKUP intégré ou des logiciels tiers tels que Symantec Backup Exec ou les outils de sauvegarde sur disque intégrés à Windows Server 2008 sont tous capables d'utiliser Volume Shadow Copy.

Tim Long
la source
Ce ne sera pas solide sur le plan des transactions. Vous devez obliger le serveur à effectuer la sauvegarde d'une manière ou d'une autre, comme vous le faites pour n'importe quelle base de données.
David Heffernan
Dans le cas de SQL Server, les sauvegardes basées sur VSS sont en fait sécurisées pour les transactions. Dans le cas du serveur VisualSVN, on peut espérer qu'en tant que serveur Windows, il se comportera correctement lorsqu'il sera sauvegardé par l'une des solutions de sauvegarde Windows standard, comme le fait SQL Server. Je n'ai aucune preuve pour suggérer si oui ou non.
Tim Long
J'en doute. VisualSVN est simplement svn empaqueté. Je n'ai jamais vu d'indication qu'il a une sauvegarde qui s'intègre avec VSS.
David Heffernan
0

Pour ceux qui souhaitent simplement sauvegarder tous les référentiels dans une installation par défaut de Visual SVN sur un système Windows

J'utilise le script cmd suivant - Il vide tous les sous-dossiers de la racine du référentiel dans le chemin de sauvegarde et les 7-zips .

@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
JDizzle
la source