개요
Migration Center는 DBMS 사이에 일반적으로 호환되는 DBMS Object와 Data를 직접 또는 간접적으로 복사하는 DBMS Migration 도구입니다.
㈜알티베이스에서 제공하는 Migration Center는 타 DB에서 Altibase로, Altibase에서 Oracle DB로 Object 및 Data 이관을 도와 줍니다.
Migration Center는 사용자가 GUI 모드에서 마우스 클릭만으로도 DB Migration 작업을 수행할 수 있게 도와 주며, 명령어 인터페이스(CLI) 모드도 지원합니다.
본 문서의 테스트 환경은 다음과 같다.
- Migration Center 7.12
Migration Center 이용 시 이점
Migration Center를 이용하면 다음의 이점이 있다.
- 원본 DB Object들을 대상 DB로 쉽게 Migration 할 수 있다.
- JDBC를 사용해서 원본 DB의 Data를 Altibase로 바로 복사할 수 있다.
- Data를 외부 파일로 내보내어(Export) Altibase DB의 iLoader로 가져올(Import) 수 있다.
- Migration 과정을 단축시킬 수 있는 병렬 수행 옵션을 제공한다.
- 자동으로 여러 쓰레드 간의 Data Migration 부하에 대한 균형이 조정 가능하다.
- 쓰레드들이 처리할 Data를 수동으로 분할할 수 있는 방법도 가능하다.
- 서로 다른 DB 간에 다른 Data Type들의 Data Type Mapping을 제공한다.
- Data Type Mapping의 유연성을 위하여 사용자 정의 데이터 타입 맵핑 뿐만 아니라 기본 타입 맵핑도 지원한다.
- GUI 모드 뿐만 아니라 CLI 모드도 제공한다.
- DB Object Migration을 위한 DDL SQL문을 사용자가 수정할 수 있는 기능을 제공한다.
요구 사항
Migration Center를 사용하기 위한 요구 사항에 대하여 기술한다.
1. 시스템 요구 사항
구문 | 설명 | |
---|---|---|
H/W 요구 사항 | GUI 모드 | •CPU : 800MHz 이상 •Memory : 512MB 이상 •Disk : 150MB 이상 여유 공간 •화면 해상도 : 1024 * 768 화소 이상 |
CLI 모드 | •CPU : 800MHz 이상 •Memory : 512MB 이상 •Disk : 150MB 이상의 여유 공간 | |
S/W 요구 사항 | •Oracl 또는 IBM Java 8 이상의 JRE |
2. 호환 가능한 DBMS
대상 DB | 원본 DB |
---|---|
Altibase DB V6.5.1 이상 |
|
ORACLE 10g ~ 11g |
|
JDBC 드라이버
Migration Center는 DB 접속을 위해 JDBC 드라이버를 사용하므로 원본 DB와 대상 DB에 알맞은 JDBC 드라이버를 준비하는 것이 중요하다.
사용자 편의를 위해 일부 DB에 한해 JDBC 드라이버를 일부 지원한다.
MS-SQL, MySQL, Informix, TimesTen은 법적인 문제로 사용자가 직접 대상 DB 및 원본 DB에 대한 JDBC 드라이버를 찾아야 한다.
TimesTen DB는 Type 2 드라이버만 지원하기 때문에 반드시 TimesTen Client Package가 설치 된 장비에서 이관을 수행하여야 한다.
JDBC 드라이버 다운로드 URL
Oracle JDBC 드라이버는 Migration Center에 포함되어 배포 되며, MS-SQL 2005는 Microsoft Support Lifecycle(MSL) 정책에 따라 지원하지 않으며, 다운로드 URL도 제공하지 않는다. 따라서 고객이 사용하는 MS-SQL 제품 내 포함되어 있는 JDBC 드라이버를 사용하여야 한다.
데이터베이스 | JDBC Download URL | 비고 |
---|---|---|
Tibero | https://technet.tmaxsoft.com/ | |
CUBRID | http://www.cubrid.org/?mid=downloads&item=jdbc_driver | |
TimesTen | http://www.oracle.com/technetwork/database/database-technologies/timesten/downloads/index.html | |
Infoemix | http://www14.software.ibm.com/webapp/download/search.jsp?go=y&rs=ifxjdbc | |
MySQL | http://dev.mysql.com/downloads/connector/j/ | |
MS-SQL | Download Microsoft JDBC Driver for SQL Server:
Microsoft JDBC Driver for SQL Server Support Matrix: | • MS-SQL 2008, 2008 SP1, 2012 JDBC 드라이버는 다운로드 URL에서 받으면 된다. • Migration Center 에서 요구하는 JDBC 6.0, JRE 8 버전 사용을 권장 • MS-SQL JDBC 드라이버는 JRE 7이상은 요구하기 때문에 Linux에서는 JAVA_HOME 환경 변수의 값을 JRE 7 이상 경로로 설정 필요 • JDBC 6.0 외의 JDBC 드라이버 버전을 사용하고자 할 때 SQL Server Support Matrix에서 호환 JRE를 사용한다. |
PostgreSQL |
Migration Center 이용 시 주의 사항
Migration Center 이용 시 다음의 주의 사항을 확인 하여야 한다.
1. Migration Center는 원본 DB 및 대상 DB 간 1:1 매핑으로 이관을 진행한다.
원본 DB의 DB 구성 요소를 추출한다.
- 원본 DB에서 추출한 구성 요소는 이관 대상 DB User, Tablespace, Data 용량 등을 확보한다.
- 추출한 원본 DB의 구성 요소를 대상 DB에 적용한다.
- 성능관련 이슈로 Migration 시 이관 대상 Table을 Memory Table로 구성을 하여 Data 용량에 맞게 물리 메모리 및 디스크를 확보하여야 한다.
2. LOB Data Type의 컬럼이 NOT NULL 제약 조건이 있으면 이관되지 않는다.
3. 원본 DB 및 대상 DB의 Character Set, National Character Set은 동일 문자셋으로 구성하는 것을 권고한다.
4. 대량의 Data 이관 시 Migration Center GUI 모드에서 환경 구성 후 Build, Reconcile 단계까지 진행하고, 성능을 위해 CLI 모드에서 RUN을 수행하면 성능에 이점이 있다.
5. 원본 DB 접속 시 DB User가 여러개의 DB(스키마)로 구성되어 있으면 Migration Center는 원본 DB에 접속을 못한다.
다중 DB(스키마) 구조이면 고객에게 협조를 구해 DB User, DB(스키마)를 1:1 매핑으로 변경하는 것이 좋으며 구성 변경이 되지 않는다면 Migration을 수동으로 진행하여야 한다.
6. 원본 DB가 Oracle에 한해 PSM까지 변환을 하며, Tibero는 PSM 변경 없이 이관을 진행한다.
그외 DB는 PSM을 이관하지 않고 정보만 수집하여 수동으로 변경을 하여야 한다.
시작하기
Migration Center 다운로드, 설치 및 제거하는 방법을 소개한다.
설치 및 제거
1. Migration Conter Download
다운로드 URL : http://support.altibase.com/kr/product
2. 설치 및 제거
설치 : 다운로드 받은 Migration Center를 임의의 디렉토리에 압축을 푼다.
제거 : Migration Center 디렉토리를 삭제 하면 됨
3. 실행
설치 된 디렉토리에서 migcenter.bat 실행으로 Migration Center를 수행할 수 있다.
Linux에서의 실행은 migcenter.sh로 수행할 수 있다.
Migration Center 이해하기
Migration Center에서 사용하는 용어 및 단계 구성을 설명한다.
용어
구분 | 설명 |
---|---|
프로젝트 |
|
기본 개념
Migration을 수행하는 전반적인 과정을 준비(Prepare), 구축(Build), 조정(Reconcile), 실행(Run) 및 검증(Data Validation) 다섯 단계로 구성한다.
구분 | 설명 |
---|---|
준비(Prepare) |
|
구축(Build) |
|
조정(Reconcile) |
|
실행(Run) |
|
검증(Data Validation) |
|
인터페이스
Migration Center에서 제공하는 사용자 인터페이스인 GUI 모드와 CLI 모드에 대해 간략히 설명한다.
각 모드 별 상세 사용법은 'GUI 모드 퀵 가이드' 및 'CLI 모드 퀵 가이드'에서 좀 더 상세한 설명을 제공한다.
Migration Center 시작
Migration Center를 시작하기 위해서는 다운로드 받은 MigrationCenter7.12.zip 파일을 임의의 폴더에 압축을 해제 하면 됩니다.
화면 | 수행 방법 |
---|---|
① Migration Center 디랙토리에서 migcenter.bat 수행 ② Linux OS에서 migcenter.sh 수행 |
사용자 인터페이스
Migration Center GUI 모드의 화면 구성은 4개의 창으로 이루어 진다.
메뉴 및 아이콘
Migration Center에서 사용하는 메뉴 및 아이콘에 대해 설명한다.
메뉴 구분 | 설명 |
---|---|
Database > Add Database Connection |
|
Database > Database Connection List |
|
Database > Exit |
|
Project > Create Project |
|
Project > Open Project |
|
Project > Connect |
|
Project > Disconnect |
|
Project > Close |
|
Migration > Build User |
|
Migration > Build Table |
|
Migration > Reconcile |
|
Migration > Run |
|
Migration > Data Validation |
|
Migration > Migration Options |
|
Report > Build Report |
|
Report > Reconcile Report |
|
Report > Run Report |
|
Report > Data Validation Report |
|
Migration Center Utility
구분 | 설명 | 화면 |
---|---|---|
PSM Converter for File |
| |
Generate Migration Error Report |
|
GUI 사용자 가이드
GUI 모드에서 Migration 진행 내용에 대하여 기술한다.
Migration 진행 단계
GUI 모드로 진행하는 Migration Center는 다음과 같은 순서로 Migration을 진행한다.
- Migration Center 시작
- 프로젝트 준비
- 원본 및 대상 DB 연결 등록
- 프로젝트 생성
- 프로젝트 열기
- 원본 및 대상 DB 연결
- Migration Options 설정 - 프로젝트 구축
- 프로젝트 조정
- 프로젝트 실행
- 프로젝트 검증
DBMS 연결 등록
원본 DBMS 및 대상 DBMS를 등록 한다.
DBMS를 등록하는 방법으로는 “메뉴 > Database > Add Database Connection”와 Add Database Connection 아이콘을 클릭하면 DBMS 정보 입력 창이 나온다.
구분 | 화면 |
---|---|
메뉴 > Database > Add Database Connection | |
Add Database Connection 아이콘 |
DBMS 정보 입력
DBMS 등록을 하기 위한 정보를 입력 등록한다.
등록 가능 DBMS는 Oracle, Altibase, MS-SQL, MySQL, Informix, TeimesTen, CUBRID, Tibero, PostgreSQL가 가능하다.
DBMS 구분 | 화면 | 항목 설명 |
---|---|---|
Oracle | ① DB 종류 선택 ② DB 연결이름 ③ DB 서버 접속 IP ④ DB 접속 포트 ⑤ 이관 DB User 명 ⑥ DB User 비밀번호 ⑦ Oracle 접속 SID 명 ⑧ 연결 IP 프로토콜 (IPv4, IPv6 중 선택) ⑨ DB 접속 Test ⑩ DB 연결 등록 ⑪ 등록 취소
Oracle JDBC 드라이버는 Migration Center에서 제공하는 기본 드라이버를 사용한다. | |
Altibase | ① DB 종류 선택 ② DB 연결이름 ③ DB 서버 접속 IP ④ DB 접속 포트 ⑤ 이관 DB User 명 ⑥ DB User 비밀번호 ⑦ JDBC 드라이버 선택 (File 버튼 클릭) ⑧ Altibase DB Name ⑨ Client에서 사용하는 문자셋(옵션) ⑩ 연결 IP 프로토콜 (IPv4, IPv6 중 선택) ⑪ 접속 JDBC 드라이버 프로퍼티(옵션) ⑫ DB 접속 Test ⑬ DB 연결 등록 ⑭ 등록 취소 | |
MS-SQL | ① DB 종류 선택 ② DB 연결이름 ③ DB 서버 접속 IP ④ DB 접속 포트 ⑤ 이관 DB User 명 ⑥ DB User 비밀번호 ⑦ JDBC 드라이버 선택 (File 버튼 클릭) ⑧ MS-SQL DB Name ⑨ 연결 IP 프로토콜 (IPv4, IPv6 중 선택) ⑩ 접속 JDBC 드라이버 프로퍼티(옵션) ⑪ DB 접속 Test ⑫ DB 연결 등록 ⑬ 등록 취소 | |
MySQL | ① DB 종류 선택 ② DB 연결이름 ③ DB 서버 접속 IP ④ DB 접속 포트 ⑤ 이관 DB User 명 ⑥ DB User 비밀번호 ⑦ JDBC 드라이버 선택 (File 버튼 클릭) ⑧ MySQL DB Name ⑨ 연결 IP 프로토콜 (IPv4, IPv6 중 선택) ⑩ 접속 JDBC 드라이버 프로퍼티(옵션) ⑪ DB 접속 Test ⑫ DB 연결 등록 ⑬ 등록 취소 | |
Imformix | ① DB 종류 선택 ② DB 연결이름 ③ DB 서버 접속 IP ④ DB 접속 포트 ⑤ 이관 DB User 명 ⑥ DB User 비밀번호 ⑦ JDBC 드라이버 선택 (File 버튼 클릭) ⑧ Informix DB Name ⑨ Informix 서버 이름 ⑩ 연결 IP 프로토콜 (IPv4, IPv6 중 선택) ⑪ 접속 JDBC 드라이버 프로퍼티(옵션) ⑫ DB 접속 Test ⑬ DB 연결 등록 ⑭ 등록 취소 | |
TimesTen | ① DB 종류 선택 ② DB 연결이름 ③ DB 서버 접속 IP ④ DB 접속 포트 ⑤ 이관 DB User 명 ⑥ DB User 비밀번호 ⑦ 접속 Type 선택 (client, direct) ⑧ JDBC 드라이버 선택 (File 버튼 클릭) ⑨ 서버의 DSN 정보 ⑩ 연결 IP 프로토콜 (IPv4, IPv6 중 선택) ⑪ 접속 JDBC 드라이버 프로퍼티(옵션) ⑫ DB 접속 Test ⑬ DB 연결 등록 ⑭ 등록 취소 | |
CUBRID | ① DB 종류 선택 ② DB 연결이름 ③ DB 서버 접속 IP ④ DB 접속 포트 ⑤ 이관 DB User 명 ⑥ DB User 비밀번호 ⑦ JDBC 드라이버 선택 (File 버튼 클릭) ⑧ CUBRID DB Name ⑨ 접속 JDBC 드라이버 프로퍼티(옵션) ⑩ DB 접속 Test ⑪ DB 연결 등록 ⑫ 등록 취소 | |
Tibero | ① DB 종류 선택 ② DB 연결이름 ③ DB 서버 접속 IP ④ DB 접속 포트 ⑤ 이관 DB User 명 ⑥ DB User 비밀번호 ⑦ JDBC 드라이버 선택 (File 버튼 클릭) ⑧ Tibero DB Name ⑨ DB 접속 Test ⑩ DB 연결 등록 ⑪ 등록 취소 | |
PostgerSQL | ① DB 종류 선택 ② DB 연결이름 ③ DB 서버 접속 IP ④ DB 접속 포트 ⑤ 이관 DB User 명 ⑥ DB User 비밀번호 ⑦ JDBC 드라이버 선택 (File 버튼 클릭) ⑧ DB Name 입력 ⑨ DB Schema 입력 ⑩ 연결 IP 프로토콜 (IPv4, IPv6 중 선택) ⑪ 접속 JDBC 드라이버 프로퍼티(옵션) ⑫DB 접속 Test ⑬ DB 연결 등록 ⑭ 등록 취소 |
DBMS 등록 리스트
Migration 하기 위해 등록 한 DBMS 리스트를 확인 할 수 있습니다.
구분 | 화면 | 설명 |
---|---|---|
메뉴 > Database > Database Connection List | ||
등록 Database List 확인 | ① 새로운 DBMS를 등록 ② 선택한 DBMS를 복사 ③ 선택한 DBMS의 입력 정보 변경 ④ 선택한 DBMS 삭제 ⑤ List 창 닫기 |
프로젝트 생성
Migration Center에서 Object 및 Data를 이관하기 위해서는 프로젝트가 생성되어야 한다.
프로젝트를 생성하는 방법으로는 "메뉴 > Project > Create project"와 Create Project 아이콘을 클릭하면 프로젝트 생성 입력 창이 나온다.
구분 | 주 화면 | 생성 화면 |
---|---|---|
메뉴 > Project > Create Project | ① 프로젝트 명 ② 프로젝트 생성 위치 (기본 Migreation Center의 projects 폴더에 생성됨) ③ 원본 DBMS 선택 ④ 대상 DBMS 선택 ⑤ 프로젝트 생성 ⑥ 프로젝트 취소 | |
Create Project 아이콘 |
프로젝트 열기
생성된 프로젝트를 재 사용하기 위하여 프로젝트를 열수 있습니다.
기존 프로젝트를 열기 위한 방법으로는 "메뉴 > Project > Open Project"를 클릭하면 프로젝트 선택 창이 나온다.
Migration Center는 하나의 프로젝트만 열어 이관이 가능하다.
구분 | 화면 | 프로젝트 선택 화면 |
---|---|---|
메뉴 > Project > Open Project | ① 생성 된 프로젝트 선택 ② 프로젝트 열기 ③ 프로젝트 열기 취소 |
프로젝트 DB 연결
Object 및 Data 이관을 하기 위해서는 프로젝트를 열어 DB 연결을 하여야 한다.
프로젝트 DB 연결은 '메뉴 > Project > Connect"와 GUI 인터페이스의 프로젝트 창의 프로젝트를 마우스 오른쪽 클릭하여 Connect를 클릭하면 된다.
구분 | 주 화면 | 생성 화면 |
---|---|---|
메뉴 > Project > Connect | ① 프로젝트 창에서 DB 연결 상태로 변경 ② 정보창의 Prepare 단계에서 Build 단계로 변경됨 ③ 전체 DB 연결 성공 로그가 나옴 | |
프젝트 창 |
Migration Options
Migration Option은 Migration을 진행하는데 영향을 미치는 기본적인 환경 설정이다. 기본 DB to DB, DB to File Migration Type이 있다.
Migration Option은 "메뉴 > Migration > Migration Options"와 GUI 인터페이스의 프로젝트 창의 프로젝트를 마우스 오른쪽 클릭하여 Migration Options를 클릭하면 된다.
구분 | 주 화면 | 생성 화면 |
---|---|---|
메뉴 > Migration > Migration Options | ||
프로젝트 |
DB to DB
원본 DB의 객체와 테이블의 Data가 대상 DB로 직접 Migration 된다.
DB to DB 화면 | 설명 | |
---|---|---|
Execution Thread |
| |
Migration Target |
| |
Object Options | ||
Foreign Key Migration |
| |
PSM Migration |
| |
Drop Existing Objects |
| |
Keep Partition Table |
| |
Use Double-quoted Identifier |
| |
Remove FORCE from View DDL |
| |
Postfix for reserved word |
| |
Data Options | ||
Batch Execution |
| |
Batch Size |
| |
Batch LOB type |
| |
Log Insert-failed Data |
| |
File Encoding |
| |
Data Validation Options |
| |
Operation |
| |
Write to CSV |
| |
Include LOB |
| |
Data Sampling |
| |
Percent Sampling (exact counting) |
| |
Record Count Sampling (approximate counting) |
|
DB to File
원본 DB의 객체와 테이블의 Data가 SQL 스크립트 파일, Form 파일 CSV 형태의 Data 파일로 각각 저장된다.
저장된 파일들은 iSQL, iLoader를 이용하여 대상 DB로 Migration 한다.
DB to File 화면 | 설명 | |
---|---|---|
Execution Thread |
| |
Migration Target |
| |
Object Options | ||
Foreign Key Migration |
| |
PSM Migration |
| |
Keep Partition Table |
| |
Use Double-quoted Identifier |
| |
Remove FORCE from View DDL |
| |
Postfix for reserved word |
| |
Data Options | ||
File Encoding | 스크립트와 데이터 파일 출력에 사용될 인코딩 문자 집합을 지정한다. |
Migration 진행
Migration Center를 이용하여 Migration 진행은 3단계로 진행이 된다.
User 단위 Migration > Build User 단계
DB User에 포함된 모든 객체 및 Data를 Migration 하기 위해서는 Build 단계의 Build User를 선택하여 Migration 진행한다.
Migration Options에 의해 객체 또는 객체 및 Data를 DB User 단위로 Migration을 진행한다.
선택 방법 | 주 화면 | 설명 |
---|---|---|
메뉴 > Migration > Build User or 프로젝트 창 > Build User or 화면 상단 > Build 아이콘 선택 | ① Approximate counting method 원본 DBMS의 통계 값을 참조하여 테이블의 레코드 개수를 가져온다. 통계 값의 정확도에 따라 레코드 개수의 정확도가 달라진다. ② Exact counting method 원본 DBMS의 모든 테이블을 대상으로 Count 함수를 수행하여 정확한 테이블의 레코드 개수를 가져온다. ③ OK 버튼 클릭으로 다음을 진행한다. |
Build 단계가 종료 되면 원본 DB에 대한 Build Report를 생성해 준다.
Build 종료 화면 | Build Report |
---|---|
① Build 단계가 종료 되면 Build Report 버튼을 생성한다. ② 생성된 Build Report를 복사한다. ③ Build 단계를 종료 한다. |
Build 단계에서 수집 된 원본 DB, 대상 DB의 정보를 보여줍니다.
Build Report 예제 |
---|
User 단위 Migration > Reconcile 단계
Migraction을 진행하기 위한 단계로 원본, 대상 DB간에 객체를 어떻게 Migraction 할 것인지에 대한 정보를 조정한다.
User 단위 Migration을 진행하면서 기본 설정에 대한 변경을 Reconcile 단계에서 변경할 수 있다.
선택 방법 | 주 화면 | 설명 |
---|---|---|
메뉴 > Migration > Reconcile or 프로젝트 창 > Reconcile or 화면상단 > Reconcile 아이콘 선택 | ① Migration Options에 대한 설정이 정확한지 문의 내용이며 OK 버튼을 클릭하여 진행한다. ② Reconcile 단계의 상세 조정 창 상세 설명은 다음 장에서 진행 |
다음은 Reconcile 단계에서 조정할 내용에 대한 상세 설명이다.
Steps : Data Type Mapping | 설명 |
---|---|
① 원본, 대상 DBMS의 Data Type을 맵핑한다. ② 변경하고자 하는 Data Type을 마우스 클릭으로 선택한다. ③ 선택한 Data Type을 Change 버튼을 클릭하여 변경한다. ④ 변경하고자 하는 Data Type을 선택한다. 숫자 타입은 Precision, Scale를 추가 설정 가능하다. ⑤ 변경한 내용이 맞지 않으면 초기화 한다. ⑥ 변경 설정이 완료되면 Next 버튼을 클릭하여 다음 단계로 넘어간다. ⑦ Cancel 버튼은 Reconcile 단계를 종료 한다. |
Steps : PSM Data Type Mapping | 설명 |
---|---|
① 원본, 대상 DBMS의 PSM Data Type을 맵핑한다. ② 변경하고자 하는 Data Type을 마우스 클릭으로 선택한다. ③ 선택한 Data Type을 Change 버튼을 클릭하여 변경한다. ④ 변경하고자 하는 Data Type을 선택한다. 숫자 타입은 Precision, Scale를 추가 설정 가능하다. ⑤ 변경한 내용이 맞지 않으면 초기화 한다. ⑥ 변경 설정이 완료되면 Next 버튼을 클릭하여 다음 단계로 넘어 간다. ⑦ Cancel 버튼은 Reconcile 단계를 종료 한다. ⑧ 이전 단계로 돌아간다. |
Steps : Tablespace to Tablespace Mapping | 설명 |
---|---|
① 원본, 대상 DBMS의 Tablespace를 맵핑한다. ② 변경하고자 하는 Tablespace를 선택한다. Tablespace를 선택하지 않으면 기본 Tablespace로 선택된다. ③ 변경한 내용이 맞지 않으면 초기화 한다. ④ 변경 설정이 완료되면 Next 버튼을 클릭하여 다음 단계로 넘어간다. ⑤ Cancel 버튼은 Reconcile 단계를 종료 한다. ⑥ 이전 단계로 돌아간다.
참조 Default destnation Tablespace는 대상 DDBMS의 DB User가 사용 권한이 있어야 한다. 맵핑 Tablespace는 Migration 전에 대상 DDBMS에 생성이 되어 있어야 함. |
Steps : Object to Tablespace Mapping | 설명 |
---|---|
① 테이블 및 인덱스를 드래그 앤 드롭으로 Tablespace를 변경할 수 있다. ② 변경하고자 하는 테이블을 다른 Tablespace로 드래그 앤 드롭으로 이동한다. ③ 변경 설정이 완료되면 Next 버튼을 클릭하여 다음 단계로 넘어간다. ④ Cancel 버튼은 Reconcile 단계를 종료 한다. ⑤ 이전 단계로 돌아간다. |
Steps : Partitioned Table Conversion | 설명 |
---|---|
① 파티션트 테이블 구성을 변경한다. ② 변경하고자 하는 파티션트 테이블을 선택한다. ③ 파티션 타입을 변경한다. 원본 DBMS의 파트션 타입을 보여주며, 변경이 가능하다. Migration 진행으로 파티션 타입은 변경하지 않는 것이 좋다. ④ 파티션 테이블에 대한 파티션 키를 설정한다. ⑤ 변경하고자 하는 파티션을 선택한다. ⑥ 선택한 파티션을 삭제한다. ⑦ 선택한 파티션 내용을 변경한다. ⑧ 선택한 파티션에 대한 변경 내용을 수정한다. ⑨ 추가할 파티션 내용을 입력한다. ⑩ 변경 설정이 완료되면 Next 버튼을 클릭하여 다음 단계로 넘어간다.
참조 Altibase DB의 List, Range 파티션테이블은 Default Partition을 가지고 있어야 한다. Migration Options에서 Keep Partitioned Table을 NO로 선택하면 파트션드 테이블을 일반 테이블로 Migration 한다. |
Steps : Select Editing | 설명 |
---|---|
① 원본 DBMS의 테이블 에서 데이터 추출 시 사용할 SELECT문을 수정한다. ② 수정할 SELECT문에 들어갈 Hint, Where 조건을 마우스 더블 클릭하여 입력한다. ③ 수정한 내용을 초기화 한다. ④ Cancel 버튼은 Reconcile 단계를 종료 한다. ⑤ 변경 설정이 완료되면 Next 버튼을 클릭하여 다음 단계로 넘어간다. ⑥ 이전 단계로 돌아간다. |
Steps : DDL Editing | 설명 |
---|---|
① 선행 PSM 관련 내용을 Converter 한다. ② 객체에 대한 스크립트 내용을 보여준다. ③ 변경하고자 하는 객체 타입을 선택한다. ④ 객체 타입의 객체를 선택한다. ⑤ 변경하고자 하는 내용을 수정한다. ⑥ 변경한 스크립트를 저장한다. ⑦ Cancel 버튼은 Reconcile 단계를 종료 한다. ⑧ Reconcile 단계 저장하고 종료 메시지 창을 연다. ⑨ 이전 단계로 돌아간다. ⑩ Reconcile 단계 전체 종료 참조 Save 버튼은 Destination DDL 내용이 변경되어야만 활성화 된다. |
Reconcile 단계에서 진행 된 보고서를 보여준다.
Reconcile Report 예제 |
---|
User 단위 Migration > Run 단계
Run 단계는 원본 DB의 DB 객체를 Migraction Options에 따라 DB 또는 외부 파일로 복사한다.
Run 단계 완료 후에 생성되는 실행 보고서에 실행 결과가 RunReport4Summary.html 파일로 생성되면, 실행 실패한 객체에 대한 보고서는 RunReport4Missing.html 파일에 상세히 기술된다.
선택 방법 | 수행 화면 | 설명 |
---|---|---|
메뉴 > Migration > Run or 프로젝트 창 > Run or 화면상단 > Run 아이콘 선택 | ① Run 단계 수행을 진행한다. ② Run 단계를 Cancel 한다. ③ ① 번 버튼을 수행하면 자동으로 Migration을 진행 후 보고서 창을 연다. ④ 보고서 파일을 복사한다. ⑤ Run 단계를 종료 한다. |
Run 단계에서 진행 된 보고서 입니다.
Run Report 예제 |
---|
Table 단위 Migration > Build Table 단계
Migraction 대상 중 Table에 대해서만 객체 및 Data를 Migraction 한다.
선택 방법 | 주 화면 | 설명 |
---|---|---|
메뉴 > Migration > Build Table or 프로젝트 창 > Build Table or 화면상단 > Table 아이콘 선택 | ① Approximate counting method 원본 DBMS의 통계 값을 참조하여 테이블의 레코드 개수를 가져온다. 통계 값의 정확도에 따라 레코드 개수의 정확도가 달라진다. ② Exact counting method 원본 DBMS의 모든 테이블을 대상으로 Count 함수를 수행하여 정확한 테이블의 레코드 개수를 가져온다. ③ OK 버튼 클릭으로 다음을 진행한다. |
Table 선택 | 설명 |
---|---|
① 아이콘 + 버튼을 클릭하여 Table 선택 창을 호출한다. ② Build Table 단계를 종료 한다. ③ keyword에 입력한 명칭에 맞게 Table을 리스트화 하고, 입력하지 않으면 전체 Table 리스트를 출력한다. ④ Keyword에 맞게 Table을 찾아준다. ⑤ 리스트 된 Table을 하나씩 선택 가능하다. ⑥ 리스트 된 Table을 모두 선택 한다. ⑦ 선택 된 테이블을 Migration 리스트에 추가 한다. ⑧ Table 선택 창을 종료 한다. ⑨ 기존에 선택 된 Table 외 추가 선택이 가능하다. ⑩ Select Tables 리스트에서 선택 된 Table을 삭제 한다. ⑪ 선택한 Table을 Build 한다. ⑫ Table Build 단계를 종료 한다. ⑬ Build Report 를 생성한다. |
Build 단계에서 수집된 원본 DB, 대상 DB의 정보를 보여줍니다.
Build Report 예제 |
---|
Table 단위 Migration > Reconcile 단계
Migraction을 진행 계획하기 위한 단계로 원본, 대상 DB 간에 객체를 어떻게 Migraction 할 것인지에 대한 정보를 조정한다.
선택한 Table 단위 Migraction을 진행하면서 기본 설정에 대한 변경을 Reconcile 단계에서 변경할 수 있다.
DB User 단위의 Migraction 조정 작업과 동일한 구성으로 진행한다. 상세 내용은 DB User 단위를 참조
선택 방법 | 주 화면 | 설명 |
---|---|---|
메뉴 > Migration > Reconcile or 프로젝트 창 > Reconcile or 화면상단 > Reconcile 아이콘 선택 | ① Migration Options에 대한 설정이 정확한지 문의 내용이며 OK 버튼을 클릭하여 진행한다. ② Reconcile 단계의 상세 조정 창 상세 설명은 DB User 단위를 참조 |
Table 단위 Migration > Run 단계
Run 단계는 원본 DB의 객체를 Migraction Options에 따라 대상 DB 또는 외부 파일로 복사한다.
Run 단계 완료 후 생성되는 실행 보고서에 실행 결과가 RunReport4Summary.html 파일로 생성되며 실행 실패한 객체에 대한 보고서는 RunReport4Missing.html 파일에 상세히 기술 된다.
선택 방법 | 수행 화면 | 설명 |
---|---|---|
메뉴 > Migration > Run or 프로젝트 창 > Run or 화면상단 > Run 아이콘 선택 | ① Run 단계 수행을 진행한다. ② Run 단계를 Cancel 한다. ③ ① 번 버튼을 수행하면 자동으로 Migration을 진행 후 보고서 창을 연다. ④ 보고서 파일을 복사한다. ⑤ Run 단계를 종료 한다. |
검증 단계
검증 단계에서는 실행 단계에서 수행한 데이터 이관이 정확하게 수행되었는지 검사한다. 검증이 완료된 후 사용자에게 검증 보고서를 제공하여 사후 처리를 적절히 수행할 수 있도록 한다.
보고서는 원본 및 대상 DB 정보와 함께 검증을 완료한 테이블 리스트 및 데이터 일치, 불일치 건수 정보를 나열한다.
선택 방법 | 수행 화면 | 설명 |
---|---|---|
메뉴 > Migration > Data Validation or 프로젝트 창 > Data Validation | ① Data 검증을 진행한다. ② Data 검증을 Cancel 한다. ③ Data 검증 내용 |
CLI 모드 수행
Migraction Center는 GUI 모드 및 CLI 모드를 지원한다. 기본 Migraction 기본 구성은 GUI 모드로 구성을 하는 것이 좋다.
CLI 모드는 GUI 모드에서 Migraction 구성을 진행하고 Run 단계에서 수행을 하면 Data Migraction 시 성능의 이점이 있다.
GUI에서 CLI 실행 단계 수행 방법을 가이드 한다.
- Migraction Center를 GUI 모드에서 Reconcile 단계까지 수행
- GUI 모드의 Migraction Center 전체 폴더를 Linux 서버의 임의의 디렉토리에 업로드
- 업로드한 Migraction 프로젝트를 CLI로 수행
- CLI Run 단계 수행 방법
$ ./migcenter.sh run [project_path]
[project_path] 는 프로젝트 절대 경로를 입력한다.
변환 가능 객체
구축 방식에 따라 Migration 객체의 이관 여부는 다르다. Migration Center에서 지원하지 않는 원본 DBMS의 객체는 사용자가 수동으로 변환해야 한다.
구축 단계에서 객체 생성 구문은 SrcDbObj_Create.sql, BuildReport4Unsupported.html 파일에 기록하고 있으므로 사용자는 이 파일들을 변환 작업에 참조할 수 있다.
Altibase to Altibase
객체 유형 | Build User 가능 여부 | Build Table 가능 여부 | 비고 |
---|---|---|---|
Table | O | O | 테이블과 칼럼에 명시된 주석도 함께 마이그레이션 된다. |
Primary Key 제약 | O | O | |
Unique 제약 | O | O | |
Check 제약 | O | O | |
Foreign Key 제약 | O | O | |
Index | O | O | |
Sequence | O | X | |
Queue | O | X | |
Private Synonym | 부분 지원 | X | 다른 schema 내의 객체를 참조하는 시노님도 마이그레이션 된다. |
Procedure | 부분 지원 | X | 별도의 변환 작업 없이 원본 DDL 그대로 수행된다. |
Function | 부분 지원 | X | |
Package | 부분 지원 | X | |
View | 부분 지원 | X | |
Materialized View | 부분 지원 | X | |
Trigger | 부분 지원 | X |
Altibase to Oracle
객체 유형 | Build User 가능 여부 | Build Table 가능 여부 | 비고 |
---|---|---|---|
Table | O | O | |
Primary Key 제약 | O | O | |
Unique 제약 | O | O | |
Check 제약 | O | O | |
Foreign Key 제약 | O | O | |
Index | O | O | |
Sequence | O | X | |
Queue | X | X | 변환 가능한 객체가 없기 때문에, build 단계에서 자동으로 제외된다. |
Private Synonym | 부분 지원 | X | 다른 schema 내의 객체를 참조하는 시노님도 마이그레이션 된다. |
Procedure | 부분 지원 | X | 별도의 변환 작업 없이 원본 DDL 그대로 수행된다. |
Function | 부분 지원 | X | |
Package | 부분 지원 | X | |
View | 부분 지원 | X | |
Materialized View | 부분 지원 | X | 별도의 변환 작업 없이 원본 DDL 그대로 수행된다. 참고로 Migration을 위해서는 베이스 테이블에 Primary Key가 있어야 한다. |
Trigger | 부분 지원 | X | 별도의 변환 작업 없이 원본 DDL 그대로 수행된다. |
Cubrid to Altibase
객체 유형 | Build User 가능 여부 | Build Table 가능 여부 | 비고 |
---|---|---|---|
Table | O | O | 테이블과 칼럼에 명시된 주석도 함께 마이그레이션 된다. |
Primary Key 제약 | O | O | |
Unique 제약 | O | O | |
Foreign Key 제약 | O | O | |
Index | O | O | CUBRID의 Reverse index와 Prefix length index는 Altibase에서 지원하지 않는다. Reverse index는 인덱스 생성 시 키 값을 역으로 넣는 방식으로, Altibase 마이그레이션에서 지원하지 않는다. Prefix length index는 키 값의 일정 부분만을 인덱싱하는 기법으로, 마이그레이션 시 Altibase의 일반 인덱스로 대체된다. |
auto_increment | O | O | Sequence로 마이그레이션 된다. |
Serial | O | X | |
Procedure | X | X | 구축(Build) 단계에서 원본 데이터베이스에서 수집한 객체 생성 구문을 SrcDbObj_Create.sql과 BuildReport4Unsupported.html 파일에 기록한다. |
Function | X | X | |
View | X | X | |
Trigger | X | X |
Imformix to Altibase
객체 유형 | Build User 가능 여부 | Build Table 가능 여부 | 비고 |
---|---|---|---|
Table | O | O | 테이블과 칼럼에 명시된 주석도 함께 마이그레이션 된다. |
Primary Key 제약 | O | O | |
Unique 제약 | O | O | |
Foreign Key 제약 | O | O | |
Index | O | O | |
Serial 칼럼 타입 | O | O | Sequence로 마이그레이션 된다. |
Sequence | O | X | |
Private Synonym | 부분 지원 | X | 동일 schema 내의 객체를 참조하는 시노님만 마이그레이션 된다. |
Procedure | X | X | 구축(Build) 단계에서 원본 데이터베이스에서 수집한 객체 생성 구문을 SrcDbObj_Create.sql과 BuildReport4Unsupported.html 파일에 기록한다. |
Function | X | X | |
View | X | X | |
Trigger | X | X |
MySQL to Altibase
객체 유형 | Build User 가능 여부 | Build Table 가능 여부 | 비고 |
---|---|---|---|
Table | O | O | 테이블과 칼럼에 명시된 주석도 함께 마이그레이션 된다. |
Primary Key 제약 | O | O | |
Unique 제약 | O | O | |
Check 제약 | O | O | |
Foreign Key 제약 | O | O | |
Index | O | O | |
auto_increment 칼럼 속성 | O | O | Sequence로 마이그레이션 된다. |
Procedure | X | X | 구축(Build) 단계에서 원본 데이터베이스에서 수집한 객체 생성 구문을 SrcDbObj_Create.sql과 BuildReport4Unsupported.html 파일에 기록한다. |
Function | X | X | |
View | X | X | |
Trigger | X | X |
Oracle to Altibase
객체 유형 | Build User 가능 여부 | Build Table 가능 여부 | 비고 |
---|---|---|---|
Table | O | O | 임시 테이블을 마이그레이션 하기 위해서는 휘발성 테이블스페이스가 Altibase에 있어야 한다. Altibase의 임시 테이블은 휘발성 테이블스페이스에만 생성할 수 있기 때문이다.테이블과 칼럼에 명시된 주석(comment)도 함께 마이그레이션 된다. |
Primary Key 제약 | O | O | |
Unique 제약 | O | O | |
Check 제약 | O | O | |
Foreign Key 제약 | O | O | |
Index | O | O | |
Sequence | O | X | |
Private Synonym | 부분 지원 | X | 동일 schema 내의 객체를 참조하는 시노님만 마이그레이션 된다. |
Procedure | 부분 지원 | X | PSM 변환기에 정의된 규칙에 따라 객체 생성 문장을 변환하고 마이그레이션을 시도한다. |
Function | 부분 지원 | X | |
Package | 부분 지원 | X | |
View | 부분 지원 | X | |
Materialized View | 부분 지원 | X | |
Trigger | 부분 지원 | X |
MSSQL to Altibase
객체 유형 | Build User 가능 여부 | Build Table 가능 여부 | 비고 |
---|---|---|---|
Table | O | O | 테이블과 칼럼에 명시된 주석도 함께 마이그레이션 된다. |
Primary Key 제약 | O | O | |
Unique 제약 | O | O | |
Check 제약 | O | O | |
Foreign Key 제약 | O | O | |
Index | O | O | |
Identity 칼럼 속성 | O | O | Sequence로 마이그레이션 된다. |
Sequence | O | X | SQL Server 2012 지원 |
Private Synonym | 부분 지원 | X | 동일 schema 내의 객체를 참조하는 시노님만 마이그레이션 된다. |
Procedure | X | X | 구축(Build) 단계에서 원본 데이터베이스에서 수집한 객체 생성 구문을 SrcDbObj_Create.sql과 BuildReport4Unsupported.html 파일에 기록한다. |
Function | X | X | |
View | X | X | |
Trigger | X | X |
TimesTen to Altibase
객체 유형 | Build User 가능 여부 | Build Table 가능 여부 | 비고 |
---|---|---|---|
Table | O | O | 임시 테이블을 Altibase로 마이그레이션 하기 위해서는 휘발성 테이블스페이스가 Altibase에 있어야 한다. Altibase의 임시 테이블은 휘발성 테이블스페이스에만 생성할 수 있기 때문이다. 테이블과 칼럼에 명시된 주석(comment)도 함께 마이그레이션 된다. |
Primary Key 제약 | O | O | |
Unique 제약 | O | O | |
Foreign Key 제약 | O | O | |
Index | O | O | TimesTen의 인덱스는 정렬 순서(ASC/DESC)나 크기에 대한 정보를 제공하지 않는다. 따라서 인덱스 순서는 기본값(ASC)으로 이관하며, 크기는 표시하지 않는다. TimesTen에서 제공되는 세 가지(hash, range, bitmap) 인덱스 중에서 hash·range 인덱스는 Altibase의 B-tree index로 변환되어 생성되며, bitmap 인덱스는 마이그레이션을 지원하지 않는다. 한 인덱스 컬럼에 primary key나 unique 제약이 있을 경우, 해당 인덱스는 Altibase에서 허용하지 않기 때문에 마이그레이션에서 제외되며 build report의 Missing 탭에서 확인할 수 있다. |
Sequence | O | X | |
Private Synonym | 부분 지원 | X | 동일 schema 내의 객체를 참조하는 시노님만 마이그레이션 된다. |
Procedure | 부분 지원 | X | TimesTen 11.2 지원 |
Function | 부분 지원 | X | |
Package | 부분 지원 | X | |
View | 부분 지원 | X | |
Materialized View | 부분 지원 | X | |
Trigger | 부분 지원 | X |
Tibero to Altibase
객체 유형 | Build User 가능 여부 | Build Table 가능 여부 | 비고 |
---|---|---|---|
Table | O | O | Tibero의 임시 테이블을 Altibase로 마이그레이션 하기 위해서는 휘발성 테이블스페이스가 Altibase에 있어야 한다. Altibase의 임시 테이블은 휘발성 테이블스페이스에만 생성할 수 있기 때문이다. 테이블과 칼럼에 명시된 주석(comment)도 함께 마이그레이션 된다. |
Primary Key 제약 | O | O | |
Unique 제약 | O | O | |
Check 제약 | O | O | |
Foreign Key 제약 | O | O | |
Index | O | O | Tibero의 LOB 타입 칼럼에 자동으로 생성되는 index는 Altibase에서 지원하지 않으므로 이관되지 않는다 |
Sequence | O | X | |
Private Synonym | 부분 지원 | X | 동일 schema 내의 객체를 참조하는 시노님만 마이그레이션 된다. |
Procedure | 부분 지원 | X | PSM 변환기에 정의된 규칙에 따라 객체 생성 문장을 변환하고 마이그레이션을 시도한다. |
Function | 부분 지원 | X | |
Package | 부분 지원 | X | |
View | 부분 지원 | X | |
Materialized View | 부분 지원 | X | |
Trigger | 부분 지원 | X |
참고
Tibero의 Procedure, Function, View, Materialized View, Trigger는 객체를 마이그레이션 하기 위해 Third-Party에서 제공하는 Oracle용 SQL 파서를 사용한다.
따라서, Oracle 문법과 호환되지 않는 Tibero 고유의 문법으로 생성된 객체는 변환과정에서 파싱 에러가 발생가능하며, 이 경우 사용자가 수동으로 문법을 변환해야 한다.
PostgerSQL to Altibase
객체 유형 | Build User 가능 여부 | Build Table 가능 여부 | 비고 |
---|---|---|---|
Table | O | O | 컬럼에 명시된 주석(comment)도 함께 마이그레이션된다. |
Primary Key 제약 | O | O | |
Unique 제약 | O | O | |
Check 제약 | O | O | |
Foreign Key 제약 | O | O | CASCADE, NO ACTION, SET NULL 옵션은 양쪽 모두 같은 옵션으로 마이그레이션 대상이다. RESTRICT 옵션은 Altibase에서 Foreign key 옵션이 없을 때와 동작이 같아서, 마이그레이션 시 이 옵션은 삭제한다. SET DEFAULT 옵션은 Altibase에서 지원하지 않기 때문에 마이그레이션 수행 시 SET NULL로 변환한다. |
Index | O | O | PostgreSQL의 다양한 인덱스 타입 중 Altibase에서 지원하는 B-tree와 R-tree만 마이그레이션 대상이다. |
Sequence | O | X | PostgreSQL 시퀀스의 기본 최댓값 9223372036854775807은 Altibase 시퀀스의 기본 최댓값 9223372036854775806으로 강제 변환한다. PostgreSQL 시퀀스의 캐시 크기가 1이면 Altibase에서 CACHE 절을 삭제하고 Altibase의 기본 캐시 크기 20으로 생성한다. 'Build Table'에서 사용자가 명시적으로 생성한 시퀀스는 마이그레이션 대상에서 제외되나, 마이그레이션 대상 테이블 컬럼의 Serial 데이터 타입을 위해 생성된 시퀀스는 테이블과 함께 마이그레이션된다. |
Function | X | X | 마이그레이션 미지원 대상이다. 구축(Build) 단계에서 PostgreSQL에서 수집한 객체 생성 구문을 SrcDbObj_Create.sql과 BuildReport4Unsupported.html 파일에 기록한다. |
View | X | X | |
Materialized View | X | X | |
Trigger | X | X |
참고
위 표에 기록되지 않은 PostgreSQL의 객체(예, Exclusion 제약, Type, Enum 등)는 Altibase에 대응되는 객체가 없어 마이그레이션 대상에서 제외한다.