Jakie są sposoby tworzenia kopii zapasowych repozytoriów dla Windows VisualSVN?


15

W tej chwili używamy Visual SVN i tworzymy kopię zapasową całego katalogu repozytoriów dla visual svn. To tworzy kopię zapasową wszystkich danych dla każdego repozytorium w naszym silniku svn. Jestem ciekawy, czy będę w stanie przywrócić te pliki w przypadku awarii lub katastrofy? Czy ktoś z was ma doświadczenie w tej procedurze przywracania? Dzięki.


1
Jeśli tak naprawdę nie przetestowałeś przywracania, nie możesz mieć zaufania do swojej kopii zapasowej.
Michael Hampton

Odpowiedzi:


11

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

Wskazuje to na następującą dokumentację:
http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

Opisuje użycie poleceń Subversion do wykonania kopii zapasowej. Mam nadzieję, że już to robisz, ponieważ wykonanie prostej kopii zapasowej katalogu może spowodować, że repozytorium nie będzie przydatne.

Powinieneś być w stanie użyć kopii zapasowej z Subversion i użyć svnadmin dumplub svnadmin hotcopypolecenia, aby przywrócić pełne repozytorium. Jednak, podobnie jak w przypadku każdej strategii tworzenia kopii zapasowych, musisz samodzielnie przetestować przywracanie, aby upewnić się, że zadziała.


8

Począwszy od wersji VisualSVN Server 3.6, serwer zawiera wbudowaną funkcję zaplanowanego tworzenia kopii zapasowych i przywracania repozytorium . Ponadto wersja 3.6 dodaje zaplanowaną weryfikację repozytoriów SVN.

Konfigurowanie zaplanowanej kopii zapasowej repozytorium i weryfikacji dla repozytoriów Subversion to tylko kwestia minut. Aby uzyskać instrukcje krok po kroku, zobacz artykuł KB106: Rozpoczęcie pracy z kopiami zapasowymi i przywracaniem .

Jeśli szukasz jednorazowej kopii zapasowej, możesz użyć polecenia cmdlet PowerShell Backup-SvnRepository . Aby odzyskać repozytorium, użyj Restore-SvnRepository . Te cmdlety kopii zapasowych są dostępne od wersji 3.6.

Pobierz najnowszą wersję serwera VisualSVN z głównej strony pobierania .

wprowadź opis zdjęcia tutaj


Istnieje kilka metod tworzenia kopii zapasowych repozytoriów serwera VisualSVN. Sprawdź krótki opis poniżej.

1. svnadmin hotcopynarzędzie

svnadmin hotcopyumożliwia wykonanie bezpiecznej kopii repozytorium, niezależnie od tego, czy inne procesy korzystają z repozytorium. Możesz napisać własny skrypt, który będzie regularnie tworzył kopię zapasową twoich repozytoriów.

Możesz przeczytać następujący artykuł z książki SVN, aby dowiedzieć się więcej o tworzeniu kopii zapasowych repozytoriów Subversion: http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

2. svnsyncnarzędzie

Jest to metoda przyrostowej kopii zapasowej. Metoda przyrostowej kopii zapasowej wykonuje kopię zapasową tylko części danych repozytorium, która zmieniła się od czasu poprzedniej kopii zapasowej. Możesz skonfigurować to narzędzie do pracy jako „master” i „slave” i automatycznie duplikować wszelkie zatwierdzenia do jego repozytoriów.

Więcej informacji można znaleźć w artykule „svnsync”: http://www.visualsvn.com/support/svnbook/ref/svnsync/

3. Kopia zapasowa systemu Windows Server. Możesz użyć Kopii zapasowej systemu Windows Server do tworzenia kopii zapasowych repozytoriów Subversion. Umożliwia tworzenie kopii zapasowych w udziale sieciowym, dedykowanym woluminie kopii zapasowej, nośniku do zapisu. Na przykład wbadminnarzędzie wiersza polecenia umożliwia bezpieczne tworzenie kopii zapasowych repozytoriów. To proste polecenie wykonuje jednorazową kopię zapasową C:\foo\barna X:\wolumin:

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

(Aby zainstalować kopię zapasową systemu Windows Server, uruchom ocsetup WindowsServerBackupw wierszu polecenia z podwyższonym poziomem uprawnień).

Kopię zapasową można skonfigurować na różne sposoby:

Po uruchomieniu kopii zapasowej nie jest wymagane zatrzymanie usługi serwera, ponieważ backend repozytorium FSFS jest zawsze w spójnym stanie .

Oto ogólne wskazówki dotyczące odzyskiwania kopii zapasowych systemu Windows Server:

  1. Odzyskaj kopie zapasowe do pustego katalogu, aby mieć pewność, że przywrócone pliki repozytorium nie zmieszają się z plikami uszkodzonego. Po odzyskaniu repozytorium można usunąć uszkodzone repozytorium, a następnie zastąpić je odzyskanym.

  2. Serwer cyklu zatrzymania i uruchomienia po odzyskaniu repozytorium z kopii zapasowej.

  3. Jeśli klienci otrzymają błędy po odzyskaniu repozytorium, uruchom svnadmin recovergo. Polecenie kończy się natychmiast i ponownie udostępnia repozytorium.


