Strategie tworzenia kopii zapasowych repozytoriów SVN

Jestem nowy w SVN i chciałbym wiedzieć, jakie metody są dostępne do tworzenia kopii zapasowych repozytoriów w środowisku Windows?

Author: Flexo, 2008-08-28

19 answers

Przydałoby się coś w rodzaju (Linux):

svnadmin dump repositorypath | gzip > backupname.svn.gz

Ponieważ Windows nie obsługuje GZip to jest po prostu:

svnadmin dump repositorypath > backupname.svn
 177
Author: Nicolai Reuschling,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-01 09:42:28

Używamy svnadmin hotcopy, np.:

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

Według księgi :

Możesz uruchomić to polecenie w dowolnym momencie i wykonać bezpieczną kopię repozytorium, niezależnie od tego, czy inne procesy używają repozytorium.

Możesz oczywiście spakować (najlepiej 7-Zip) kopię zapasową. IMHO to najprostsza z opcji tworzenia kopii zapasowych: w przypadku katastrofy nie ma nic innego do zrobienia niż rozpakowanie go z powrotem na miejsce.

 106
Author: Duncan Smart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-28 21:39:52

Jest hotbackup.py skrypt dostępny na stronie Subversion, który jest bardzo przydatny do automatyzacji tworzenia kopii zapasowych.

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

 24
Author: Kevin Dente,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-02 21:42:23

Oto skrypt Perla, który będzie:

  1. Kopia zapasowa repo
  2. skopiuj go na inny serwer przez SCP
  3. Odzyskaj kopię zapasową
  4. Utwórz testowe repozytorium z kopii zapasowej
  5. Do a test checkout
  6. wyślij e-mail z wszelkimi błędami (przez cron)

