DB 파라미터 지정

데이터베이스 파라미터 지정 과정을 예시와 함께 설명합니다.

파라미터를 지정하는 컨트롤 파일은 기본으로 migrator.properties 파일로 지정됩니다.

파라미터 예시

(migrator.properties 파일에 설정)

SOURCE_TYPE=ORACLE
SOURCE_DRIVER=oracle.jdbc.OracleDriver
SOURCE_URL=jdbc:oracle:thin:@localhost:1539:orcl
SOURCE_USER=sys
SOURCE_PASSWORD=oracle
SOURCE_LOGIN_AS=sysdba
SOURCE_SCHEMA=SCOTT
SOURCE_TABLE=t1
SOURCE_TABLE_DEDUPLICATE=N
TARGET_TYPE=DEFAULT
TARGET_DRIVER=com.m.internal.jdbc.MInternalDriver
TARGET_URL=jdbc:internal:thin:@localhost:59166:tibero
TARGET_USER=tibero
TARGET_PASSWORD=tmax
TARGET_SCHEMA=TIBERO
TARGET_TABLE=t1
EXTRACT_PARALLEL=N
EXTRACT_PARALLEL_RANGE_BY_ROWID=N
EXTRACT_THREAD_COUNT=1
SELECT_TSN=17322052
SELECT_CONDITION= c1>1
SELECT_FETCH_SIZE=1024
SELECT_PARTITION=part1
SELECT_SUBPARTITION=subpar1
SELECT_AS_BYTE=N
DB_FILE_MULTIBLOCK_READ_COUNT=-1
OPTIMIZER_HINT=/*+ FULL(t) PARALLEL(t, 4) */
USE_PARALLEL_HINT=N
USE_OBJECT_PARALLEL_HINT=N
PARALLEL_HINT_CNT=-1
INSERT_METHOD=dpl
COMMIT_SIZE=-1
INDEX_DISABLE=N
INSERT_BATCH=Y
BATCH_THRESHOLD=128
DPL_LOG_UNIT=500
INSERT_PARALLEL=N
INSERT_THREAD_COUNT=1
INSERT_PARTITION=
INSERT_ZERO_LENGTH_STRING_AS_NULL=Y
TRIM=
BYTEA_TO_BLOB=N
TEXT_TO_CLOB=N                              
MONITORING_LOG=N
MONITORING_LOG_UNIT=500
MONITORING_SESS_STAT=CPU used by this session;parse time cpu;parse count(hard)
CHECK_COLUMN_METADATA=N
ROW_QUEUE_TYPE=ARRAY(10240)
VERIFY_TABLE=N
VERIFY_TABLE_NAME=VERIFY_TBL
LOG_LEVEL=INFO
LOG_FILE_NAME=tableMigrator.log
LOG_DIR=

각 파라미터의 설명은 아래와 같습니다.

Source 접속 정보 관련

파라미터
설명

SOURCE_TYPE

Source DB의 타입을 설정하는 파라미터 – ORACLE(기본값) : Source DB가 Oracle일 때 설정하며 SOURCE_LOGIN_AS 파라미터의 설정이 필요 – GENERIC : Source DB가 일반 DB일 때 설정한다. 특정 벤더별 API를 사용하지 않고 표준 JDBC API만을 이용하여 동작하며 SOURCE_DRIVER 파라미터의 설정이 필요 – DEFAULT : Source DB가 Tibero일 때 설정

SOURCE_DRIVER

Source DB에 접속할 때 사용하는 JDBC Driver 클래스를 설정하는 파라미터로 SOURCE_TYPE=GENERIC일 경우 설정이 필요 – Oracle(기본값) : oracle.jdbc.OracleDriver – MSSQL : com.microsoft.sqlserver.jdbc.SQLServerDriver – DB2 : com.ibm.db2.jcc.DB2Driver – MYSQL : com.mysql.jdbc.Driver – PostgreSQL : org.postgresql.Driver – Sybase ASE : com.sybase.jdbc3.jdbc.SybDriver – Informix : com.informix.jdbc.IfxDriver

SOURCE_URL

