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 설정을 볼 수 있다.