Windows VisualSVN 용 리포지토리를 백업하는 방법은 무엇입니까?


15

현재 Visual SVN을 사용하고 있으며 Visual svn에 대한 전체 저장소 디렉토리를 백업하고 있습니다. 이는 svn 엔진 내부의 각 저장소에 대한 전체 데이터를 백업합니다. 비상 사태 나 재해가 발생했을 때 해당 파일을 복원 할 수 있을지 궁금합니다. 이 복원 절차에 대해 경험이 있습니까? 감사.


1
실제로 복원을 테스트하지 않은 경우 백업에 대한 확신이 없습니다.
Michael Hampton

답변:


11

참조 : http://www.visualsvn.com/support/topic/00012/

이는 다음 문서를 가리 킵니다.
http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

Subversion 명령을 사용하여 백업을 수행하는 방법에 대해 설명합니다. 직접 디렉토리 백업을 수행하면 사용할 수없는 저장소가 생길 수 있기 때문에 이것이 이미 수행중인 작업이기를 바랍니다.

Subversion의 백업을 사용 svnadmin dump하거나 svnadmin hotcopy전체 명령을 사용 하여 전체 저장소를 복원 할 수 있어야 합니다. 그러나 다른 백업 전략과 마찬가지로 복원을 직접 테스트하여 효과가 있는지 확인해야합니다.


8

VisualSVN Server 3.6 버전부터 서버에는 내장 된 예약 된 리포지토리 백업 및 복원 기능이 포함되어 있습니다. 또한 3.6 릴리스에는 SVN 리포지토리의 예약 확인이 추가되었습니다.

서브 버전 리포지토리에 예약 된 리포지토리 백업 및 확인을 설정하는 것은 몇 분만에 가능합니다. 단계별 지침은 KB106 : 백업 및 복원 시작 문서를 참조하십시오 .

일회성 백업을 찾는 경우 Backup-SvnRepository PowerShell cmdlet을 사용할 수 있습니다 . 저장소를 복구하려면 Restore-SvnRepository를 사용 하십시오 . 이 백업 cmdlet은 버전 3.6부터 사용할 수 있습니다.

기본 다운로드 페이지 에서 최신 버전의 VisualSVN Server를 다운로드하십시오 .

여기에 이미지 설명을 입력하십시오


VisualSVN Server 리포지토리를 백업하는 방법에는 여러 가지가 있습니다. 아래의 간단한 설명을 확인하십시오.

1. svnadmin hotcopy도구

svnadmin hotcopy다른 프로세스가 저장소를 사용하는지 여부에 관계없이 저장소의 안전한 사본을 작성할 수 있습니다. 리포지토리의 백업을 정기적으로 수행하는 사용자 지정 스크립트를 작성할 수 있습니다.

Subversion 저장소 백업에 대한 자세한 내용은 SVN 서적에서 다음 기사를 참조하십시오 . http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

2. svnsync도구

증분 백업 방법입니다. 증분 백업 방법은 이전 백업 이후 변경된 리포지토리 데이터 부분 만 백업합니다. 이 도구를 "마스터"및 "슬레이브"로 작동하도록 설정하고 커밋을 자동으로 리포지토리에 복제 할 수 있습니다.

자세한 내용은 "svnsync"기사를 참조하십시오. http://www.visualsvn.com/support/svnbook/ref/svnsync/

3. Windows 서버 백업. Windows Server 백업을 사용하여 Subversion 저장소를 백업 할 수 있습니다. 백업을 네트워크 공유, 전용 백업 볼륨, 쓰기 가능한 미디어로 흘릴 수 있습니다. 예를 들어 wbadmin명령 줄 도구를 사용하면 리포지토리를 안전하게 백업 할 수 있습니다. 이 간단한 명령은 볼륨 에 C:\foo\bar대한 일회성 복사 백업을 수행합니다 X:\.

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

Windows Server 백업을 설치하려면 관리자 ocsetup WindowsServerBackup권한 명령 프롬프트에서 실행하십시오 .

다른 방법으로 백업을 설정할 수 있습니다.

FSFS 저장소 백엔드는 항상 일관된 상태 이므로 백업을 실행할 때 서버 서비스를 중지 할 필요가 없습니다 .

Windows Server 백업 복구에 대한 일반적인 팁은 다음과 같습니다.

  1. 복원 된 저장소 파일이 손상된 파일과 혼합되지 않도록 빈 디렉토리로 백업을 복구하십시오. 리포지토리가 복구되면 복구 된 리포지토리를 삭제 한 다음 복구 된 리포지토리로 교체 할 수 있습니다.

  2. 백업에서 저장소를 복구 한 후 중지 시작주기 서버.

  3. 리포지토리 복구 후 클라이언트에 오류가 발생하면 이에 svnadmin recover대해 실행 하십시오. 명령이 즉시 완료되고 저장소에 다시 액세스 할 수 있습니다.


