Jira 서버의 MySQL을 PostgreSQL로 마이그레이션 한 작업 과정을 정리해 본다. 내가 사용하는 데비안 9(stretch)의 PostgreSQL 버전은 9.6이다. Jira 서버는 버전 7.13.0을 설치하고 있다. 먼저 이 버전의 Jira에서 지원하는 데이터베이스를 봐야 한다. Supported platforms – Jira Server 7.13을 보면 PostgreSQL 9.4, 9.5, 9.6을 지원하므로 마이그레이션을 진행할 수 있다. 아래에서 내가 사용하는 Jira 홈 디렉토리인 /var/local/lib/jira로 예를 들 것이다.
단계 1. XML 포맷으로 Data를 백업하기
Jira 서버에서 제공하는 백업 도구를 사용하여 XML 포맷의 파일로 Data를 백업한다. 백업한 파일은 단계 4에서 PostgreSQL로 마이그레이션 하기 위해 사용할 것이다.
- Jira의 환경 설정인 System으로 들어한다.
- IMPORT AND EXPORT의 Backup System을 클릭한다.
- Backup Jira data 화면에 ‘데이터베이스의 내용을 XML 포맷으로 백업할 것이고 Jira 홈 디렉토리 안의 export 디렉토리에 저장할 것’이라고 나온다. File name에 백업할 파일의 이름을 입력하고 Backup 버튼을 클릭한다. 나는 jira_backup으로 입력하였다.
- 실행을 완료하면 자신이 입력한 파일명에 .zip 확장자를 붙여 내보냈음을 알려준다. 나의 경우 /var/local/lib/jira/export/jira_backup.zip 파일로 저장되었다.
단계 2. PostgreSQL의 데이터베이스 만들기
Jira 서버에서 사용할 PostgreSQL 데이터베이스를 만든다. 다음은 psql 클라이언트를 사용한 진행 과정이다.
# psql -h localhost -U postgres -d postgres psql (9.6.17) SSL 연결정보 (프로토콜: TLSv1.2, 암호화기법: ECDHE-RSA-AES256-GCM-SHA384, 비트: 256, 압축: off) 도움말을 보려면 "help"를 입력하십시오. postgres=# CREATE ROLE jira WITH LOGIN PASSWORD '암호 입력'; CREATE ROLE postgres=# CREATE DATABASE jira WITH OWNER=jira ENCODING 'UTF8' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0; CREATE DATABASE postgres=# \l 데이터베이스 목록 이름 | 소유주 | 인코딩 | Collate | Ctype | 액세스 권한 -----------+----------+--------+-------------+-------------+----------------------- jira | jira | UTF8 | C | C | postgres | postgres | UTF8 | ko_KR.UTF-8 | ko_KR.UTF-8 | template0 | postgres | UTF8 | ko_KR.UTF-8 | ko_KR.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | ko_KR.UTF-8 | ko_KR.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4개 행)
라인 6에서 CREATE ROLE로 jira 사용자를 생성했다. 라인 8에서 CREATE DATABASE로 jira 데이터베이스를 만들었다. 주의해야 할 것은 Jira 서버는 LC_COLLATE와 LC_CTYPE을 ‘C’로 설정해야 한다. 새 로케일로 데이터베이스를 만들려면 template0을 사용해야 한다. 라인 10에서 \l 명령어로 새로 만든 jira 데이터베이스를 확인한다. PostgreSQL의 기본적인 사용은 PostgreSQL의 데이터베이스와 사용자 생성, 백업 및 복구를 참고할 수 있다.
단계 3. JIRA setup을 실행하기 위한 준비
Jira 서버의 설치 화면(JIRA setup)으로 진입하기 위한 작업을 한다.
- Jira 서버를 종료한다.
- 서버 종료 뒤가 백업의 적기이다. 현재 사용하고 있는 MySQL의 Jira 데이터베이스와 Jira 홈 디렉토리를 백업해 둔다.
- Jira 홈 디렉토리(/var/local/lib/jira) 안의 dbconfig.xml 파일을 삭제한다. 이 파일의 삭제로 JIRA setup으로 진입하는 것이다.
단계 4. JIRA setup을 사용하여 PostgreSQL로 마이그레이션 하기
Jira 서버를 다시 시작하고 웹 브라우저로 접속하면 JIRA setup 화면이 나올 것이다. PostgreSQL로 마이그레이션 하기 위해 다음과 같이 작업한다.
- Jira 설치 화면이 나오면 ‘직접 설정하겠습니다.‘를 선택하고 다음 버튼을 클릭한다.
- 데이터베이스 설정 화면이 나오면 내 데이터베이스(운영 환경에 권장)을 선택하고 다음의 내용을 입력한다.
- 데이터베이스 유형: PostgreSQL
- 호스트 이름: PostgreSQL을 설치한 시스템의 로컬 IP 주소를 입력한다. (예: 192.168.1.20)
- 포트: 디폴트 값인 5432를 그대로 둔다.
- 데이터베이스: 위에서 생성한 데이터베이스의 이름인 jira를 입력한다.
- 사용자 아이디: 위에서 생성한 데이터베이스의 사용자 이름인 jira를 입력한다.
- 비밀번호: 위에서 생성한 데이터베이스의 ‘암호’를 입력한다.
- 스키마: 디폴트 값인 public을 그대로 둔다.
- 다음 버튼을 클릭한다.
- 응용프로그램 속성을 설정하십시오. 화면에서 ‘… 데이터를 가져올 수 있습니다.‘를 클릭한다.
- 기존 데이터 가져오기 화면의 파일 이름에 단계 1에서 생성한 /var/local/lib/jira/export/jira_backup.zip을 입력하고 가져오기 버튼을 클릭한다.
가져오기 작업이 끝나면 Jira의 Dashboards 화면이 나온다.
데이터베이스의 마이그레이션 확인하기
Jira 홈 디렉토리 안에 dbconfig.xml 파일이 새로 생성되고, PostgreSQL의 JDBC 설정을 볼 수 있다.