Source DB의 JDBC 연결 URL을 설정하는 파라미터 – Oracle(기본값) : jdbc:oracle:thin:@localhost:1521:orcl – MSSQL : jdbc:sqlserver://127.0.0.1:1433;databaseName=master – DB2 : jdbc:db2://127.0.0.1:50000/logdb – MYSQL : jdbc:mysql://127.0.0.1:3306/mysql – PostgreSQL : jdbc:postgresql://127.0.0.1:5432/postgres – Sybase ASE : jdbc:sybase:Tds:127.0.0.1:7100?ServiceName=sybase – Informix : jdbc:informix-sqli://127.0.0.1:18220/informix:INFORMIXSERVER=informix

SOURCE_USER

Source DB에 로그인하는 사용자 이름을 설정하는 파라미터

기본적으로 대문자로 인식되며 큰따옴표를 통해 대소문자 구분이 가능 (기본값 : sys)

SOURCE_PASSWORD

Source DB에 로그인 하는 사용자 패스워드를 설정하는 파라미터 (기본값 : oracle)

SOURCE_LOGIN_AS

Oracle에 접속할 때 권한을 설정하는 파라미터로 SOURCE_TYPE=ORACLE인 경우에만 설정 – SYSDBA(기본값) – NORMAL

SOURCE_SCHEMA

Source DB에서 이관하는 Table의 실제 사용자 이름을 설정하는 파라미터기본적으로 대문자로 인식되며 큰따옴표를 통해 대소문자 구분이 가능 (기본값 : SOURCE_USER에서 설정한 사용자 이름)

SOURCE_TABLE

Source DB에서 이관하는 Table 이름을 설정하는 파라미터

기본적으로 대문자로 인식되며 큰따옴표를 통해 대소문자 구분이 가능

(필수 입력)

SOURCE_TABLE_DEDUPLICATE

dedup 옵션이 사용된 테이블의 이관 동안 발생하는 deadlock 에러를 무시하는 파라미터

BATCH_THRESHOLD=2 이상일 경우 데이터 무결성이 보장되지 않으므로 BATCH_THRESHOLD=1인 경우에만 설정 - Y - N

Target 접속 정보 관련

파라미터
설명

TARGET_TYPE

Target DB의 타입을 설정하는 파라미터 – DEFAULT : Target DB가 Tibero일 때 설정

TARGET_DRIVER

Target DB에 접속할 때 사용하는 JDBC Driver 클래스를 설정하는 파라미터 (기본값 : com.m.internal.jdbc.MInternalDriver)

TARGET_URL

Target DB의 JDBC 연결 URL을 설정하는 파라미터 (기본값 : jdbc:internal:thin:@localhost:8629:tibero)

TARGET_USER

Target DB에 로그인하는 사용자 이름을 설정하는 파라미터

기본적으로 대문자로 인식되며 큰따옴표를 통해 대소문자 구분이 가능 (기본값 : sys)

TARGET_PASSWORD

Target DB에 로그인하는 사용자 패스워드를 설정하는 파라미터 (기본값 : tibero)

TARGET_SCHEMA

Target DB에 이관 받는 Table의 실제 사용자 이름

기본적으로 대문자로 인식되고 큰따옴표를 통해 대소문자 구분이 가능 (기본값 : TARGET_USER에서 설정한 사용자 이름)

TARGET_TABLE

Target DB에 이관 받는 Table 이름을 설정하는 파라미터

기본적으로 대문자로 인식되고 큰따옴표를 통해 대소문자 구분이 가능 (기본값 : SOURCE_TABLE에서 설정한 Table 이름)

데이터 Extractor 관련

파라미터
설명

EXTRACT_PARALLEL

SOURCE DB에서 데이터를 추출하는 Thread의 parallel 동작 여부를 설정하는 파라미터 SOURCE_TYPE이 Oracle, default, postgresql인 경우에만 사용 가능

row가 rowid Hashing을 통해 나눠지므로 이관 동안 rowid 변경이 발생하지 않도록 주의 - Y - N (기본값)

EXTRACT_PARALLEL_RANGE_BY_ROWID

rowid의 범위를 지정하여 row를 나누도록 설정하는 파라미터

SOURCE_TYPE=Oracle, EXTRACT_PARALLEL=Y인 경우에만 설정 가능ora_hash function을 지원하지않는 Oracle 9버전 이하에서 성능적 이점 존재

