¿Qué formas hay de respaldar los repositorios para Windows VisualSVN?

15

En este momento estamos usando Visual SVN y estamos haciendo una copia de seguridad de todo el directorio de repositorios para visual svn. Esto respalda todos los datos de cada repositorio dentro de nuestro motor svn. Tengo curiosidad por saber si podré restaurar esos archivos en caso de emergencia o desastre. ¿Alguno de ustedes tiene experiencia con este procedimiento de restauración? Gracias.

Geo
fuente
1
Si no ha probado la restauración, entonces no puede tener ninguna confianza en su copia de seguridad.
Michael Hampton

Respuestas:

11

Ver: http://www.visualsvn.com/support/topic/00012/

Eso apunta a la siguiente documentación:
http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

Describe el uso de los comandos de Subversion para realizar una copia de seguridad. Espero que esto sea lo que ya está haciendo porque tomar una copia de seguridad de directorio directo puede resultar en tener un repositorio no utilizable.

Debería poder usar la copia de seguridad desde Subversion y usar svnadmin dumpo svnadmin hotcopycomando para restaurar el repositorio completo. Sin embargo, como con cualquier estrategia de copia de seguridad, debe probar la restauración usted mismo para asegurarse de que funcione para usted.

DCNYAM
fuente
8

A partir de la versión 3.6 de VisualSVN Server, el servidor incluye una función integrada de respaldo y restauración de repositorio programado . Además, la versión 3.6 agrega verificación programada de repositorios SVN.

La configuración de la copia de seguridad y verificación del repositorio programado para sus repositorios de Subversion es solo cuestión de minutos. Para obtener instrucciones paso a paso, consulte el artículo KB106: Introducción a la copia de seguridad y restauración .

Si busca una copia de seguridad única, puede usar el cmdlet Backup-SvnRepository PowerShell. Para recuperar el repositorio, use Restore-SvnRepository . Estos cmdlets de respaldo están disponibles a partir de la versión 3.6.

Descargue la última versión de VisualSVN Server desde la página de descarga principal .

ingrese la descripción de la imagen aquí


Hay varios métodos para hacer una copia de seguridad de los repositorios de VisualSVN Server. Consulte la breve descripción a continuación.

1. svnadmin hotcopyherramienta

svnadmin hotcopyle permite hacer una copia segura del repositorio, independientemente de si otros procesos están utilizando el repositorio. Puede escribir un script personalizado que haga la copia de seguridad de sus repositorios de forma regular.

Puede considerar el siguiente artículo del libro SVN para obtener más información sobre la copia de seguridad de los repositorios de Subversion: http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

2. svnsyncherramienta

Este es el método de copia de seguridad incremental. El método de respaldo incremental respalda solo la parte de los datos del repositorio que ha cambiado desde el respaldo anterior. Puede configurar esta herramienta para que funcione como "maestro" y "esclavo" y duplicar cualquier confirmación en sus repositorios automáticamente.

Consulte el artículo "svnsync" para obtener más detalles: http://www.visualsvn.com/support/svnbook/ref/svnsync/

3. Copia de seguridad del servidor de Windows. Puede usar Windows Server Backup para hacer una copia de seguridad de los repositorios de Subversion. Le permite programar copias de seguridad en un recurso compartido de red, volumen de copia de seguridad dedicado, medios grabables. Por ejemplo, la wbadminherramienta de línea de comandos le permite hacer una copia de seguridad de sus repositorios de manera segura. Este simple comando realiza una sola vez copia de seguridad C:\foo\barde X:\volumen:

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

(Para instalar Windows Server Backup, ejecute ocsetup WindowsServerBackupen el símbolo del sistema elevado).

Puede configurar la copia de seguridad de diferentes maneras:

No es necesario detener el servicio del servidor cuando ejecuta la copia de seguridad porque el backend del repositorio FSFS siempre está en estado coherente .

Aquí hay consejos generales sobre la recuperación de copias de seguridad de Windows Server:

  1. Recupere las copias de seguridad en un directorio vacío para asegurarse de que los archivos de repositorio restaurados no se mezclen con los archivos dañados. Después de recuperar el repositorio, puede eliminar el repositorio roto y luego reemplazarlo con el recuperado.

  2. Detener-iniciar el servidor de ciclo después de recuperar el repositorio de una copia de seguridad.

  3. Si sus clientes obtienen errores después de la recuperación del repositorio, ejecútelo svnadmin recover. El comando finaliza instantáneamente y hace que el repositorio sea accesible nuevamente.


