fragen stichworte

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

Zurzeit 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 jeder von Ihnen Erfahrung mit diesem Wiederherstellungsverfahren? Vielen Dank.

antworten

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

Das zeigt auf folgende Dokumentation:
http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

Beschreibt die Verwendung der Subversion-Befehle zum Erstellen einer Sicherung. Ich hoffe, dass Sie dies bereits tun, da eine direkte Verzeichnissicherung zu einem nicht verwendbaren Repository führen kann.

Sie sollten die Sicherung von der Subversion verwenden und den Befehl svnadmin dump oder svnadmin hotcopy verwenden, um 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.

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

Das Einrichten einer geplanten Repository-Sicherung und Überprüfung für Ihre Subversion-Repositorys ist nur eine Frage von Minuten. Schrittweise Anweisungen finden Sie im Artikel KB106: Erste Schritte mit Sicherung und Wiederherstellung.

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

Laden Sie die neueste Version von VisualSVN Server von der Hauptseite-Download-Seite herunter.

enter image description here


Es gibt mehrere Methoden, um VisualSVN Server-Repositorys zu sichern. Überprüfen Sie die kurze Beschreibung unten.

1. svnadmin hotcopy Werkzeug

 Mit

svnadmin hotcopy können Sie eine sichere Kopie des Repositorys erstellen, unabhängig davon, ob andere Prozesse das Repository verwenden. Sie können ein benutzerdefiniertes Skript schreiben, das regelmäßig die Sicherung Ihrer Repositorys übernimmt.

Sie können den folgenden Artikel aus dem SVN-Buch lesen, um mehr über die Sicherung von Subversion-Repositorys zu erfahren: http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

2. svnsync Werkzeug

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" arbeitet 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. Sie können die Windows Server-Sicherung verwenden, um Subversion-Repositorys zu sichern. Sie können Backups auf eine Netzwerkfreigabe, ein dediziertes Backup-Volume und beschreibbare Medien aufteilen. Mit dem Befehlszeilentool wbadmin können Sie beispielsweise Ihre Repositorys sicher sichern. Dieser einfache Befehl führt eine einmalige Sicherungskopie von C:\foo\bar auf X:\ -Datenträger aus:

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

(Um die Windows Server-Sicherung zu installieren, führen Sie ocsetup WindowsServerBackup in der Eingabeaufforderung mit erhöhten Rechten aus).

Sie können ein Backup auf verschiedene Arten erstellen:

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

Hier finden Sie allgemeine Tipps zum Wiederherstellen von Windows Server-Sicherungen:

  1. Stellen Sie Sicherungen in einem leeren Verzeichnis wieder her, um sicherzustellen, dass wiederhergestellte Repository-Dateien nicht mit den fehlerhaften Dateien gemischt werden. Wenn das Repository wiederhergestellt ist, können Sie das beschädigte Repository löschen und durch das wiederhergestellte Repository ersetzen.

  2. Stopp-Start-Zyklus-Server nach Wiederherstellung des Repositorys aus einer Sicherung.

  3. Wenn Ihre Clients nach der Wiederherstellung des Repositorys Fehler erhalten, führen Sie svnadmin recover dagegen aus. Der Befehl wird sofort beendet und macht das Repository wieder zugänglich.


Außer Repositorys sollten Sie die folgenden Informationen sichern:

  1. Authentifizierungs- und Autorisierungsdateien, die im Stammverzeichnis der Repositorys gespeichert sind (standardmäßig 'C: \ Repositorys'). Je nach 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 sind.

  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.

Ich mache es nach:

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

Sie können ihn auch komprimieren, um Platz zu sparen. Ich habe dieselbe Methode verwendet, als ich SVN von Linux auf VisualSVN verschoben habe. Diese Sicherung funktioniert also wie erwartet.

Die einfachste und beste Methode zum Erstellen von Sicherungen eines SVN-Repos ist die Verwendung von svnsync. Es ist ein inkrementelles Tool, das alle Commits in einem Backup-Repository wiederholt. Es ist einfach, loszulegen - siehe diesen Blogbeitrag - und es ist schnell, da es nur Änderungen sendet. Sie müssen einen Post-rev-prop-change-Hook einrichten, um den "Randfall" der Aktualisierung einer historischen Revprop-Datei zu ermitteln. Andernfalls können Sie sie stündlich ausführen (wie ich), um Backups kontinuierlich zu halten. Sie können es sogar im Post-Commit-Hook ausführen, wenn Sie bei der Datensicherung wirklich paranoid sind!

Wenn Ihr Live-Repo stirbt, können Sie einfach "svn relocate" in das Backup-Repo verschieben, bis Sie Ihr Live-Repo erneut ausführen (Vorsicht, wenn Sie etwas in das Backup schreiben, solange das Live nicht aktiv ist, es sei denn, Sie führen svnsync aus um diese Änderungen auf das Live-Repo anzuwenden, was offensichtlich ist, wenn Sie darüber nachdenken).

Sie haben also kontinuierliche Sicherungen und können die Ausfallzeit in Sekunden mit minimalem Ressourcenverbrauch messen. Backups werden nicht viel besser als das!

Eine weitere Option ist hotcopy. Es erstellt eine Sicherungskopie Ihres gesamten Repositorys. Benötigt mehr Speicherplatz, ist aber sehr einfach auszuführen und auch das Repository mit diesem sehr einfach wiederherzustellen.

VisualSVN ist ein Windows-Produkt, daher wird es unter Windows ausgeführt. Wenn das Sicherungsprogramm Volume Shadow Copy zum Erstellen der Sicherung verwenden kann, sollte eine intern konsistente Sicherung erstellt werden. Die integrierte NTBACKUP-Software oder Software von Drittanbietern wie Symantec Backup Exec oder die in Windows Server 2008 integrierten, datenträgerbasierten Sicherungstools können alle mit Volume Shadow Copy arbeiten.

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

Ich verwende das folgende cmd-Skript - Es werden alle Unterordner des Repository-Stammverzeichnisses in den Sicherungspfad geschrieben und 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