IOT 테이블은 해당 옵션 사용불가 - Y - N

EXTRACT_THREAD_COUNT

데이터를 추출하는 Thread의 수를 설정하는 파라미터

EXTRACT_PARALLEL_RANGE_BY_ROWID 옵션을 사용하는 경우 테이블의 extent 수에 따라 적절한 값으로 설정 (기본값 : 1)

SELECT_TSN

특정 TSN (Oacle에서는 SCN) 시점 이후의 데이터를 추출하도록 설정하는 파라미터 (기본값 : 미사용)

SELECT_CONDITION

Table 데이터 전체가 아닌 조건절에 해당하는 데이터만 추출하도록 설정하는 파라미터 (기본값 : 미사용)

SELECT_FETCH_SIZE

Source DB에서 추출해온 결과 set을 fetch 해오는 단위 (row 수)를 설정하는 파라미터 (기본값 : 1024)

SELECT_PARTITION

파티션 Table에서 지정한 파티션에서만 데이터를 추출하도록 설정하는 파라미터 (기본값 : 미사용)

SELECT_SUBPARTITION

파티션 Table에서 지정한 서브 파티션에서만 데이터를 추출하도록 설정하는 파라미터 SELECT_PARTITION 옵션과 같이 사용할 경우 SELECT_PARTITION 옵션이 적용 (기본값 : 미사용)

SELECT_AS_BYTE

Table의 char, varchar와 같은 문자열을 저장하기 위한 열에 데이터베이스 설정과 다른 캐릭터셋을 사용하여 실제 문자열이 저장되면 문자열 형태로 데이터를 가져올 시 문자열의 정상적 배열 불가

이를 방지하기 위하여 문자열이 아닌 바이너리 형태로 데이터를 가져오고, 바이너리 형태로 Tibero에 옮기도록 설정하는 파라미터 - Y - N (기본값)

DB_FILE_MULTIBLOCK_READ_COUNT

이관 전 해당 세션에 대한 DB_FILE_MULTBLOCK_READ_COUNT 값을 설정하는 파라미터

SOURCE_TYPE=Oracle인 경우에만 설정 가능하며 값을 -1로 설정 시 동작하지 않음 (기본값 : -1)

OPTIMIZER_HINT

SOURCE DB로 부터 데이터를 SELECT 할 때 사용할 힌트를 설정하는 파라미터