리포지토리를 제외하고 다음 정보를 백업해야합니다.

  1. 저장소 루트에 저장된 인증 및 권한 부여 파일 ( 기본적으로 'C : \ Repositories' ). 설정에 따라 'authz' , 'authz-windows''htpasswd' 파일이 있어야합니다 .

  2. SSL 인증서에 대한 정보가 저장되는 "% VISUALSVN_SERVER % \ certs \"폴더

  3. VisualSVN 서버의 구성 파일이 저장된 "% VISUALSVN_SERVER % \ conf \"폴더

  4. 서버 구성의 다른 부분이 저장된 "HKEY_LOCAL_MACHINE \ SOFTWARE \ VisualSVN \ VisualSVN Server"레지스트리 키.


1
마지막 옵션의 경우 svn 서비스를 중지해야합니다. 그렇지 않으면 백업이 손상 될 수있는 활성 커밋이있는 저장소를 백업 할 위험이 있습니다.
Andy

5

나는 그것을하고있다 :

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

또한 공간을 절약하기 위해 rar / zip을 사용할 수 있습니다. SVN을 Linux에서 VisualSVN으로 옮길 때도 동일한 방법을 사용했기 때문에이 백업은 정상적으로 작동합니다.


3

SVN 저장소를 백업하는 가장 쉽고 가장 좋은 방법은 svnsync 를 사용하는 것 입니다. 백업 저장소에 대한 커밋을 재생하는 증분 도구입니다. 쉽게 갈 수 있습니다 ( 이 블로그 게시물 참조) . 변경 사항 만 보내기 때문에 빠릅니다. 누군가가 과거 revprop를 업데이트 할 때의 '가장자리 사례'를 포착하기 위해 post-rev-prop-change-hook 후크를 설정해야하지만, 그렇지 않으면 백업을 계속 유지하기 위해 매시간 실행할 수 있습니다. 데이터 백업에 대해 편집증이 있다면 사후 커밋 후크에서 실행할 수도 있습니다!

라이브 리포지토리가 종료되면 라이브 리포지토리를 다시 실행할 때까지 백업 리포지토리로 "svn relocate"할 수 있습니다 (하지만 svnsync를 실행하지 않으면 라이브가 다운되는 동안 백업에 아무 것도 쓰지 않도록주의하십시오) 라이브 리포지토리에 적용된 변경 사항은 생각할 때 매우 분명합니다.)

따라서 최소한의 리소스 사용으로 지속적인 백업과 다운 타임을 초 단위로 측정 할 수 있습니다. 백업은 그보다 훨씬 나아지지 않습니다!


3

또 다른 옵션은 hotcopy 입니다. 전체 저장소를 백업합니다. 더 많은 디스크 공간을 차지하지만이를 사용하여 실행하기가 쉽고 저장소를 매우 쉽게 복원 할 수 있습니다.


2

VisualSVN은 Windows 제품이므로 Windows에서 실행됩니다. 백업 유틸리티가 볼륨 섀도 복사본을 사용하여 백업을 수행 할 수 있으면 내부적으로 일관된 백업이 생성됩니다. 기본 제공 NTBACKUP 또는 Symantec Backup Exec과 같은 타사 소프트웨어 또는 Windows Server 2008에 내장 된 디스크 기반 백업 도구는 모두 볼륨 섀도 복사본을 사용할 수 있습니다.


이것은 거래 적으로 건전하지 않습니다. 데이터베이스와 마찬가지로 서버가 백업을 다른 방식으로 수행하도록해야합니다.
David Heffernan

SQL Server의 경우 VSS 기반 백업은 실제로 트랜잭션에 안전합니다. VisualSVN 서버의 경우 Windows 기반 서버로서 SQL Server와 마찬가지로 표준 Windows 백업 솔루션 중 하나에 의해 백업 될 때 올바르게 작동하기를 희망합니다. 나는 그것이 있는지 아닌지를 제안 할 증거가 없다.
Tim Long

나는 그것을 의심한다. VisualSVN은 단순히 svn 패키지입니다. VSS와 통합 된 백업이 있다는 표시는 본 적이 없습니다.
David Heffernan

0

Windows 시스템에서 Visual SVN의 기본 설치로 모든 리포지토리를 백업하려는 경우

다음 cmd 스크립트를 사용합니다. 리포지토리 루트의 모든 하위 폴더를 백업 경로로 덤프하고 7-zip으로 압축 합니다.

@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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.