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.