Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

CUBRID Migration Toolkit Reference


■ 1단계: 원본 데이터 소스 선택

원본 데이터베이스를 설정한다.

MySQL, Oracle과 같은 온라인 데이터베이스를 원본 데이터 소스로 사용하거나 MySQL의 XML 문서를 읽어서 원본 데이터 소스로 사용할 수 있다.

온라인 사용

원본 데이터베이스를 설정하는 가장 간단한 방법은 목록에서 데이터베이스 연결을 선택하는 것이다. 새 데이터베이스 연결을 생성해야 한다면 |신규|을 선택한 후에 데이터베이스 종류와 JDBC 드라이버, 호스트 주소, 연결 포트, 사용자 이름, 비밀번호를 입력하고 |확인|을 클릭한다.

MySQL XML 덤프 사용

MySQL의 XML 문서를 원본 데이터베이스로 사용하려면 |MySQL XML 덤프|를 선택한 후 XML 파일 경로와 문자 집합을 설정한다. 또한, 타임스탬프 데이터를 정확하게 마이그레이션하려면 원본 데이터의 표준 시간대를 정확하게 설정한다.


MySQL의 XML 문서를 만들 때에는 바이너리 데이터에 "--hex-blob" 옵션을 추가해야 한다. 예를 들면 다음과 같은 명령어를 사용한다.


mysqldump --xml --databases test -u mydbadmin -pmypass --hex-blob > test.xml


■ 2단계: 대상 데이터베이스 선택

온라인

JDBC를 이용하여 데이터를 입력할 때 사용한다. |신규|를 클릭하면 입력할 데이터베이스 정보를 추가할 수 있으며 추가된 데이터베이스는 목록에 등록되어 이후에도 선택하여 이용할 수 있다.

Load DB 파일

CUBRID 마이그레이션 툴킷을 이용하지 않고 Load DB 파일을 생성한 후 CUBRID loaddb 유틸리티로 직접 데이터를 입력하고자 할 경우 이용한다.

시간대

원본과 대상 데이터베이스의 타임존이 다를 경우 대상 데이터베이스의 시간대를 보정하여 정상적으로 Timestamp가 이전되도록 한다.

□ |온라인| 선택시 추가 옵션

Commit 주기

|온라인| 마이그레이션에서만 사용할 수 잇으며, 기본값은 500 이다. 여기에 설정한 레코드 만큼 데이터를 마이그레이션한 후 commit 명령으로 로그를 데이터파일로 쓰는 작업을 한다. 이 값이 너무 작으면 자주 commit을 하기 때문에 성능이 떨어질 수 있고 너무 클 경우 한 번에 쓰는 데이터의 양이 너무 커서 로그파일에서 데이터 파일로 쓰는 I/O가 동시 작업시 영향을 줄 수 있기 때문에 일반적인 경우에는 기본값으로 이용하여 마이그레이션 한다.


□ |Load DB 파일| 선택시 추가 옵션

파일 경로

Load DB 파일들을 생성할 위치를 선택한다.

Schema 파일 이름, Index 파일 이름, Data 파일 이름

기본값이 아닌 별도의 이름으로 파일을 저장하고자 할 때 변경할 수 있으나 확장자는 .txt로 고정된다.


■ 3단계: 마이그레이션 객체 선택

데이터베이스 객체 탭

특정 기본키나 외래키, 인덱스, 파티션에 필요한 컬럼을 선택하지 않거나 다른 테이블의 외래키에 필요한 기본키를 선택하지 않으면 오류 메시지가 표시된다.


SELECT 구문 탭

|SELECT 구문| 탭에서는 SELECT 문으로 조회한 내용을 원본 테이블로 사용할 수 있다.

SELECT 문을 추가하려면 |신규| 버튼을 클릭한다. 다음과 같은 대화 상자에서 하나 이상의 SELECT 문을 작성할 수 있다.


지원되지 않는 객체(Procedures/Functions/Triggers)를 파일로 출력

