Welche Möglichkeiten gibt es, Repositorys für Windows VisualSVN zu sichern?


15

In diesem Moment verwenden wir Visual SVN und sichern das gesamte Repository-Verzeichnis für Visual SVN. Dies sichert die gesamten Daten für jedes Repository in unserer SVN-Engine. Ich bin neugierig, ob ich diese Dateien im Notfall oder bei einer Katastrophe wiederherstellen kann. Hat jemand von Ihnen Erfahrung mit diesem Wiederherstellungsverfahren? Vielen Dank.


1
Wenn Sie die Wiederherstellung noch nicht getestet haben, können Sie Ihrer Sicherung möglicherweise nicht vertrauen.
Michael Hampton

Antworten:


11

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

Dies verweist auf die folgende Dokumentation:
http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

Es beschreibt die Verwendung der Subversion-Befehle zum Erstellen einer Sicherungskopie. Ich hoffe, dass Sie dies bereits tun, da eine direkte Verzeichnissicherung dazu führen kann, dass ein Repository nicht mehr verwendet werden kann.

Sie sollten in der Lage sein, die Sicherung aus Subversion zu verwenden und mit svnadmin dumpoder den svnadmin hotcopyBefehl das vollständige Repository wiederherzustellen. Wie bei jeder Sicherungsstrategie müssen Sie die Wiederherstellung jedoch selbst testen, um sicherzustellen, dass sie für Sie funktioniert.


8

Ab der VisualSVN Server 3.6-Version enthält der Server eine integrierte Funktion zur geplanten Sicherung und Wiederherstellung des Repositorys . Darüber hinaus enthält die Version 3.6 eine geplante Überprüfung der SVN-Repositorys.

Das Einrichten einer geplanten Repository-Sicherung und -Überprüfung für Ihre Subversion-Repositorys ist nur eine Frage von Minuten. Eine schrittweise Anleitung finden Sie im Artikel KB106: Erste Schritte mit dem Sichern und Wiederherstellen .

Wenn Sie nach einer einmaligen Sicherung suchen, können Sie das PowerShell-Cmdlet Backup-SvnRepository verwenden. Verwenden Sie Restore-SvnRepository, um das Repository wiederherzustellen . Diese Sicherungs-Cmdlets sind ab Version 3.6 verfügbar.

Laden Sie die neueste Version von VisualSVN Server von der Hauptdownloadseite herunter .

Bildbeschreibung hier eingeben


Es gibt verschiedene Methoden zum Sichern von VisualSVN Server-Repositorys. Überprüfen Sie die kurze Beschreibung unten.

1. svnadmin hotcopyWerkzeug

svnadmin hotcopyermöglicht es Ihnen, eine sichere Kopie des Repository zu erstellen, unabhängig davon, ob andere Prozesse das Repository verwenden. Sie können ein benutzerdefiniertes Skript schreiben, das regelmäßig die Sicherung Ihrer Repositorys durchführt.

In dem folgenden Artikel aus dem SVN-Buch erfahren Sie mehr über die Sicherung von Subversion-Repositorys: http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

2. svnsyncWerkzeug

Dies ist die inkrementelle Sicherungsmethode. Die inkrementelle Sicherungsmethode sichert nur den Teil der Repository-Daten, der sich seit der vorherigen Sicherung geändert hat. Sie können dieses Tool so einrichten, dass es als "Master" und "Slave" fungiert und alle Commits automatisch in seine Repositorys dupliziert.

Weitere Informationen finden Sie im Artikel "svnsync": http://www.visualsvn.com/support/svnbook/ref/svnsync/

3. Windows Server-Sicherung. Mithilfe der Windows Server-Sicherung können Sie Subversion-Repositorys sichern. Sie können Backups auf einer Netzwerkfreigabe, einem dedizierten Backup-Volume und einem beschreibbaren Medium planen. Mit dem wbadminBefehlszeilentool können Sie beispielsweise Ihre Repositorys sicher sichern. Diese einfache Befehl führt eine einmalige Kopiesicherung C:\foo\barauf X:\Band:

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

(Um Windows Server Backup zu installieren, führen Sie ocsetup WindowsServerBackup Eingabeaufforderung mit erhöhten Rechten aus.)

Sie können das Backup auf verschiedene Arten einrichten:

Es ist nicht erforderlich, den Serverdienst zu stoppen, wenn Sie die Sicherung ausführen, da sich das FSFS-Repository-Backend immer im konsistenten Zustand befindet .

Hier sind allgemeine Tipps zum Wiederherstellen von Windows Server-Sicherungen:

  1. Stellen Sie Backups in einem leeren Verzeichnis wieder her, um sicherzustellen, dass sich wiederhergestellte Repository-Dateien nicht mit Dateien des defekten Verzeichnisses vermischen. Wenn das Repository wiederhergestellt ist, können Sie das beschädigte Repository löschen und durch das wiederhergestellte ersetzen.

  2. Starten Sie den Cycle Server nach dem Wiederherstellen des Repositorys aus einer Sicherung.

  3. Wenn Ihre Clients nach der Wiederherstellung des Repositorys Fehler erhalten, führen svnadmin recoverSie diese aus. Der Befehl wird sofort beendet und macht das Repository wieder verfügbar.


