1. 개요


 백업 클라이언트를 통한 백업은 Bitbucket 데이터 센터와는 호환되지 않는다.  백업 클라이언트는 플러그인이 아닌 커맨드 라인 툴(command line tool)로 <Bitbucket server 홈 디렉토리>를 접근할 수 있는 서버에서 사용할 수 있다. 

 백업 수행 시 유지보수 모드로 변경된다. 이 가이드는 DB의 종류나 서버에 무관하게 작성되었다.

2. 백업


2.1. 백업 준비

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 <백업 압축파일 경로>

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
Databasejdbc.driverjdbc.url
MySQLcom.mysql.jdbc.Driverjdbc:mysql://HOSTNAME:PORT/DATABASE?autoReconnect=true&characterEncoding=utf8&useUnicode=true&sessionVariables=storage_engine%3DInnoDB
Oracleoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@//HOSTNAME:PORT/SERVICE
PostgreSQLorg.postgresql.Driverjdbc:postgresql://HOSTNAME:PORT/DATABASE
SQL Servercom.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://HOSTNAME:PORT;databaseName=DATABASE;