Excepto los repositorios, debe hacer una copia de seguridad de la siguiente información:

  1. Los archivos de autenticación y autorización que se almacenan en la raíz de los repositorios ( 'C: \ Repositorios' por defecto). Dependiendo de su configuración, debería haber los siguientes archivos: 'authz' , 'authz-windows' y 'htpasswd' .

  2. Carpeta "% VISUALSVN_SERVER% \ certs \" donde se almacena la información sobre sus certificados SSL.

  3. Carpeta "% VISUALSVN_SERVER% \ conf \" donde se almacenan los archivos de configuración de su servidor VisualSVN.

  4. Clave de registro "HKEY_LOCAL_MACHINE \ SOFTWARE \ VisualSVN \ VisualSVN Server" donde se almacena otra parte de la configuración del servidor.

bahrep
fuente
1
Para su última opción, tendría que detener el servicio svn, de lo contrario corre el riesgo de hacer una copia de seguridad de un repositorio donde hay una confirmación activa que lo dejará corrupto.
Andy
5

Lo estoy haciendo por:

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

También puede rar / zip para ahorrar espacio. Estaba usando el mismo método cuando moví SVN de Linux a VisualSVN, por lo que esta copia de seguridad funciona como debería.

Alex
fuente
3

La forma más fácil y mejor de hacer copias de seguridad de un repositorio SVN es usar svnsync . Es una herramienta incremental que reproduce cualquier confirmación a un repositorio de respaldo. Es fácil comenzar, vea esta publicación de blog , y es rápido, ya que solo envía cambios. Tendrá que configurar un gancho posterior al cambio de prop-rev para captar el 'caso límite' de cuando alguien actualiza un revprop histórico, pero de lo contrario puede ejecutarlo cada hora (como lo hago yo) para mantener las copias de seguridad continuamente. ¡incluso puede ejecutarlo en el enlace posterior a la confirmación si es realmente paranoico con respecto a la copia de seguridad de datos!

Si su repositorio en vivo muere, puede simplemente "svn reubicarse" en el repositorio de respaldo hasta que vuelva a ejecutar el en vivo (sin embargo, tenga cuidado si escribe algo en el respaldo mientras el live está inactivo a menos que ejecute svnsync para obtener esos cambios aplicados al repositorio en vivo, que es bastante obvio cuando lo piensas).

Por lo tanto, tiene copias de seguridad continuas y el tiempo de inactividad se mide en segundos usándolo con un uso mínimo de recursos. ¡Las copias de seguridad no son mucho mejores que eso!

gbjbaanb
fuente
3

Otra opción es hotcopy . Realiza una copia de seguridad de todo su repositorio. Ocupa más espacio en disco, pero es muy fácil de ejecutar y también es muy fácil restaurar el repositorio utilizando esto.

swolff1978
fuente
2

VisualSVN es un producto de Windows, por lo que se ejecutará en Windows. Si la utilidad de copia de seguridad puede usar Volume Shadow Copy para hacer la copia de seguridad, entonces eso debería producir una copia de seguridad internamente consistente. El NTBACKUP incorporado o el software de terceros, como Symantec Backup Exec, o las herramientas de copia de seguridad basadas en disco integradas en Windows Server 2008 son capaces de usar Volume Shadow Copy.

Tim Long
fuente
Esto no será transaccionalmente sólido. Debe hacer que el servidor haga la copia de seguridad de una forma u otra, tal como lo hace para cualquier base de datos.
David Heffernan
En el caso de SQL Server, las copias de seguridad basadas en VSS son de hecho transaccionalmente seguras. En el caso del servidor VisualSVN, uno esperaría que, como servidor basado en Windows, se comportara correctamente cuando fuera respaldado por una de las soluciones de respaldo estándar de Windows, como lo hace SQL Server. No tengo evidencia para sugerir si lo hace o no.
Tim Long
Lo dudo. VisualSVN es simplemente svn empaquetado. Nunca he visto ninguna indicación de que tenga una copia de seguridad que se integre con VSS.
David Heffernan
0

Para aquellos que simplemente desean hacer una copia de seguridad de todos los repositorios en una instalación predeterminada de Visual SVN en un sistema Windows

Uso el siguiente script de cmd: volca todas las subcarpetas de la raíz del repositorio en la ruta de respaldo y las comprime en 7 .

@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
fuente