Pregunta

Soy nuevo en el SVN y me gustaría saber qué métodos están disponibles para la copia de seguridad de los repositorios en un entorno de Windows?

¿Fue útil?

Solución

Usted podría usar algo como (Linux):

svnadmin dump repositorypath | gzip > backupname.svn.gz

Desde Windows no es compatible con GZip es simplemente:

svnadmin dump repositorypath > backupname.svn

Otros consejos

Utilizamos svnadmin hotcopy, por ejemplo:

svnadmin hotcopy C:\svn\repo D:\backups\svn\repo

Como por el libro:

Puede ejecutar este comando en cualquier momento y hacer una copia de seguridad del repositorio, independientemente de otros procesos están utilizando el repositorio.

Usted puede, por supuesto, ZIP (preferiblemente 7-Zip) de la copia de seguridad.En mi humilde opinión Es la más sencilla de las opciones de copia de seguridad:en caso de desastre, hay poco más que hacer que descomprimir de nuevo en su posición.

Hay un hotbackup.py secuencia de comandos disponibles en la Subversión sitio web que es muy útil para automatizar las copias de seguridad.

http://svn.apache.org/repos/asf/subversion/trunk/tools/backup/hot-backup.py.in

Aquí es un script en Perl que:

  1. Copia de seguridad de la repo
  2. Copiar a otro servidor a través de SCP
  3. Recuperar la copia de seguridad
  4. Crear una prueba repositorio de la copia de seguridad
  5. Hacer una prueba de checkout
  6. De correo electrónico con los errores (a través de cron)

La secuencia de comandos:

my $svn_repo = "/var/svn";  
my $bkup_dir = "/home/backup_user/backups";
my $bkup_file = "my_backup-";
my $tmp_dir = "/home/backup_user/tmp";   
my $bkup_svr = "my.backup.com";
my $bkup_svr_login = "backup";

$bkup_file = $bkup_file . `date +%Y%m%d-%H%M`;
chomp $bkup_file;
my $youngest = `svnlook youngest $svn_repo`;
chomp $youngest;

my $dump_command = "svnadmin  -q dump $svn_repo > $bkup_dir/$bkup_file ";
print "\nDumping Subversion repo $svn_repo to $bkup_file...\n";
print `$dump_command`;
print "Backing up through revision $youngest... \n";
print "\nCompressing dump file...\n";
print `gzip -9 $bkup_dir/$bkup_file\n`;
chomp $bkup_file;
my $zipped_file = $bkup_dir . "/" . $bkup_file . ".gz";
print "\nCreated $zipped_file\n";
print `scp $zipped_file $bkup_svr_login\@$bkup_svr:/home/backup/`;
print "\n$bkup_file.gz transfered to $bkup_svr\n";

#Test Backup
print "\n---------------------------------------\n";
print "Testing Backup";
print "\n---------------------------------------\n";
print "Downloading $bkup_file.gz from $bkup_svr\n";
print `scp $bkup_svr_login\@$bkup_svr:/home/backup/$bkup_file.gz $tmp_dir/`;
print "Unzipping $bkup_file.gz\n";
print `gunzip $tmp_dir/$bkup_file.gz`;
print "Creating test repository\n";
print `svnadmin create $tmp_dir/test_repo`;
print "Loading repository\n";
print `svnadmin -q load $tmp_dir/test_repo < $tmp_dir/$bkup_file`;
print "Checking out repository\n";
print `svn -q co file://$tmp_dir/test_repo $tmp_dir/test_checkout`;
print "Cleaning up\n";
print `rm -f $tmp_dir/$bkup_file`;
print `rm -rf $tmp_dir/test_checkout`;
print `rm -rf $tmp_dir/test_repo`;

Fuente de secuencias de comandos y más detalles acerca de la razón por la que este tipo de copia de seguridad.

Yo uso svnsync, lo que configura un servidor remoto como un espejo/esclavo.Tuvimos un servidor de baja otras dos semanas, y yo era capaz de cambiar el esclavo en posición primaria con bastante facilidad (sólo había que reponer el UUID en el esclavo repositorio a la original).

Otro beneficio es que la sincronización puede ser dirigida por un medio-hombre, más que como una tarea en el servidor.He tenido un cliente a dos VPNs de sincronización de un repositorio de entre ellos.

svnadmin hotcopy

svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH

Este subcomando hace un completo "caliente" copia de seguridad de su repositorio, incluyendo todos los ganchos, los archivos de configuración, y, por supuesto, archivos de base de datos.