Mit Ausnahme von Repositorys sollten Sie die folgenden Informationen sichern:

  1. Authentifizierungs- und Autorisierungsdateien, die im Stammverzeichnis des Repositorys gespeichert sind ( standardmäßig 'C: \ Repositorys' ). Abhängig von Ihren Einstellungen sollten folgende Dateien vorhanden sein: 'authz' , 'authz-windows' und 'htpasswd' .

  2. Ordner "% VISUALSVN_SERVER% \ certs \", in dem Informationen zu Ihren SSL-Zertifikaten gespeichert werden.

  3. Ordner "% VISUALSVN_SERVER% \ conf \", in dem die Konfigurationsdateien Ihres VisualSVN-Servers gespeichert sind.

  4. Registrierungsschlüssel "HKEY_LOCAL_MACHINE \ SOFTWARE \ VisualSVN \ VisualSVN Server", in dem ein anderer Teil der Serverkonfiguration gespeichert ist.


1
Für Ihre letzte Option müssen Sie den svn-Dienst stoppen, da Sie sonst das Risiko eingehen, ein Repo zu sichern, bei dem ein aktiver Commit ausgeführt wird, der Ihre Sicherung beschädigt.
Andy

5

Ich mache es durch:

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

Sie können es auch rar / zip, um Platz zu sparen. Ich habe die gleiche Methode verwendet, als ich SVN von Linux nach VisualSVN verschoben habe, sodass diese Sicherung so funktioniert, wie sie sollte.


3

Der einfachste und beste Weg, um Backups eines SVN- Repos zu erstellen, ist die Verwendung von svnsync . Es ist ein inkrementelles Tool, das alle Festschreibungen für ein Backup-Repository wiederholt. Es ist einfach, loszulegen - zu sehen diesen Blog-Beitrag - und es ist schnell, da nur Änderungen gesendet werden. Sie müssen einen Post-Rev-Prop-Change-Hook einrichten, um den „Edge Case“ zu ermitteln, wenn jemand ein historisches Revprop aktualisiert. Andernfalls können Sie es stündlich ausführen (so wie ich), um Backups fortlaufend zu führen. Sie können es sogar im Post-Commit-Hook ausführen, wenn Sie in Bezug auf die Datensicherung wirklich paranoid sind!

Wenn Ihr Live-Repo abstirbt, können Sie einfach in das Backup-Repo "svn relocate", bis Ihr Live-Repo wieder ausgeführt wird. Seien Sie jedoch vorsichtig, wenn Sie während des Live-Abbruchs etwas in das Backup schreiben, es sei denn, Sie führen svnsync aus, um diese zu erhalten Änderungen, die auf das Live-Repo angewendet wurden (was ziemlich offensichtlich ist, wenn Sie darüber nachdenken).

So haben Sie kontinuierliche Backups und Ausfallzeiten, die mit minimalem Ressourcenverbrauch in Sekunden gemessen werden können. Backups werden nicht viel besser!


3

Eine weitere Option ist Hotcopy . Es wird ein Backup Ihres gesamten Repository erstellt. Nimmt mehr Speicherplatz in Anspruch, ist aber sehr einfach auszuführen und das Repository damit sehr einfach wiederherzustellen.


2

VisualSVN ist ein Windows-Produkt und wird daher unter Windows ausgeführt. Wenn das Sicherungsdienstprogramm Volume Shadow Copy zum Erstellen der Sicherung verwenden kann, sollte dies zu einer intern konsistenten Sicherung führen. Die integrierte NTBACKUP- oder Drittanbieter-Software wie Symantec Backup Exec oder die in Windows Server 2008 integrierten festplattenbasierten Sicherungstools können Volume Shadow Copy verwenden.


Dies ist nicht transaktionell korrekt. Sie müssen den Server dazu bringen, die Sicherung auf die eine oder andere Weise durchzuführen, genau wie Sie es für jede Datenbank tun.
David Heffernan

Im Fall von SQL Server sind VSS-basierte Sicherungen tatsächlich transaktionssicher. Im Fall eines VisualSVN-Servers würde man hoffen, dass er sich als Windows-basierter Server korrekt verhält, wenn er wie SQL Server von einer der Standard-Windows-Sicherungslösungen gesichert wird. Ich habe keine Anhaltspunkte dafür, ob dies der Fall ist oder nicht.
Tim Long

Das bezweifle ich. VisualSVN ist einfach svn verpackt. Ich habe noch nie einen Hinweis darauf gesehen, dass es ein Backup gibt, das in VSS integriert ist.
David Heffernan

0

Für diejenigen, die einfach alle Repositorys in einer Standardinstallation von Visual SVN auf einem Windows-System sichern möchten

Ich verwende das folgende Cmd-Skript - Es speichert alle Unterordner des Repository-Stammverzeichnisses im Sicherungspfad und komprimiert sie mit 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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.