1. 개요
백업 클라이언트를 통한 백업은 Bitbucket 데이터 센터와는 호환되지 않는다. 백업 클라이언트는 플러그인이 아닌 커맨드 라인 툴(command line tool)로 <Bitbucket server 홈 디렉토리>를 접근할 수 있는 서버에서 사용할 수 있다.
백업 수행 시 유지보수 모드로 변경된다. 이 가이드는 DB의 종류나 서버에 무관하게 작성되었다.
2. 백업
2.1. 백업 준비
- 사용하고 있는 Server 버전과 호환되는 Bitbucket 서버 백업 클라이언트 다운로드(다운로드 링크)
- Bitbucket Server 인스턴스가 있는 서버의 디렉토리에 압축 해제.
2.2. 백업 수행
- 다운로드 받은 백업 클라이언트 디렉토리 내의 backup-config.properties 수정
backup-config.properties
#<bitbucket 홈 디렉토리> 경로 #윈도우일 경우 C:\\path\\to\\folder or C:/path/to/folder bitbucket.home=/home/choi/Atlassian/home_dir/bitbucket_home #bitbucket user 이름, 비밀번호 bitbucket.user=admin bitbucket.password=password #bitbucket 접근 url bitbucket.baseUrl=http://localhost:7990/ #백업 클라이언트가 백업 압축파일을 저장할 경로. 작성을 안할경우 <백업 클라이언트 디렉토리>/backups 폴더에 저장 backup.home=
- 수정 후 아래 커맨드로 백업 수행
백업 실행
java -jar <bitbucket 백업 클라이언트 디렉토리>/bitbucket-backup-client.jar
2.3. 백업 클라이언트 실행 취소 방법
- Cancel backup 클릭 후 터미널에 있는 토큰 입력. (It may be cancelled with token: 토큰)
3. 복구
3.1. DB를 이용해 Bitbucket Server 복구
Bitbucket 설치 중 잘못되었을 때(백업 된 기존 DB를 사용할 수 있는 경우) 수행 가능하다. 복구하면서 이미 있는 데이터들을 실수로 지우지 않기위해 비어있는 홈디렉토리와 비어있는 DB로 복구한다. 백업 했던 Bitbucket 서버 버전과 같은 걸로 수행.
- Bitbucket 서버 인스턴스 중지
- <Bitbucket 홈 디렉토리> 내용 삭제
- DB의 모든 테이블 삭제
run the restore client
java -Dbitbucket.home="<bitbucket 홈 디렉토리 경로>" -jar bitbucket-restore-client.jar <백업 압축파일 경로>
- 위의 커맨드를 이용해 Restore Client 수행.
3.2. 새로운 DB로 Bitbucket Server 복구
새로운 DB는 이전의 DB와 다른 타입이거나 구성이라도 상관없다. 복구하면서 이미 있는 데이터들을 실수로 지우지 않기위해 비어있는 홈디렉토리와 비어있는 DB로 복구한다.
- Bitbucket Server를 실행하는 계정으로 새로운 비어있는 홈 디렉토리 생성.
- DB 생성(Bitbucket 설치 가이드 2.DB 구성 참고)
run the restore client
java -Dbitbucket.home="<bitbucket 홈 디렉토리 경로>" -jar bitbucket-restore-client.jar <백업 압축파일 경로>
- 위의 커맨드를 이용해 Restore Client 수행.
- 새로운 서버에 Bitbucket 설치가이드(zip 기반) - Windows, Bitbucket 설치가이드(archive 기반) - Linux, Bitbucket 설치가이드(installer 기반) - Windows를 참고해 새로운 <Bitbucket 홈 디렉토리>로 설정.
- 새로 설치한 Bitbucket Server가 실행되면 인스턴스 중지.
- 새로 만들었던 <Bitbucket 홈 디렉토리> 내부의 내용 삭제.
- 복구해놓은 Bitbucket 홈 디렉토리의 내용을 새로운 <Bitbucket 홈 디렉토리>에 복사.
- Bitbucket 실행.
3.3. 커맨드 라인에서 Restore Client 실행
이 방법은 새로운 DB를 생성해야 하기 때문에 bitbucket-config.properties 내의 JDBC 연결 파라미터를 정의해야 한다.
MySQL 사용 시 JDBC 드라이버가 포함되어 있지 않기 때문에 따로 추가를 해야한다.
- 링크에서 MySql JDBC 드라이버를 다운로드 받은 후, <백업 클라이언트 디렉토리>/jdbc 밑에 jar파일 배치 (JDBC다운로드 링크)
backup-config.properties
#<bitbucket 홈 디렉토리> 경로(꼭 비어있어야 한다) #윈도우일 경우 C:\\path\\to\\folder or C:/path/to/folder bitbucket.home=/home/choi/Atlassian/home_dir/bitbucket_home #default일 시 restore client는 백업 되었던 DB로 복구하게 된다. #true일 시 restore client는 아래 jdbc.driver, jdbc.url 항목에 작성되어있는 DB로 복구하게 된다. jdbc.override=true #Bitbucket Server가 새로운 DB로 접근할 때 필요한 driver. 아래 테이블 참고. jdbc.driver=com.mysql.jdbc.Driver #새로운 DB의 세부 정보. 아래 테이블 참고 jdbc.url=jdbc:mysql://localhost:3306/bitbucketdb?autoReconnect=true&characterEncoding=utf8&useUnicode=true&sessionVariables=storage_engine%3DInnoDB #Bitbucket Server가 사용할 새로운 DB의 사용자 이름, 비밀번호 jdbc.user=bitbucketuser jdbc.password=password
Database | jdbc.driver | jdbc.url |
---|---|---|
MySQL | com.mysql.jdbc.Driver | jdbc:mysql://HOSTNAME:PORT/DATABASE?autoReconnect=true&characterEncoding=utf8&useUnicode=true&sessionVariables=storage_engine%3DInnoDB |
Oracle | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@//HOSTNAME:PORT/SERVICE |
PostgreSQL | org.postgresql.Driver | jdbc:postgresql://HOSTNAME:PORT/DATABASE |
SQL Server | com.microsoft.sqlserver.jdbc.SQLServerDriver | jdbc:sqlserver://HOSTNAME:PORT;databaseName=DATABASE; |