선택하면 마이그레이션 완료후 txt 파일로 지원되지 않는 객체에 대해

■ 4단계: 객체 맵핑

마이그레이션 마법사는 자동으로 각 원본 테이블을 복제한 대상 테이블을 생성한다. 대상 테이블은 원본 테이블과 이름 및 컬럼 이름이 동일하고 맵핑된 컬럼 타입, auto increment, 초기 값 특성을 가진다.


|Table| 탭

마이그레이션 마법사는 자동으로 각 원본 뷰를 복제한 대상 뷰를 생성한다. 대상 뷰는 원본 뷰와 이름 및 컬럼 이름, 질의 조건이 동일하고 맵핑된 컬럼 타입을 가진다.

원본 테이블

원본 테이블 이름은 읽기만 가능한 상태로 보이며 다음과 같은 옵션을 선택할 수 있다.

테이블 맵핑 옵션

  • 테이블 생성: 대상 데이터베이스에 새 대상 테이블을 생성한다.
  • 데이터 마이그레이션: 원본 데이터베이스에서 데이터를 내려받아 대상 데이터베이스에 올린다.

원본 컬럼과 대상 컬럼 맵핑

  • 컬럼 : 대상 컬럼의 이름을 나타내며, 대상 테이블이 새로 생성된 것이면 컬럼 이름을 변경할 수 있다.
  • 데이터 타입 : 대상 컬럼의 데이터 타입을 나타내며, 대상 테이블이 새로 생성된 것이면 데이터 타입을 변경할 수 있다.
  • 자동 증가 : 대상 컬럼의 자동 증가 특성을 나타내며, 대상 테이블이 새로 생성된 것이면 클릭하여 자동 증가 특성 설정 여부를 변경할 수 있다. CUBRID 컬럼의 자동 증가 특성은 컬럼의 데이터 타입이 다음과 같을 때 설정할 수 있으며, 해당 컬럼의 초기 값은 NULL이다.
    • INTEGER
    • BIGINT
    • SMALLINT
    • NUMERIC(p,0)
  • 기본 값 : 대상 컬럼의 초기 값을 나타내며, 대상 테이블이 새로 생성된 것이면 컬럼의 초기 값을 변경할 수 있다.

컬럼 사이즈 옵션

  • 원본 데이터베이스가 멀티바이트로 구성되어 있을 경우를 위해 일괄로 조정할 수 있다.
  • 기본값(1X)는 1:1 크기로 대상 테이블을 구성하고, 다중바이트문자(2X / 3X)는 원본 데이터베이스가 UTF-8이면 3X를 EUC-KR과 같은 2바이트 고정 문자셋이면 2X로 자동 조정된다.

참고 사항

    • 대상 데이터베이스에 새 테이블을 생성하지 않으려면, |새 테이블 생성|을 선택 해제한다. 그리고 레코드를 마이그레이션하지 않으려면 |데이터 마이그레이션|을 선택 해제한다. 이는 해당 원본 테이블을 마이그레이션에서 제외하는 것과 같다.

|View| 탭

마이그레이션 마법사는 자동으로 각 원본 뷰를 복제한 대상 뷰를 생성한다. 대상 뷰는 원본 뷰와 이름 및 컬럼 이름, 질의 조건이 동일하고 맵핑된 컬럼 타입을 가진다.

대상 뷰

대상 뷰의 이름을 입력한다.

원본 컬럼과 대상 컬럼 맵핑

    • 컬럼 : 대상 컬럼의 이름을 나타내며 변경할 수 있다.
    • 데이터 타입 : 대상 컬럼의 데이터 타입을 나타내며 변경할 수 있다.

|SQL| 탭

마이그레이션 마법사는 자동으로 각 SELECT 문에 대해 복제 테이블을 생성한다. 대상 테이블은 조회 결과와 컬럼 이름, 질의 조건이 동일하고 맵핑된 컬럼 타입을 가진다. 자세한 내용은 |테이블 설정| 탭과 동일하다.

