Quali sono i modi per eseguire il backup dei repository per Windows VisualSVN?


15

In questo momento stiamo usando Visual SVN e stiamo eseguendo il backup dell'intera directory dei repository per visual svn. Questo esegue il backup di tutti i dati per ciascun repository all'interno del nostro motore svn. Sono curioso di sapere se sarò in grado di ripristinare quei file in caso di emergenza o disastro? Qualcuno di voi ha esperienza con questa procedura di restauro? Grazie.


1
Se non è stato effettivamente testato il ripristino, non è possibile avere alcuna fiducia nel backup.
Michael Hampton

Risposte:


11

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

Questo indica la seguente documentazione:
http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

Descrive l'utilizzo dei comandi Subversion per eseguire un backup. Spero che questo sia ciò che stai già facendo perché l'esecuzione di un backup diretto della directory può comportare un repository non utilizzabile.

Dovresti essere in grado di utilizzare il backup da Subversion e utilizzare svnadmin dumpo il svnadmin hotcopycomando per ripristinare l'intero repository. Tuttavia, come con qualsiasi strategia di backup, è necessario testare personalmente il ripristino per assicurarsi che funzioni per voi.


8

A partire dalla versione 3.6 di VisualSVN Server, il server include una funzione di backup e ripristino del repository pianificata integrata. Inoltre, la versione 3.6 aggiunge la verifica pianificata dei repository SVN.

L'impostazione del backup e della verifica del repository pianificati per i repository Subversion è solo questione di minuti. Per istruzioni dettagliate, consultare l'articolo KB106: Introduzione al backup e al ripristino .

Se si cerca un backup singolo, è possibile utilizzare il cmdlet Backup-SvnRepository PowerShell. Per ripristinare il repository, utilizzare Restore-SvnRepository . Questi cmdlet di backup sono disponibili a partire dalla versione 3.6.

Scarica l'ultima versione di VisualSVN Server dalla pagina di download principale .

inserisci qui la descrizione dell'immagine


Esistono diversi metodi per eseguire il backup dei repository del server VisualSVN. Controlla la breve descrizione di seguito.

1. svnadmin hotcopystrumento

svnadmin hotcopyconsente di creare una copia sicura del repository, indipendentemente dal fatto che altri processi stiano utilizzando il repository. È possibile scrivere uno script personalizzato che eseguirà il backup per i propri repository su base regolare.

Puoi leggere il seguente articolo dal libro SVN per saperne di più sul backup dei repository Subversion: http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

2. svnsyncstrumento

Questo è il metodo di backup incrementale. Il metodo di backup incrementale esegue il backup solo della parte dei dati del repository che è stata modificata rispetto al backup precedente. È possibile impostare questo strumento in modo che funzioni come "master" e "slave" e duplicare automaticamente tutti i commit nei suoi repository.

Vedere l'articolo "svnsync" per ulteriori dettagli: http://www.visualsvn.com/support/svnbook/ref/svnsync/

3. Windows Server Backup. È possibile utilizzare Windows Server Backup per eseguire il backup dei repository Subversion. Consente di trasferire i backup su una condivisione di rete, volume di backup dedicato, supporti scrivibili. Ad esempio, lo wbadminstrumento da riga di comando consente di eseguire il backup in sicurezza dei repository. Questo semplice comando esegue il backup una tantum della copia C:\foo\barsul X:\volume:

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

(Per installare Windows Server Backup, eseguire il ocsetup WindowsServerBackupprompt dei comandi con privilegi elevati).

È possibile configurare il backup in diversi modi:

Non è necessario arrestare il servizio del server quando si esegue il backup perché il back-end del repository FSFS è sempre in stato coerente .

Ecco alcuni suggerimenti generali sul ripristino dei backup di Windows Server:

  1. Ripristina i backup in una directory vuota per assicurarti che i file di repository ripristinati non si mescolino con i file di quello rotto. Dopo il repository se ripristinato, è possibile eliminare il repository danneggiato e sostituirlo con quello recuperato.

  2. Stop-start ciclo server dopo il ripristino del repository da un backup.

  3. Se i client ricevono errori dopo il ripristino del repository, eseguirlo svnadmin recover. Il comando termina immediatamente e rende nuovamente accessibile il repository.


