- Today
- Total
프로그래밍 농장
SVN(SubVersion) 백업 및 이관 본문
- VisualSVN 사용 기준(2.1.2)
- 운영체제 : Windows Server 2008 R2 Standard
방법 1) svnadmin dump를 이용한 방법
: SVN 로그 및 리비젼을 모두 dump 뜨는 방식인거 같은데 이번에 이관 작업은 서버에 있던 데이터를
모두 옮기는 작업이라서 이렇게 할 필요가 없었음. 방법은 아래와 같음
○ 백업
: SVN 이 설치된 폴더 콘솔(설치경로\bin)에서 'svnadmin dump C:\Repositories\Project > Project.dump' 명령어를 실행하여 덤프파일을 생성한다.
○ 백업 복구 방법
- 복구할 저장소를 먼저 생성한다. (방법은 2가지이다.)
- VisualSVN Server Manager를 이용하여 Project 저장소를 만들어도 됨.
- 'svnadmin create C:\Repositories\Project' 명령어를 실행하여 Project 저장소를 생성하여도 된다.
○ 복구
- 'svnadmin load C:\Repositories\Project < Project.dump' 명령어를 실행하여 덤프 파일을 SVN 서버에 복구
- VisualSVN Sever Manager을 refresh하여 복구된 Repositories를 확인한다.(그냥 누르기도 귀찮으면 재시작 하자)
○ 참고자료
: http://ppusari.blogspot.kr/2015/02/svn.html
: https://www.visualsvn.com/support/svnbook/reposadmin/maint/
(뭐니뭐니 해도 공식 메뉴얼이 짱인거 같음, 대신 머리부터 발끝까지 조선 사람들은 힘들 수 있음)
방법 2) Full BackUp(추천)
: 방법1) 같은 경우에는 운영체제가 다른 경우(Windows -> Unix 계열 등)으로 옮길때 사용해야 할듯 싶고,
동일한 운영체제의 경우 풀백업을 사용하는 것이 빠르고 안전한거 같다.
○ 백업 및 복구 방법
- 백업할 데이터(일반적으로 C:\Repositories)를 복사
- 이관하는 서버쪽에 동일한 버젼의 VisualSVN을 설치
(나의 경우 동일한 버젼으로 설치하였음,)
: 설치 방법은 매우 간단하므로 생략
(포트번호도 기존에 사용하던 것을 그대로 사용하는게 다른 사람들의 연동을 위해서 좋지 않나 생각이 듬
- 복사한 Repositories 폴더를 이관하는 서버쪽에 동일하게 붙여넣기 한다.
- VisualSVN을 실행하여 보면 유저 데이터 및 리비젼 데이터가 기존에 사용하던 SVN 서버와 동일하게 보일 것이다.
: Repositories 폴더에 authz, authz-windows, htpasswd 파일이 동일하게 복사되므로, User도 동일하게 복구 됨
- 다른 툴은 어떻게 될지 모르겠지만 Eclipse의 경우, 기존 레파지토리 메뉴 중 Relocate 메뉴를 선택하여 바뀐 주소로 변경을 처리할 수 있다.(주소 값만 바꾸면 되니깐 편리하다)
○ 백업 중 발생한 오류 및 이슈
- 백업 완료 후, 커밋 테스트를 진행하는데 발생한 오류가 있었다. 아래와 같음(OOOO는 폴더명)
svn: Can't open file 'C:\Repositories\OOOO\db\txn-current-lock': 액세스가 거부되었습니다.
svn: MKACTIVITY of '/svn/OOOO/!svn/act/OOOOOOOOO': 500 Internal Server Error (http://IP주소:포트)
- 검색을 해보니, Repositories 폴더의 권한과 관련이 있는 이슈로, 해당 폴더의 User 계정 셋팅을 다시 해주면 되는 것으로 해결할수 있었다.(권한 설정은 읽기, 쓰기, 수정이 모두 가능한 것으로 바꾸면 된다. 운영체제마다 설정하는 방법이 상이하므로 나머지는 검색을 통하여 해결하도록 하자)
출처 :
'Devops' 카테고리의 다른 글
SVN 용량부족, .svn 폴더 용량 줄이기 / svn cleanup ~ --vacuum-pristines (0) | 2024.11.19 |
---|---|
stderr: svn: E205011: Failure occurred processing one or more externals definitions (0) | 2024.11.04 |
Jenkins 빌드잡 모니터링 및 관리방식 팁 (0) | 2024.06.12 |
Batch script - for /f loop 관련 옵션 (skip delims ..) (0) | 2024.04.25 |
[SVN] stderr: svn: E175002: Unexpected HTTP status 413 'Request Entity Too Large' on ~ (0) | 2024.04.23 |