svnbackup más en Google Code, una .NETO de la aplicación de consola.

  • Usted puede crear un repositorio de copias de seguridad (volcado) con svnadmin dump.

  • A continuación, puede importar que en el uso de svnadmin load.

Referencia detallada en el SVNBook:"Repositorio de migración de datos utilizando svnadmin"

Básicamente es seguro para copiar la carpeta del repositorio si el servidor svn se detiene.(fuente: https://groups.google.com/forum/?fromgroups#!tema/visualsvn/i_55khUBrys%5B1-25%5D )

Así que si usted está autorizado para detener el servidor, y sólo tienes que copiar el repositorio, ya sea con algún script o una herramienta de copia de seguridad.Cobian Backup encaja aquí muy bien, ya que puede iniciar y detener servicios de forma automática, y puede hacer copias de seguridad incrementales así que usted es sólo la copia de seguridad de las partes de repositorio que se han modificado recientemente (útil si el repositorio es grande y retrocedes a la ubicación remota).

Ejemplo:

  1. Instalar Cobian Backup
  2. Agregar una tarea de copia de seguridad:

    • Ajuste la fuente a la carpeta de repositorio (por ejemplo, C:\Repositories\),

    • Añadir pre-evento de copia de seguridad "STOP_SERVICE" VisualSVN,

    • Agregar post-evento de copia de seguridad, "START_SERVICE" VisualSVN,

    • Establecer otras opciones como sea necesario. Hemos creado copias de seguridad incrementales, incluida la eliminación de los viejos, programación de copia de seguridad, el destino, la compresión incl.la división de archivos, etc.

  3. La ganancia!

hay 2 métodos principales para la copia de seguridad de un servidor svn, el primero es hotcopy que va a crear una copia de los archivos del repositorio, el principal problema con este enfoque es que guarda información sobre el sistema de archivos subyacente, por lo que puede tener algunas dificultades tratando de repostore este tipo de copia de seguridad en otro servidor svn u otro tipo de máquina.hay otro tipo de copia de seguridad llamado volcado, esta copia de seguridad no guardar la información del sistema de archivos subyacente y sus potable a cualquier tipo de servidor SVN base en tigiris.org la subversión.

acerca de la herramienta de copia de seguridad puede utilizar el svnadmin herramienta(que es capaz de hacer hotcopy y volcado) desde el símbolo del sistema, esta consola reside en el mismo directorio donde el servidor svn vidas o usted puede buscar en google para svn herramientas de copia de seguridad.

mi recomendación es que lo hagas de ambos tipos de copias de seguridad y salir de la oficina a su cuenta de correo electrónico, servicio de amazon s3, ftp, o azure servicios, de esa manera usted tendrá un securityy de copia de seguridad sin tener que alojar el servidor svn en algún lugar fuera de su oficina.

Aquí una interfaz gráfica de usuario de Windows herramienta para hacer un volcado de local y remota de los repositorios de subversion:

https://falsinsoft-software.blogspot.com/p/svn-backup-tool.html

La descripción de la herramienta dice:

Esto, simplemente, la herramienta permite realizar un volcado de copia de seguridad de un local y remoto repositorio de subversion.El software funciona en la misma manera de la "svnadmin" pero no es una interfaz gráfica de encima.En lugar de utilizar directamente la subversión de las bibliotecas para permitir a crear volcado en modo independiente, sin ninguna otra herramienta adicional.

Espero que esta ayuda...

Me gusta sólo tienes que copiar todo repo directorio a la ubicación de copia de seguridad.De esa manera, si algo sucede, usted puede simplemente copiar el directorio de estar de vuelta y listo para ir de inmediato.

Sólo asegúrese de preservar los permisos, si es necesario.Generalmente, esta es sólo una preocupación en máquinas Linux.

Alojado en los repositorios se puede desde svn versión 1.7 uso svnrdump, que es análoga a svnadmin dump para los repositorios locales.Este artículo proporciona un agradable paseo-a través de, lo que en esencia se reduce a:

svnrdump dump /URL/to/remote/repository > myRepository.dump

Después de haber descargado el archivo de volcado puede importar de forma local

svnadmin load /path/to/local/repository < myRepository.dump

o subirlo al host de su elección.

Si usted está utilizando el FSFS formato de repositorio (el valor predeterminado), entonces usted puede copiar el repositorio de sí mismo para hacer una copia de seguridad.Con la mayor BerkleyDB sistema, el depósito no es independiente de la plataforma y por lo general, desea utilizar svnadmin dump.

El svnbook tema de documentación para la copia de seguridad recomienda la svnadmin hotcopy comando, ya que tendrá la atención de temas como archivos en uso y tal.

@echo off
set hour=%time:~0,2%
if "%hour:~0,1%"==" " set hour=0%time:~1,1%
set folder=%date:~6,4%%date:~3,2%%date:~0,2%%hour%%time:~3,2%

echo Performing Backup
md "\\HOME\Development\Backups\SubVersion\%folder%"

svnadmin dump "C:\Users\Yakyb\Desktop\MainRepositary\Jake" | "C:\Program Files\7-Zip\7z.exe" a "\\HOME\Development\Backups\SubVersion\%folder%\Jake.7z" -sibackupname.svn

Este es el Archivo de proceso por Lotes que tengo instalado que realiza las Copias de seguridad

Para el día a día y completa solución de copia de seguridad sólo el uso de la SVN scripts de copia de seguridad aquí.

He recopilado los pasos que he seguido para el propósito de tomar una copia de seguridad de la remota SVN repositorio de mi proyecto.

install svk (http://svk.bestpractical.com/view/SVKWin32)

install svn (http://sourceforge.net/projects/win32svn/files/1.6.16/Setup-Subversion-1.6.16.msi/download)

svk mirror //local <remote repository URL>

svk sync //local

Esto toma tiempo y dice que es la captura de los registros del repositorio.Crea una serie de archivos dentro de C:\Documents and Settings\nverma\.svk\local.

Para actualizar este repositorio local con el conjunto más reciente de los cambios desde el mando a uno, solo hay que ejecutar el comando anterior, de vez en cuando.

Ahora puedes jugar con tu repositorio local (/home/user/.svk/local en este ejemplo) como si fuera normal repositorio SVN!

El único problema con este enfoque es que el repositorio local se crea con una revisión de los incrementos de la revisión real en el repositorio remoto.Como alguien escribió:

El svk miror comando genera un commit en el repositorio creado.Así que todo el que comete creado por la posterior sincronización tendrá números de revisión incrementa en uno como en comparación con el control remoto repositorio público.

Pero, esto estaba bien para mí, ya que sólo quería un poco de copia de seguridad al repositorio remoto, tiempo al tiempo, nada más.

Verificación:

Para comprobar, utilice el cliente de SVN con el repositorio local como este:

svn checkout "file:///C:/Documents and Settings\nverma/.svk/local/"  <local-dir-path-to-checkout-onto>

Este comando, va a la caja de la revisión más reciente del repositorio local.Al final dice Checked out revision N.Este N era uno más de la actual revisión se encuentra en el repositorio remoto (debido al problema mencionado anteriormente).

Para comprobar que svk también trajo toda la historia, el SVN checkout se ejecute con varias revisiones anteriores utilizando -r con 2, 10, 50, etc.A continuación, los archivos en <local-dir-path-to-checkout-onto> se confirmó que a partir de esa revisión.

Al final, zip en el directorio C:/Documents and Settings\nverma/.svk/local/ y almacenar el zip en cualquier lugar.Siga haciendo esto regularmente.

como otros han dicho, hot-backup.py a partir de la Subversión equipo que tiene algunas características más simplemente svnadmin hotcopy

Puedo ejecutar una tarea programada en una secuencia de comandos de python que las arañas por todos mis repositorios en la máquina, y utiliza hotbackup para mantener varios días de hotcopies (paranoide de la corrupción) y un svnadmin svndump en una máquina remota.La restauración es muy fácil de que - hasta la fecha.

1.1 Crear Volcado desde el SVN (Subversion) repositorio

svnadmin dump /path/to/reponame > /path/to/reponame.dump

Ejemplo Real

svnadmin dump /var/www/svn/testrepo > /backups/testrepo.dump

1.2 Gzip Creado Volcado

gzip -9 /path/to/reponame.dump

Ejemplo Real

gzip -9 /backups/testrepo.dump

1.3 SVN Volcado y Gzip Volcado con One-liner

svnadmin dump /path/to/reponame | gzip -9 > /path/to/reponame.dump.gz

Ejemplo Real

svnadmin dump /var/www/svn/testrepo |Â gzip -9 > /backups/testrepo.dump.gz

Cómo hacer Copia de seguridad (volcado) y de Restauración (carga) SVN (Subversion) repositorio de Linux.
Ref: svn subversion de copia de seguridad andrestore

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top