Ad eccezione dei repository, è necessario eseguire il backup delle seguenti informazioni:

  1. File di autenticazione e autorizzazione archiviati nella radice dei repository ( "C: \ Repositories" per impostazione predefinita). A seconda delle impostazioni, dovrebbero essere presenti i seguenti file: 'authz' , 'authz-windows' e 'htpasswd' .

  2. Cartella "% VISUALSVN_SERVER% \ certs \" in cui sono archiviate le informazioni sui tuoi certificati SSL.

  3. "% VISUALSVN_SERVER% \ conf \" cartella in cui sono memorizzati i file di configurazione del tuo server VisualSVN.

  4. Chiave di registro "HKEY_LOCAL_MACHINE \ SOFTWARE \ VisualSVN \ VisualSVN Server" in cui è archiviata l'altra parte della configurazione del server.


1
Per la tua ultima opzione dovresti interrompere il servizio svn, altrimenti rischi di eseguire il backup di un repository in cui esiste un commit attivo che ti lascerà danneggiato il backup.
Andy,

5

Lo sto facendo:

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

Inoltre puoi rar / zip per risparmiare spazio. Stavo usando lo stesso metodo quando ho spostato SVN da Linux a VisualSVN, quindi questo backup funziona come dovrebbe.


3

Il modo più semplice e migliore per eseguire i backup di un repository SVN è utilizzare svnsync . È uno strumento incrementale che riproduce qualsiasi commit in un repository di backup. È facile iniziare - vedi questo post sul blog - ed è veloce in quanto invia solo modifiche. Dovrai impostare un hook post-rev-prop-change per catturare il "caso limite" di quando qualcuno aggiorna un revprop storico, ma altrimenti puoi eseguirlo ogni ora (come faccio io) per mantenere i backup continuamente. puoi persino eseguirlo nell'hook post-commit se sei davvero paranoico sul backup dei dati!

Se il tuo repository live muore, puoi semplicemente "svn riposizionare" nel repository di backup fino a quando non hai di nuovo quello live in esecuzione (tuttavia, fai attenzione se scrivi qualcosa sul backup mentre il live è inattivo a meno che non esegui svnsync per ottenere quelli modifiche applicate al repository live, il che è abbastanza ovvio se ci pensate).

Quindi hai backup continui e tempi di inattività misurati in pochi secondi utilizzandolo con un utilizzo minimo delle risorse. I backup non ottengono molto meglio di così!


3

Un'altra opzione è hotcopy . Fa un backup dell'intero repository. Occupa più spazio su disco, ma è molto facile da eseguire e anche molto facile da ripristinare repository usando questo.


2

VisualSVN è un prodotto Windows, quindi verrà eseguito su Windows. Se l'utilità di backup è in grado di utilizzare Volume Shadow Copy per eseguire il backup, ciò dovrebbe produrre un backup coerente internamente. Il NTBACKUP integrato o il software di terze parti come Symantec Backup Exec o gli strumenti di backup basati su disco integrati in Windows Server 2008 sono tutti in grado di utilizzare Volume Shadow Copy.


Questo non sarà corretto dal punto di vista transazionale. È necessario che il server esegua il backup in un modo o nell'altro, proprio come per qualsiasi database.
David Heffernan,

Nel caso di SQL Server, i backup basati su VSS sono di fatto sicuri per le transazioni. Nel caso del server VisualSVN, si spera che come server basato su Windows, si comporterebbe correttamente quando viene eseguito il backup da una delle soluzioni standard di backup di Windows, come fa SQL Server. Non ho prove per suggerire se lo faccia o meno.
Tim Long

Ne dubito. VisualSVN è semplicemente svn impacchettato. Non ho mai visto alcuna indicazione che abbia un backup che si integra con VSS.
David Heffernan,

0

Per coloro che desiderano semplicemente eseguire il backup di tutti i repository in un'installazione predefinita di Visual SVN su un sistema Windows

Uso il seguente script cmd: scarica tutte le sottocartelle della radice del repository sul percorso di backup e le zip 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.