Z wyjątkiem repozytoriów, powinieneś wykonać kopię zapasową następujących informacji:

  1. Pliki uwierzytelniania i autoryzacji przechowywane w katalogu głównym repozytoriów ( domyślnie „C: \ Repositories” ). W zależności od ustawień powinny znajdować się następujące pliki: „authz” , „authz-windows” i „htpasswd” .

  2. Folder „% VISUALSVN_SERVER% \ certs \”, w którym przechowywane są informacje o certyfikatach SSL.

  3. Folder „% VISUALSVN_SERVER% \ conf \”, w którym przechowywane są pliki konfiguracyjne serwera VisualSVN.

  4. Klucz rejestru „HKEY_LOCAL_MACHINE \ SOFTWARE \ VisualSVN \ VisualSVN Server”, w którym przechowywana jest inna część konfiguracji serwera.


1
W przypadku ostatniej opcji musisz zatrzymać usługę svn, w przeciwnym razie ryzykujesz wykonanie kopii zapasowej repo, w której jest aktywne zatwierdzenie, które spowoduje uszkodzenie kopii zapasowej.
Andy

5

Robię to przez:

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

Możesz także spakować / zip, aby zaoszczędzić miejsce. Użyłem tej samej metody, kiedy przeniosłem SVN z Linuksa do VisualSVN, więc ta kopia zapasowa działa tak, jak powinna.


3

Najłatwiejszym i najlepszym sposobem tworzenia kopii zapasowych repozytorium SVN jest użycie svnsync . Jest to narzędzie przyrostowe, które odtwarza wszelkie zatwierdzenia do repozytorium kopii zapasowych. Łatwo jest zacząć - patrz ten post na blogu - i jest szybki, ponieważ wysyła tylko zmiany. Będziesz musiał ustawić hak po zmianie obrotów, aby złapać „przypadek krawędzi”, gdy ktoś aktualizuje historyczny poprawka, ale w przeciwnym razie możesz uruchamiać go co godzinę (tak jak ja), aby stale tworzyć kopie zapasowe. możesz nawet uruchomić go w haczyku po zatwierdzeniu, jeśli naprawdę masz paranoję na temat tworzenia kopii zapasowych danych!

Jeśli Twoje repozytorium na żywo umrze, możesz po prostu „przenieść svn” do repozytorium kopii zapasowej, dopóki nie uruchomisz jeszcze jednego repozytorium na żywo (należy jednak zachować ostrożność, jeśli napiszesz cokolwiek do kopii zapasowej, gdy transmisja jest wyłączona, chyba że uruchomisz svnsync, aby je uzyskać zmiany zastosowane w repozytorium na żywo, co jest dość oczywiste, gdy się nad tym zastanowić).

Dzięki temu masz ciągłe kopie zapasowe, a przestoje mierzone są w sekundach przy użyciu go przy minimalnym zużyciu zasobów. Kopie zapasowe nie są dużo lepsze!


3

Inną opcją jest hotcopy . Tworzy kopię zapasową całego repozytorium. Zajmuje więcej miejsca na dysku, ale jest bardzo łatwy do uruchomienia, a także bardzo łatwy do przywrócenia repozytorium przy użyciu tego.


2

VisualSVN to produkt Windows, więc będzie działał w systemie Windows. Jeśli narzędzie do tworzenia kopii zapasowych jest w stanie użyć kopii woluminu w tle do wykonania kopii zapasowej, powinno to zapewnić wewnętrznie spójną kopię zapasową. Wbudowane oprogramowanie NTBACKUP lub oprogramowanie innych firm, takie jak Symantec Backup Exec, lub narzędzia do tworzenia kopii zapasowych na dyskach wbudowane w system Windows Server 2008 mogą korzystać z funkcji kopiowania woluminów w tle.


Nie będzie to uzasadnione transakcyjnie. Musisz poprosić serwer o wykonanie kopii zapasowej w taki czy inny sposób, tak jak w przypadku dowolnej bazy danych.
David Heffernan,

W przypadku SQL Server kopie zapasowe oparte na VSS są w rzeczywistości bezpieczne transakcyjnie. W przypadku serwera VisualSVN można mieć nadzieję, że jako serwer oparty na systemie Windows zachowa się poprawnie, gdy zostanie utworzona kopia zapasowa przez jedno ze standardowych rozwiązań do tworzenia kopii zapasowych systemu Windows, tak jak robi to SQL Server. Nie mam dowodów sugerujących, czy to robi, czy nie.
Tim Long,

Wątpię. VisualSVN jest po prostu spakowany w svn. Nigdy nie widziałem żadnych oznak, że ma kopię zapasową zintegrowaną z VSS.
David Heffernan,

0

Dla tych, którzy chcą po prostu wykonać kopię zapasową wszystkich repozytoriów w domyślnej instalacji Visual SVN w systemie Windows

Używam następującego skryptu cmd - zrzuca wszystkie podfoldery katalogu głównego repozytorium do ścieżki kopii zapasowej i zamyka je 7-suwakami .

@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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.