Scenariusz:

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`;

Źródło skryptu i więcej szczegółów na temat rational dla tego typu kopii zapasowej.

 22
Author: 3 revs, 2 users 79%Mark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-07 18:22:10

Używam svnsync , który ustawia zdalny serwer jako mirror/slave. Dwa tygodnie temu padł nam serwer i udało mi się dość łatwo przełączyć slave na pozycję główną (musiałem tylko zresetować UUID w repozytorium slave do oryginału).

Kolejną zaletą jest to, że synchronizacja może być uruchamiana przez pośrednika, a nie jako zadanie na którymś z serwerów. Miałem klienta do dwóch VPN synchronizujących repozytorium między nimi.

 19
Author: Thomas G. Mayfield,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-15 15:15:28

Svnadmin hotcopy

svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH

Ta komenda tworzy pełną" gorącą " kopię zapasową repozytorium, zawierającą wszystkie Hooki, pliki konfiguracyjne i, oczywiście, pliki baz danych.

 11
Author: Adam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-04 19:17:09

Svnbackup w Google Code, aplikacji konsolowej. NET.

 10
Author: Uwe Keim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-02 19:39:50
  • Możesz utworzyć kopię zapasową repozytorium (dump) za pomocą svnadmin dump.

  • Następnie można go zaimportować za pomocą svnadmin load.

Szczegółowe odniesienie w SVNBook: "migracja danych repozytorium przy użyciu svnadmin"

 10
Author: RobotCaleb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-02 23:12:16

Zasadniczo kopiowanie folderu repozytorium jest bezpieczne, jeśli serwer svn zostanie zatrzymany. (źródło: https://groups.google.com/forum/?fromgroups#! topic/visualsvn / i_55khUBrys%5B1-25% 5D)

Więc jeśli możesz zatrzymać serwer, zrób to i po prostu skopiuj repozytorium, za pomocą jakiegoś skryptu lub narzędzia do tworzenia kopii zapasowych. Cobian Backup dobrze tu pasuje, ponieważ może automatycznie zatrzymywać i uruchamiać usługi, a także wykonywać przyrostowe kopie zapasowe, dzięki czemu tworzy się tylko kopie zapasowe części repozytorium, które się zmieniły ostatnio (przydatne, jeśli repozytorium jest duże i tworzysz kopię zapasową w zdalnej lokalizacji).

Przykład:

  1. Install Cobian Backup
  2. Dodaj zadanie backupu:

    • Ustaw źródło do folderu repozytorium (np. C:\Repositories\),

    • Add Pre-backup event "STOP_SERVICE" VisualSVN,

    • Add Post-Backup event, "START_SERVICE" VisualSVN,

    • Ustaw inne opcje w razie potrzeby. skonfigurowaliśmy przyrostowe kopie zapasowe, w tym usuwanie starych, harmonogram tworzenia kopii zapasowych, przeznaczenie, kompresja włącznie. dzielenie Archiwum itp.

  3. Zysk!

 5
Author: atx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-17 11:42:46

Istnieją 2 główne metody tworzenia kopii zapasowych serwera svn, pierwszy jest hotcopy, który utworzy kopię plików repozytorium, głównym problemem z tym podejściem jest to, że zapisuje dane o bazowym systemie plików, więc możesz mieć pewne trudności próbując repostore tego rodzaju kopii zapasowej na innym serwerze svn rodzaju lub innej maszynie. istnieje inny rodzaj kopii zapasowej o nazwie dump, ta kopia zapasowa nie zapisze żadnych informacji o bazowym systemie plików i jego nadających się do dowolnego rodzaju serwera SVN opartego w tigiris.org subversion.

O narzędziu do tworzenia kopii zapasowych możesz użyć narzędzia svnadmin (może wykonywać hotcopy i zrzut) z wiersza polecenia, ta konsola znajduje się w tym samym katalogu, w którym mieszka twój serwer svn lub możesz wyszukać narzędzia do tworzenia kopii zapasowych svn.

Moim zaleceniem jest, aby zrobić oba rodzaje kopii zapasowych i dostać je z biura do konta e-mail, usługi amazon S3, ftp lub usługi azure, w ten sposób będziesz mieć kopię zapasową securityy bez konieczności hostowania svn serwer gdzieś poza twoim biurem.

 4
Author: Jose Manuel Ojeda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-01 06:04:14

TUTAJ narzędzie GUI Windows do tworzenia zrzutu lokalnych i zdalnych repozytoriów subversion:

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

Opis Narzędzia mówi:

to proste narzędzie pozwala na tworzenie kopii zapasowej zrzutu lokalnego i zdalnego repozytorium subversion. Oprogramowanie działa w taki sam sposób jak "svnadmin", ale nie jest nakładką GUI na niego. Zamiast tego użyj bezpośrednio bibliotek subversion, aby umożliwić tworzenie zrzutu w trybie autonomicznym bez żadnych dodatkowych narzędzi.

Mam nadzieję, że to pomoże...

 4
Author: Suppaman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-13 13:23:42

Lubię po prostu skopiować cały katalog repo do mojej lokalizacji kopii zapasowej. W ten sposób, jeśli coś się stanie, możesz po prostu skopiować katalog z powrotem i być natychmiast gotowy do pracy.

W razie potrzeby upewnij się, że zachowujesz uprawnienia. Zwykle jest to problem tylko na komputerach z Linuksem.

 3
Author: Misha M,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-28 18:46:23

Dla hostowanych repozytoriów można od wersji svn 1.7 używać svnrdump, co jest analogiczne do svnadmin dump dla lokalnych repozytoriów. Ten artykuł zapewnia przyjemny spacer, który zasadniczo sprowadza się do:

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

Po pobraniu pliku zrzutu możesz zaimportować go lokalnie

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

Lub przesłać go do wybranego hosta.

 3
Author: Andreas J.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-04 05:20:28

Jeśli używasz formatu repozytorium FSFS (domyślny), możesz skopiować samo repozytorium, aby utworzyć kopię zapasową. W przypadku starszego systemu BerkleyDB repozytorium nie jest niezależne od platformy i ogólnie można by użyć zrzutu svnadmin.

Temat dokumentacji svnbook dla kopii zapasowej zaleca polecenie svnadmin hotcopy, ponieważ zajmie się problemami takimi jak używane pliki i tym podobne.

 3
Author: crashmstr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-23 19:42:37
@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

Jest to uruchomiony plik wsadowy, który wykonuje moje kopie zapasowe

 2
Author: RoughPlace,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-29 13:22:16

Do codziennego i pełnego tworzenia kopii zapasowych wystarczy użyć skryptów kopii zapasowych SVN tutaj .

 2
Author: McGarnagle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-04 19:15:27

Skompilowałem kroki, które wykonałem w celu wykonania kopii zapasowej zdalnego SVN repozytorium mojego projektu.

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

Wymaga to czasu i mówi, że pobiera logi z repozytorium. Tworzy zestaw plików wewnątrz C:\Documents and Settings\nverma\.svk\local.

Aby zaktualizować to lokalne repozytorium o najnowszy zestaw zmian ze zdalnego, po prostu uruchom poprzednie polecenie od czasu do czasu.

Teraz możesz grać z lokalnym repozytorium (/home/user/.svk/local w tym przykładzie) tak, jakby to było normalne repozytorium SVN!

Jedynym problemem z tym podejściem jest to, że lokalne repozytorium jest tworzone z przyrostami rewizji przez rzeczywistą rewizję w zdalnym repozytorium. Jak ktoś napisał:

Komenda svk miror generuje commit w właśnie utworzonym repozytorium. Tak więc wszystkie commity utworzone przez późniejszą synchronizację będą miały numery wersji zwiększone o jeden w porównaniu do zdalnego repozytorium publicznego.

Ale, to było OK dla mnie, ponieważ tylko potrzebowałem od czasu do czasu kopii zapasowej zdalnego repozytorium, nic więcej.

Weryfikacja:

Aby zweryfikować, użyj klienta SVN z lokalnym repozytorium w następujący sposób:

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

To polecenie przechodzi do kasowania najnowszej wersji z lokalnego repozytorium. Na końcu jest napisane Checked out revision N. Ta N była o jeden więcej niż rzeczywista wersja znaleziona w zdalnym repozytorium (ze względu na problem wymieniony powyżej).

Aby sprawdzić, że svk również przyniósł całą historię, SVN checkout został uruchomiony z różnymi starszymi wersjami za pomocą -r z 2, 10, 50 itp. Następnie pliki w <local-dir-path-to-checkout-onto> zostały potwierdzone jako pochodzące z tej rewizji.

Na końcu zapnij katalog {[8] } i schowaj gdzieś zip. Rób to regularnie.

 1
Author: Nitin Verma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-29 13:29:24

Jak mówili inni, hot-backup.py od zespołu Subversion ma kilka fajnych funkcji na po prostu zwykły svnadmin hotcopy

Uruchamiam zaplanowane zadanie na skrypcie Pythona, który działa dla wszystkich moich repozytoriów na maszynie i używa hotbackup do przechowywania kilku dni hotkopii (paranoika korupcji) i svnadmin svndump Na zdalnej maszynie. Przywrócenie jest naprawdę łatwe od tego - do tej pory.

 0
Author: quick_dry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-01 07:02:54

1.1 Tworzenie zrzutu z repozytorium SVN (Subversion)

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

Przykład rzeczywisty

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

1.2 Gzip Created Dump

gzip -9 /path/to/reponame.dump

Przykład rzeczywisty

gzip -9 /backups/testrepo.dump

1.3 zrzut SVN i zrzut Gzip z jednym linerem

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

Przykład rzeczywisty

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

Jak wykonać kopię zapasową (zrzut) i przywrócić (załadować) repozytorium SVN (Subversion) na Linuksie.
Ref: svn subversion backup andrestore

 0
Author: Aamir Shahzad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-26 16:34:29