답변:
(Linux)와 같은 것을 사용할 수 있습니다.
svnadmin dump repositorypath | gzip > backupname.svn.gz
Windows는 GZip을 지원하지 않으므로 다음과 같습니다.
svnadmin dump repositorypath > backupname.svn
svnadmin dump repositorypath | "%ProgramFiles%\7-Zip\7z.exe" a backup.7z -sibackupname.svn
그러면 'backupname.svn'이라는 단일 파일이 포함 된 'backup.7z'라는 파일이 생성됩니다 svnadmin dump
.
for project in *; do svnadmin dump ${project} | gzip > /backuppath/${project}.svn.gz; done;
다음과 같이 svnadmin hotcopy를 사용합니다.
svnadmin hotcopy C:\svn\repo D:\backups\svn\repo
당으로 책 :
다른 프로세스가 저장소를 사용하는지 여부에 관계없이 언제든지이 명령을 실행하고 저장소의 안전한 사본을 작성할 수 있습니다.
물론 백업 사본을 ZIP (바람직하게는 7-Zip) 할 수 있습니다. IMHO 백업 옵션 중 가장 간단합니다. 재난이 발생하면 다시 압축을 풀고 다른 작업을 수행 할 수 있습니다.
Subversion 웹 사이트에는 백업 자동화에 매우 유용한 hotbackup.py 스크립트가 있습니다.
http://svn.apache.org/repos/asf/subversion/trunk/tools/backup/hot-backup.py.in
다음은 Perl 스크립트입니다.
스크립트 :
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`;
svnsync를 사용 하여 원격 서버를 미러 / 슬레이브로 설정합니다. 2 주 전에 서버가 다운되었으며 슬레이브를 기본 위치로 쉽게 전환 할 수있었습니다 (슬레이브 저장소의 UUID를 원래 위치로 재설정하기 만하면 됨).
또 다른 이점은 동기화가 두 서버 중 하나의 작업이 아닌 중개인에 의해 실행될 수 있다는 것입니다. 두 개의 VPN에 대한 클라이언트가 그들 사이에 저장소를 동기화했습니다.
svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH
이 부속 명령은 모든 후크, 구성 파일 및 데이터베이스 파일을 포함하여 저장소의 전체 "핫"백업을 작성합니다.
로 리포지토리 백업 ( 덤프 )을 만들 수 있습니다 svnadmin dump
.
그런 다음을 사용하여 가져올 수 있습니다 svnadmin load
.
SVNBook에서 자세한 내용 : "svnadmin을 사용한 저장소 데이터 마이그레이션"
기본적으로 svn 서버가 중지 된 경우 리포지토리 폴더를 복사하는 것이 안전합니다. (출처 : https://groups.google.com/forum/?fromgroups#!topic/visualsvn/i_55khUBrys%5B1-25%5D )
따라서 서버를 중지 할 수 있다면 스크립트를 작성하거나 스크립트를 사용하여 리포지토리를 복사하십시오. Cobian Backup은 서비스를 자동으로 중지 및 시작할 수 있으며 증분 백업을 수행 할 수 있으므로 최근에 변경된 저장소의 일부만 백업 할 수 있습니다 (리포지토리가 크고 원격 위치에 백업하는 경우 유용함) ).
예:
백업 작업을 추가하십시오.
저장소 폴더로 설정 소스 (예를 들어 C:\Repositories\
)
사전 백업 이벤트 "STOP_SERVICE"
VisualSVN 추가
백업 후 이벤트, "START_SERVICE"
VisualSVN 추가
필요에 따라 다른 옵션을 설정하십시오. 기존 백업 제거, 백업 일정, 대상, 압축을 포함하여 증분 백업을 설정했습니다. 아카이브 분할 등
이익!
svn 서버를 백업하는 두 가지 주요 방법이 있습니다. 먼저 저장소 파일의 사본을 작성하는 핫 카피입니다.이 방법의 주요 문제점은 기본 파일 시스템에 대한 데이터를 저장하므로 repostore를 시도하는 데 어려움이있을 수 있습니다 다른 svn 서버 종류 또는 다른 컴퓨터에서 이러한 종류의 백업. 덤프라는 또 다른 유형의 백업이 있습니다.이 백업은 기본 파일 시스템의 정보와 해당 기능을 tigiris.org 하위 버전을 기반으로하는 모든 종류의 SVN 서버에 저장하지 않습니다.
백업 도구에 관해서는 명령 프롬프트에서 svnadmin 도구 (핫 카피 및 덤프를 수행 할 수 있음)를 사용할 수 있습니다.이 콘솔은 svn 서버가있는 동일한 디렉토리에 있거나 svn 백업 도구를 Google에 사용할 수 있습니다.
내 권장 사항은 두 종류의 백업을 모두 수행하고 이메일 수, 아마존 s3 서비스, ftp 또는 푸른 서비스로 사무실에서 가져 오는 것입니다. 그러면 svn 서버를 다른 곳에서 호스팅하지 않고도 보안 백업을 수행 할 수 있습니다 당신의 사무실.
다음은 로컬 및 원격 서브 버전 리포지토리를 덤프하기위한 GUI Windows 도구입니다.
https://falsinsoft-software.blogspot.com/p/svn-backup-tool.html
도구 설명은 다음과 같습니다.
이 도구를 사용하면 로컬 및 원격 서브 버전 저장소의 덤프 백업을 만들 수 있습니다. 소프트웨어는 "svnadmin"과 같은 방식으로 작동하지만 GUI 프론트 엔드가 아닙니다. 대신 다른 추가 도구없이 독립형 모드로 덤프를 작성할 수 있도록 서브 버전 라이브러리를 직접 사용하십시오.
이 도움을 바랍니다 ...
전체 repo 디렉토리를 백업 위치로 복사하고 싶습니다. 이렇게하면 어떤 일이 발생하면 디렉토리를 다시 복사하여 바로 갈 수 있습니다.
필요한 경우 권한을 유지하십시오. 일반적으로 이것은 Linux 시스템에서만 문제가됩니다.
FSFS 저장소 형식 (기본값)을 사용하는 경우 저장소 자체를 복사하여 백업을 만들 수 있습니다. 이전 BerkleyDB 시스템에서 저장소는 플랫폼 독립적이지 않으므로 일반적으로 svnadmin 덤프를 사용하려고합니다.
백업 svnbook 문서 항목 권장 svnadmin hotcopy
그것을 사용 등의 파일과 같은 문제를 돌볼 것 같은 명령을 사용합니다.
@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
이것은 내 백업을 수행하는 배치 파일입니다.
일일 및 전체 백업 솔루션의 경우 여기 에서 SVN 백업 스크립트를 사용하십시오 .
프로젝트의 원격 SVN 저장소를 백업하기 위해 수행 한 단계를 편집했습니다.
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
이것은 시간이 걸리고 리포지토리에서 로그를 가져오고 있다고 말합니다. 내부에 파일 세트를 만듭니다.C:\Documents and Settings\nverma\.svk\local
.
이 로컬 저장소를 원격 저장소의 최신 변경 사항으로 업데이트하려면 때때로 이전 명령을 실행하십시오.
이제 로컬 리포지토리 (/home/user/.svk/local
이 예제에서)를 마치 일반 SVN 저장소 인 것처럼 !
이 방법의 유일한 문제점은 로컬 저장소가 원격 저장소의 실제 개정에 따라 개정 단위로 작성된다는 것입니다. 누군가가 쓴 것처럼 :
svk miror 명령은 방금 생성 된 저장소에서 커밋을 생성합니다. 따라서 후속 동기화에서 작성된 모든 커밋에는 원격 공용 저장소와 비교할 때 개정 번호가 하나씩 증가합니다.
그러나 원격 저장소의 백업을 원할 때만해도 괜찮습니다.
확인:
확인하려면 다음과 같이 로컬 저장소와 함께 SVN 클라이언트를 사용하십시오.
svn checkout "file:///C:/Documents and Settings\nverma/.svk/local/" <local-dir-path-to-checkout-onto>
그런 다음이 명령은 로컬 저장소에서 최신 개정을 체크 아웃합니다. 결국 그것은 말한다 Checked out revision N
. 이것은 N
위에서 언급 한 문제로 인해 원격 저장소에서 발견 된 실제 개정보다 하나 이상입니다.
svk가 모든 히스토리를 가져 왔는지 확인하기 위해 SVN 체크 아웃은 -r
2, 10, 50 등을 사용하여 다양한 이전 버전으로 실행 되었습니다.<local-dir-path-to-checkout-onto>
버전이 해당 버전에서 확인되었습니다.
마지막으로 디렉토리 C:/Documents and Settings\nverma/.svk/local/
를 압축하고 압축 파일을 어딘가에 저장하십시오. 이것을 정기적으로 계속하십시오.
1.1 SVN (Subversion) 저장소에서 덤프 작성
svnadmin dump /path/to/reponame > /path/to/reponame.dump
실제 예
svnadmin dump /var/www/svn/testrepo > /backups/testrepo.dump
1.2 Gzip 생성 덤프
gzip -9 /path/to/reponame.dump
실제 예
gzip -9 /backups/testrepo.dump
1.3 단일 라이너가있는 SVN 덤프 및 Gzip 덤프
svnadmin dump /path/to/reponame | gzip -9 > /path/to/reponame.dump.gz
실제 예
svnadmin dump /var/www/svn/testrepo |Â gzip -9 > /backups/testrepo.dump.gz
Linux에서 SVN (Subversion) 저장소를 백업 (덤프) 및 복원 (로드)하는 방법
참조 : svn subversion 백업 및 복원