CLI 모드
이번 장에서는 CLI 모드 사용법에 대해서 기술합니다.
개요
CLI 모드는 웹을 통하지 않고 터미널에서 직접 마이그레이션 작업을 실행하는 기능입니다.
cli.sh 파일을 통해 실행할 수 있으며, 커맨드 라인 또는 프로퍼티 파일을 통해 설정을 전달합니다.
주의
CLI 모드에서도 D-Works 서버를 실행하기 때문에, 기본 모드 또는 다른 CLI 모드와 동시에 실행할 수 없습니다.
사용법
수행예시
sh cli.sh -h예상결과
Usage:
1. Command-line options only
sh cli.sh <argument_name1>=<argument_value1> <argument_name2>=<argument_value2> ...
2. Property file usage
sh cli.sh PROPERTY_FILE=cli-migration.properties
3. Property file and command-line options usage
sh cli.sh PROPERTY_FILE=cli-migration.properties <argument_name1>=<argument_value1> <argument_name2>=<argument_value2> ...
======================================================================================================================================================
PROPERTY FILE CONFIGURATION
======================================================================================================================================================
PROPERTY_FILE Path to the properties file, refer to the example file: cli-migration.properties.eg
======================================================================================================================================================
SOURCE DATABASE CONFIGURATION
======================================================================================================================================================
SOURCE_DATABASE Source database vendor
...1. 프로퍼티 파일로 옵션 전달
sh cli.sh PROPERTY_FILE=cli-migration.properties2. 커맨드 라인으로 옵션 전달
sh cli.sh SOURCE_DATABASE=ORACLE ... MIGRATION_METHOD=FULL TABLE=SRC:T13. 프로퍼티 파일과 커맨드 라인으로 옵션 전달
sh cli.sh PROPERTY_FILE=cli-migration.properties SOURCE_DATABASE=ORACLE ... MIGRATION_METHOD=FULL TABLE=SRC:T1옵션 목록
SOURCE_DATABASE
소스 데이터베이스 타입
-
true
공통
SOURCE_IPADDRESS
소스 데이터베이스 IP 주소
-
true
공통
SOURCE_PORT
소스 데이터베이스 포트
-
true
공통
SOURCE_USER
소스 데이터베이스 사용자
-
true
공통
SOURCE_PASSWORD
소스 데이터베이스 비밀번호
-
true
공통
SOURCE_DATABASE_NAME
소스 데이터베이스 이름
-
true
공통
SOURCE_SSL
소스 데이터베이스 SSL 사용 여부
false
false
공통
SOURCE_LOB_CHUNK_SIZE_VALUE
소스 데이터베이스 LOB 청크 크기
32
false
공통
SOURCE_LOB_CHUNK_SIZE_UNIT
소스 데이터베이스 LOB 단위
KB
false
공통
TARGET_IPADDRESS
타겟 데이터베이스 IP 주소
-
true
공통
TARGET_PORT
타겟 데이터베이스 포트
-
true
공통
TARGET_USER
타겟 데이터베이스 사용자
-
true
공통
TARGET_PASSWORD
타겟 데이터베이스 비밀번호
-
true
공통
TARGET_DATABASE_NAME
타겟 데이터베이스 이름
-
true
공통
TARGET_SSL
타겟 데이터베이스 SSL 사용 여부
false
false
공통
TARGET_LOB_CHUNK_SIZE_VALUE
타겟 데이터베이스 LOB 청크 크기
32
false
공통
TARGET_LOB_CHUNK_SIZE_UNIT
타겟 데이터베이스 LOB 단위
KB
false
공통
MIGRATION_METHOD
마이그레이션 방식
-
true
공통
LOG_LEVEL
로그 레벨
INFO
false
공통
TABLE, VIEW, INDEX 등
DDL_ONLY 이관 대상 객체 목록
-
조건부
DDL_ONLY /
FULL
SOURCE_TABLE_TARGET_TABLE_PAIR
DATA_ONLY 이관 대상 테이블 매핑
-
조건부
DATA_ONLY
EXECUTE_DDL_STATEMENTS_ON_THE_TARGET_DB
추출된 DDL 스크립트를 타겟 데이터베이스에 수행할지 여부
true
false
DDL_ONLY
CREATE_STATEMENT_TYPE
DDL 생성 구문 타입 (CREATE, CREATE OR REPLACE)
CREATE OR REPLACE
false
DDL_ONLY /
FULL
DEGREE_OF_PARALLEL_FOR_INDEX_CREATION
인덱스 생성 병렬도
1
false
DDL_ONLY /
FULL
MIGRATE_OBJECT_COMMENTS
객체 코멘트 이관 여부
true
false
DDL_ONLY /
FULL
CREATE_SCHEMA_USER
스키마 유저 생성 여부
true
false
DDL_ONLY /
FULL
PASSWORD_POLICY
패스워드 정책 (DEFAULT, SET_INITIAL_PASSWORD)
DEFAULT
false
DDL_ONLY /
FULL
INITIAL_PASSWORD
SET_INITIAL_PASSWORD 정책 시 초기 비밀번호
tibero
false
DDL_ONLY /
FULL
GRANT_SYSTEM_PRIVILEGES
시스템 권한 부여 여부
true
false
DDL_ONLY /
FULL
GRANT_OBJECT_PRIVILEGES
객체 권한 부여 여부
true
false
DDL_ONLY /
FULL
GRANT_ROLE
롤 부여 여부
true
false
DDL_ONLY /
FULL
ASSIGN_TABLESPACE_QUOTAS
테이블스페이스 쿼터 부여 여부
true
false
DDL_ONLY /
FULL
ASSIGN_PROFILE
프로파일 부여 여부
true
false
DDL_ONLY /
FULL
TABLE_OPTION_CREATE_TABLE_WITH_CONSTRAINTS
제약 포함 테이블 생성 여부
true
false
DDL_ONLY /
FULL
TABLE_OPTION_INCLUDE_FOREIGN_KEY_CONSTRAINTS
FK 포함 여부
true
false
DDL_ONLY /
FULL
TABLE_OPTION_CREATE_CONSTRAINTS_WITH_VALIDATE
VALIDATE로 생성 여부
true
false
DDL_ONLY /
FULL
TABLE_OPTION_CHANGE_SEMANTIC_FROM_BYTE_TO_CHAR
CHAR 또는 VARCHAR 컬럼의 길이 기준을 BYTE → CHAR로 변경할지 여부
false
false
DDL_ONLY /
FULL
TABLE_OPTION_SCALE_COLUMN_SIZE
컬럼 크기 배율 적용 여부
false
false
DDL_ONLY /
FULL
TABLE_OPTION_SCALE_COLUMN_SIZE_CHAR
CHAR 컬럼 크기 배율
1
false
DDL_ONLY /
FULL
TABLE_OPTION_SCALE_COLUMN_SIZE_VARCHAR
VARCHAR 컬럼 크기 배율
1
false
DDL_ONLY /
FULL
ROLE_OPTION_GRANT_SYSTEM_PRIVILEGES
롤 시스템 권한 부여 여부
true
false
DDL_ONLY /
FULL
ROLE_OPTION_GRANT_OBJECT_PRIVILEGES
롤 객체 권한 부여 여부
true
false
DDL_ONLY /
FULL
ROLE_OPTION_GRANT_ROLE
롤에 롤 부여 여부
true
false
DDL_ONLY /
FULL
INSERT_METHOD
데이터 적재 방식
DPL
false
DATA_ONLY
NUM_OF_JOBS
병렬 작업 개수 (= 동시에 이관할 테이블의 개수)
1
false
DATA_ONLY
PARALLEL_EXTRACT
병렬 추출 여부
true
false
DATA_ONLY
PARALLEL_EXTRACT_THREAD_COUNT
추출 스레드 개수
4
false
DATA_ONLY
PARALLEL_EXTRACT_HINT
병렬 힌트 사용 여부
true
false
DATA_ONLY
PARALLEL_EXTRACT_HINT_OF_DEGREE
병렬 힌트 병렬도
2
false
DATA_ONLY
FETCH_SIZE
Fetch 크기
1
false
DATA_ONLY
PARALLEL_INSERT
병렬 적재 여부
true
false
DATA_ONLY
PARALLEL_INSERT_THREAD_COUNT
적재 스레드 개수
4
false
DATA_ONLY
BATCH_COUNT
배치 크기(CPL 방식에서 사용)
100
false
DATA_ONLY
DISABLE_INDEX
데이터 이관 전 인덱스 비활성화 여부
false
false
DATA_ONLY
REBUILD_INDEX
데이터 이관 후 인덱스 재구성 여부
false
false
DATA_ONLY
COMMIT_AT_END
종료 시 커밋 (CPL 방식에서 사용)
true
false
DATA_ONLY
COMMIT_AFTER_EACH_ROW
행마다 커밋 (CPL 방식에서 사용)
false
false
DATA_ONLY
COMMIT_SIZE
커밋 단위(건, CPL 방식에서 사용)
1000
false
DATA_ONLY
BYTE_TO_STRING_CONVERSION
CHAR 또는 VARCHAR 데이터를 java String 타입 변환 없이 이관할 지 여부
false
false
DATA_ONLY
LOG_UNIT_SIZE
로그 단위(행)
10000
false
DATA_ONLY
옵션 참고 사항
마이그레이션 방식별 필수 옵션
DDL_ONLY 또는 FULL 방식인 경우:
TABLE,INDEX와 같은 객체 목록 중 최소 1개 이상DATA_ONLY:
SOURCE_TABLE_TARGET_TABLE_PAIR옵션 사용 필수
TABLE, INDEX 등 객체 목록 입력 방식
스키마 종속 객체:
SCHEMA:OBJECT1,OBJECT2;SCHEMA2:OBJECT3,OBJECT4예:
TABLE=TEST_USER:T,T2;TEST_USER2:T3,T4Job의 경우에는JOB_${JOB_ID}형식으로 입력예:
JOB=TEST_USER:JOB_1,JOB_2;TEST_USER2:JOB_3,JOB_4
스키마 독립 객체:
OBJECT1,OBJECT2,OBJECT3예:
ROLE=ROLE1,ROLE2,ROLE3
SOURCE_TABLE_TARGET_TABLE_PAIR 옵션 입력 방식
:를 기준으로 소스 및 타겟 스키마 구분,,를 기준으로 하나의 매핑 구분예:
SOURCE_TABLE_TARGET_TABLE_PAIR=SOURCE_USER.T:TARGET_USER.T,SOURCE_USER2.T3:TARGET_USER2.T3=>
SOURCE_USER의 테이블 T와TARGET_USER의 테이블T를 매핑=>
SOURCE_USER2의 테이블 T3와TARGET_USER2의 테이블T3를 매핑
주의
Remap Tablespaces, Tablespace Creation Settings, Users' Default Tablespace Settings, Change Schema Name Settings에 관한 옵션은 제공하지 않습니다.
사용 예시
Case 1. DDL_ONLY: 테이블, 인덱스 일부만 이관하는 예시
sh cli.sh \
SOURCE_DATABASE=TIBERO SOURCE_IPADDRESS=localhost SOURCE_PORT=8629 \
SOURCE_USER=tibero SOURCE_PASSWORD=tmax SOURCE_DATABASE_NAME=tibero \
TARGET_IPADDRESS=localhost TARGET_PORT=9268 \
TARGET_USER=tibero TARGET_PASSWORD=tmax TARGET_DATABASE_NAME=tibero \
MIGRATION_METHOD=DDL_ONLY \
TABLE=TEST_USER:T,T2;TEST_USER2:T3,T4 \
INDEX=TEST_USER:IDX_T,IDX_T2Case 2. DATA_ONLY: 특정 테이블 매핑 이관, 병렬 추출/적재 활성화
sh cli.sh \
SOURCE_DATABASE=TIBERO SOURCE_IPADDRESS=localhost SOURCE_PORT=8629 \
SOURCE_USER=tibero SOURCE_PASSWORD=tmax SOURCE_DATABASE_NAME=tibero \
TARGET_IPADDRESS=localhost TARGET_PORT=9268 \
TARGET_USER=tibero TARGET_PASSWORD=tmax TARGET_DATABASE_NAME=tibero \
MIGRATION_METHOD=DATA_ONLY \
SOURCE_TABLE_TARGET_TABLE_PAIR=TEST_USER.T:TEST_USER.T,TEST_USER2.T3:TEST_USER2.T3 \
INSERT_METHOD=DPL BATCH_COUNT=500 COMMIT_SIZE=20000프로퍼티 파일 예시 (cli-migration.properties.eg)
프로퍼티 파일 예시는, 동봉된 cli-migration.properties.eg 파일에서 확인할 수 있습니다.
해당 프로퍼티 예시 파일을 복사 및 수정하여 사용하면 됩니다.
Last updated