테이블 이름은 't'를 사용하며 SOURCE_TYPE=Oracle, SOURCE_TYPE=Default인 경우에만 사용 가능 만약 USE_PARALLEL_HINT 옵션과 동시에 사용된다면, OPTIMIZER_HINT 옵션이 우선적으로 적용 - 예 : OPTIMIZER_HINT=/*+ FULL(t) PARALLEL(t, 4)

USE_PARALLEL_HINT

SOURCE DB에서 데이터를 SELECT 할 때 PARALLEL 힌트 사용 여부를 설정하는 파라미터 SOURCE_TYPE=Oracle, SOURCE_TYPE=Default인 경우에만 사용 가능 - Y - N (기본값)

USE_OBJECT_PARALLEL_HINT

PARALLEL 힌트 사용 시 Table 이름을 명시할 수 있도록 설정하는 파라미터

해당 옵션을 활성화하기 위해서는 USE_PARALLEL_HINT=Y 설정이 필요, SOURCE_DB가 Default, Oracle인 경우에만 사용 가능 - Y - N (기본값)

PARALLEL_HINT_CNT

PARALLEL 힌트 사용 시 DOP를 설정하는 파라미터

해당 옵션을 활성화하기 위해서는 USE_PARALLEL_HINT=Y 설정이 필요

(기본값 : -1)

데이터 Loader 관련

파라미터
설명

INSERT_METHOD

데이터의 INSERT 방식을 지정하는 파라미터

– DPL(기본값) : DIRECT PATH LOADING – CPL : CONVENTIONAL PATH LOADING

COMMIT_SIZE

TARGET_DB에 데이터를 commit하는 사이즈를 지정하는 파라미터

INSERT_METHOD=cpl인 경우에만 동작하며 COMMIT_SIZE=-1로 설정하는 경우 기본값인 commit only once로 동작 (기본값 : commit once after loading)

INDEX_DISABLE

TARGET_TABLE의 INDEX를 자동으로 DISABLE 하도록 설정하는 파라미터 - Y - N (기본값)

INSERT_BATCH

Table의 데이터를 Batch Insert 방식으로 load 하도록 설정하는 파라미터

INSERT_METHOD=CPL인 경우에만 동작 - Y - N

BATCH_THRESHOLD

TARGET_DB에 Batch를 실행할 때 단위(row 수)를 설정하는 파라미터

INSERT_METHOD=CPL, INSERT_BATCH=Y 인 경우에만 동작하며 -1 값을 입력하면 미 동작 (기본값 : 32)

DPL_LOG_UNIT

로그를 출력하는 row의 로딩 단위를 설정하는 파라미터

INSERT_METHOD=DPL인 경우에만 사용 가능하며 0으로 설정하는 경우 로그가 미 출력 (기본값 : 500)

INSERT_PARALLEL

데이터를 load하는 Thread의 parallel 동작 여부를 설정하는 파라미터 - Y(기본값) - N

INSERT_THREAD_COUNT

데이터 loader thread 개수를 설정하는 파라미터 INSERT_PARALLEL=Y인 경우에만 동작 (기본값 : 4)

INSERT_PARTITION

지정한 파티션에 이관할 경우 설정하는 파라미터 (기본값 : 미사용)

INSERT_ZERO_LENGTH_STRING_AS_NULL

길이가 0인 String 타입 데이터가 이관 시 NULL로 들어가도록 설정하는 파라미터 INSERT_ZERO_LENGTH_STRING_AS_NULL=N으로 설정 시 길이가 0인 데이터는 공백('')으로 들어가며 SOURCE_TYPE=Oracle인 경우 설정이 무시 - Y(기본값) - N

TRIM

CHAR 타입 데이터의 선행, 후행에 있는 pad 문자 제거 - Y - N(기본값)

POSTGRESQL 관련

파라미터
설명

BYTEA_TO_BLOB

bytea 타입을 blob 타입으로 전환하도록 설정하는 파라미터 - Y - N(기본값)

TEXT_TO_CLOB

text 타입을 clob 타입으로 전화하도록 설정하는 파라미터 - Y - N(기본값)

일반 설정

파라미터
설명

MONITORING_LOG

모니터링 로그 출력 여부를 설정하는 파라미터

이관에 사용된 동작에 대한 평균 시간 로그를 출력 - Y - N (기본값)

MONITORING_LOG_UNIT

모니터링 로그에서 시간을 평균 낼 때 사용할 로우의 수를 설정하는 파라미터 (기본값 : 500)

MONITORING_SESS_STAT

모니터링할 stat을 설정하는 파라미터

여러개의 stat을 설정할 경우 ;로 구분해주며 해당 옵션은 SOURCE_TYPE=ORACLE인 경우에만 설정 가능 (기본값 : 미사용) - 예 : MONITORING_SESS_STAT=CPU used by this session;parse time cpu;parse count (hard)

CHECK_COLUMN_METADATA

INSERT_METHOD=dpl인 경우 이관하기 전에 SOURCE DB table과 TARGET DB table의 메타데이터를 확인하는 옵션 - Y(기본값) - N

ROW_QUEUE_TYPE

추출한 데이터를 저장하는 queue 타입을 설정하는 파라미터 EXTRACT_PARALLEL=Y, INSERT_PARALLEL=Y 인 경우 SYNCHRO 타입을 사용하는 것이 성능상 좋으며 ARRAY 타입은 사이즈 특정 가능 - ARRAY (기본값 : 10240) - SYNCHRO

VERIFY_TABLE

이관 검증 테이블 사용 여부를 설정하는 파라미터 - Y - N (기본값)

VERIFY_TABLE_NAME

검증 테이블 이름을 설정하는 파라미터 (기본값 : VERIFY_TBL)

LOG_LEVEL

로그 레벨을 설정하는 파라미터 (기본값 : INFO)

LOG_FILE_NAME

로그 파일 이름을 설정하는 파라미터 (기본값 : tableMigrator.log)

LOG_DIR

로그 파일이 생성되는 디렉토리 경로를 설정하는 파라미터 (기본값 : Migrator 실행 경로)

Last updated