답변:
참조 : 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
전체 명령을 사용 하여 전체 저장소를 복원 할 수 있어야 합니다. 그러나 다른 백업 전략과 마찬가지로 복원을 직접 테스트하여 효과가 있는지 확인해야합니다.
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
권한 명령 프롬프트에서 실행하십시오 .
다른 방법으로 백업을 설정할 수 있습니다.
wbadmin
명령 줄 도구 ,FSFS 저장소 백엔드는 항상 일관된 상태 이므로 백업을 실행할 때 서버 서비스를 중지 할 필요가 없습니다 .
Windows Server 백업 복구에 대한 일반적인 팁은 다음과 같습니다.
복원 된 저장소 파일이 손상된 파일과 혼합되지 않도록 빈 디렉토리로 백업을 복구하십시오. 리포지토리가 복구되면 복구 된 리포지토리를 삭제 한 다음 복구 된 리포지토리로 교체 할 수 있습니다.
백업에서 저장소를 복구 한 후 중지 시작주기 서버.
리포지토리 복구 후 클라이언트에 오류가 발생하면 이에 svnadmin recover
대해 실행 하십시오. 명령이 즉시 완료되고 저장소에 다시 액세스 할 수 있습니다.
리포지토리를 제외하고 다음 정보를 백업해야합니다.
저장소 루트에 저장된 인증 및 권한 부여 파일 ( 기본적으로 'C : \ Repositories' ). 설정에 따라 'authz' , 'authz-windows' 및 'htpasswd' 파일이 있어야합니다 .
SSL 인증서에 대한 정보가 저장되는 "% VISUALSVN_SERVER % \ certs \"폴더
VisualSVN 서버의 구성 파일이 저장된 "% VISUALSVN_SERVER % \ conf \"폴더
서버 구성의 다른 부분이 저장된 "HKEY_LOCAL_MACHINE \ SOFTWARE \ VisualSVN \ VisualSVN Server"레지스트리 키.
SVN 저장소를 백업하는 가장 쉽고 가장 좋은 방법은 svnsync 를 사용하는 것 입니다. 백업 저장소에 대한 커밋을 재생하는 증분 도구입니다. 쉽게 갈 수 있습니다 ( 이 블로그 게시물 참조) . 변경 사항 만 보내기 때문에 빠릅니다. 누군가가 과거 revprop를 업데이트 할 때의 '가장자리 사례'를 포착하기 위해 post-rev-prop-change-hook 후크를 설정해야하지만, 그렇지 않으면 백업을 계속 유지하기 위해 매시간 실행할 수 있습니다. 데이터 백업에 대해 편집증이 있다면 사후 커밋 후크에서 실행할 수도 있습니다!
라이브 리포지토리가 종료되면 라이브 리포지토리를 다시 실행할 때까지 백업 리포지토리로 "svn relocate"할 수 있습니다 (하지만 svnsync를 실행하지 않으면 라이브가 다운되는 동안 백업에 아무 것도 쓰지 않도록주의하십시오) 라이브 리포지토리에 적용된 변경 사항은 생각할 때 매우 분명합니다.)
따라서 최소한의 리소스 사용으로 지속적인 백업과 다운 타임을 초 단위로 측정 할 수 있습니다. 백업은 그보다 훨씬 나아지지 않습니다!
또 다른 옵션은 hotcopy 입니다. 전체 저장소를 백업합니다. 더 많은 디스크 공간을 차지하지만이를 사용하여 실행하기가 쉽고 저장소를 매우 쉽게 복원 할 수 있습니다.
VisualSVN은 Windows 제품이므로 Windows에서 실행됩니다. 백업 유틸리티가 볼륨 섀도 복사본을 사용하여 백업을 수행 할 수 있으면 내부적으로 일관된 백업이 생성됩니다. 기본 제공 NTBACKUP 또는 Symantec Backup Exec과 같은 타사 소프트웨어 또는 Windows Server 2008에 내장 된 디스크 기반 백업 도구는 모두 볼륨 섀도 복사본을 사용할 수 있습니다.
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