아파치 더비에서 H2로 데이터베이스 옮기기

매뉴얼웍스는 H2를 기본 데이터베이스로 사용합니다. 예전에 설치해서 아파치 더비를 사용하고 있다면 H2로 옮기기를 권장합니다. 매뉴얼웍스에 데이터베이스를 옮기는 기능이 들어 있어서 데이터를 직접 내보내고 들여올 필요가 없습니다.

매뉴얼웍스 7.0 버전부터는 더 이상 아파치 더비를 지원하지 않을 예정입니다. 오라클, MS SQL, MySQL 등을 사용하고 있다면 해당 사항이 없습니다.

매뉴얼웍스 6.0.24 버전부터는 아파치 더비를 사용하고 있으면 관리자에게 1알림을 보내고 상태 점검 화면에도 함께 표시합니다.

옮기는 동안 아파치 더비 데이터는 그대로 남습니다. 문제가 생기면 server.xml만 되돌려서 예전 상태로 돌아갈 수 있습니다.

옮기기 전에

매뉴얼웍스를 정지하고 migrate 파일 만들기

매뉴얼웍스를 정지합니다. 그리고 3RABBITZ_HOME 디렉터리에 확장자가 없는 1migrate라는 이름으로 빈 텍스트 파일을 만듭니다.

이 파일이 있으면 매뉴얼웍스가 데이터베이스 옮기기 모드로 시작합니다. 그동안에는 다른 기능을 사용할 수 없습니다.

옮기기 화면 열기

매뉴얼웍스를 시작하고 웹 브라우저에서 다음 주소로 이동합니다.

/r/database_migration

관리 권한이 있는 사용자로 로그인해야 합니다.

연결 테스트와 스키마 만들기

유형이 H2로 선택되어 있고 주소와 계정이 이미 채워져 있습니다. 그대로 두고 1 버튼을 클릭합니다.

연결에 성공하면 버튼을 클릭해서 H2에 표를 만듭니다.

데이터 옮기기

버튼을 클릭합니다. 테이블마다 진행률을 보여줍니다. 모두 끝나면 매뉴얼웍스를 정지하고 migrate 파일을 삭제합니다.

migrate 파일을 삭제하지 않으면 매뉴얼웍스가 계속 데이터베이스 옮기기 모드로 시작합니다.

server.xml에서 데이터베이스 바꾸기

매뉴얼웍스는 데이터베이스 설정을 아파치 톰캣에서 읽습니다. 그래서 이 파일은 직접 바꿔야 합니다. 3RABBITZ_HOME/tomcat/conf/server.xml을 열어 아파치 더비 Resource를 주석 처리하고 H2 Resource를 넣습니다.

<Resource name="jdbc/Base"
          auth="Container"
          type="javax.sql.DataSource"
          driverClassName="org.h2.Driver"
          url="jdbc:h2:h2/database;"
          username="database"
          password="database"
          maxTotal="100"
          maxIdle="30"
          maxWaitMillis="10000"/>

바꾼 다음 매뉴얼웍스를 시작합니다.

처음 시작할 때 데이터베이스 인덱스를 만들기 때문에 시작 시간이 오래 걸릴 수 있습니다.

아파치 더비 Resource는 지우지 말고 주석으로 남겨 두세요. 문제가 생기면 주석을 되돌리는 것만으로 예전 데이터베이스로 돌아갈 수 있습니다.

옮긴 뒤 확인하기

관리자로 로그인해서 시스템 화면의 <상태 점검> 탭을 엽니다. 데이터베이스 유형이 H2로 바뀌어 있고 경고가 사라졌으면 제대로 옮겨진 것입니다. 아파치 더비 알림도 더 이상 오지 않습니다.