참고사항

    • 만약, SQL문에 설정한 테이블을 |테이블 설정|에도 설정이 되어 있다면 테이블은 1회만 생성이 되고 데이터는 중복되어 입력될 수 있다.
    • 데이터가 중복되어 입력되는 경우 Primary Key, Unique Index 등이 생성이 실패할 수 있다.

|FK| 탭

마이그레이션 마법사는 자동으로 원본 외래키를 복제하여 대상 외래키를 생성한다. 대상 외래키는 원본 외래키와 이름, 컬럼 이름, ON UPDATE 동작, ON DELETE 동작이 동일하다.

|Index| 탭

마이그레이션 마법사는 자동으로 원본 인덱스를 복제하여 대상 인덱스를 생성한다. 대상 인덱스는 원본 인덱스와 이름, 타입, 컬럼 이름이 동일하다. 인덱스 이름과 인덱스 타입은 변경할 수 있다.

|Serial| 탭

마이그레이션 마법사는 자동으로 원본 시리얼을 복제하여 대상 시리얼을 생성한다. 대상 시리얼은 원본 시리얼과 이름 및 기타 정보가 동일하며, 이름만 변경할 수 있다.


■ 5단계: 마이그레이션 확인

1 ~ 4단계에서 선택한 마이그레이션 설정을 보여주고 마이그레이션을 시작하거나 설정을 XML로 저장해둘 수 있다.

저장한 XML은 |마이그레이션| - |마이그레이션 스크립트 열기|를 이용하여 다시 로드하여 설정을 변경하거나 마이그레이션을 시작할 수 있다.

■ 6단계: 마이그레이션

이 단계에서는 내보낸 레코드와 입력한 레코드, 현재 진행 정보 메시지, 테이블 마이그레이션 정보와 같은 마이그레이션 진행 과정을 보여 준다.

■ 7단계: 요약 보고

이 단계에서는 마이그레이션 결과 보고서를 보여준다. 저장 버튼을 클릭하면 탭 별로 리포트를 별도의 xls로 저장할 수 있다.

■ 마이그레이션 이력 보기

마이그레이션 진행 과정 정보를 다시 보려면 마이그레이션 이력 보기 기능을 이용한다. 마이그레이션 이력 보기를 선택하면 마이그레이션을 했었던 기록이 출력되는데, 마우스 더블 클릭을 하면 결과 리포트를 다시 확인할

■ 마이그레이션 스크립트 열기

마이그레이션 마법사의 5단계에서 |스크립트 저장|을 클릭하여 스크립트를 저장해 두면 나중에 다시 사용할 수 있다. 저정한 마이그레이션 스크립트를 사용하려면 메뉴에서 |마이그레이션| > |마이그레이션 스크립트 열기|를 선택한 후, 저장한 마이그레이션 스크립트를 선택하고 |열기|를 클릭한다. 저장된 상태의 설정값으로 마이그레이션 마법사를 계속 이용할 수 있게 된다.

■ 데이터 타입 맵핑 설정

메뉴에서 |파일| > |기본 설정|을 선택하면, MySQL, Oracle 데이터베이스를 CUBRID 데이터베이스로 마이그레이션할 때의 데이터 타입 맵핑을 설정할 수 있다.

"n", "p", "s"는 1 이상의 정수를 나타낸다. "n"은 문자열이나 비트열의 길이를 나타낸다. "p"는 고정 소수점 숫자의 정밀도(숫자 전체 자릿수)를 나타내며, "s"는 스케일(소수점 아래의 자릿수)을 나타낸다.

데이터 타입 맵핑 설정을 수정한 후에는 |적용|를 클릭하여 수정 사항을 적용한다.

|기본값 복원|을 클릭하면 기본 설정으로 복구할 수 있다.








comments powered by Disqus
Page info
viewed 346 times
translations en
Author
posted 2 years ago by
newpcraft
Contributors
updated 2 years ago by
View revisions
tagged
Share this article