개요
table_migrator을 이용하여 큰 테이블 (데이터 건수가 1억 건 이상) 또는 lob 데이터를 포함한 테이블 등 대용량 테이블을 통으로 이관할 때 속도가 저하되는 경우가 있습니다.
table_migraotr로 큰 테이블 이관 시, 여러 개의 쉘로 나누어 병렬로 수행하는 방법을 설명합니다.
방법
pk 인덱스 또는 날짜 컬럼에 인덱스가 설정된 경우, SELECT_CONDITION 옵션에 해당 컬럼을 활용하여 여러 개의 쉘 스크립트를 생성하여 병렬로 실행할 수 있습니다. 이를 통해 이관 시간을 단축할 수 있습니다.
아래 예시는 여러 개의 mig 쉘로 나누어 병렬로 수행하는 방법입니다.
1. migration 스크립트 생성 구문
#vi mig1.sh
sh migrator.sh PROPERTY_FILE=DPL.prop SOURCE_SCHEMA=TIBERO SOURCE_TABLE=MIG_TEST TARGET_SCHEMA=TIBERO TARGET_TABLE=MIG_TEST1 LOG_FILE_NAME=TIBERO.MIG_TEST.log INSERT_PARALLEL=Y INSERT_THREAD_COUNT=1 SELECT_CONDITION="B between '2025/02/01 00:00:00' and '2025/02/07 23:59:59'"
#vi mig2.sh
sh migrator.sh PROPERTY_FILE=DPL.prop SOURCE_SCHEMA=TIBERO SOURCE_TABLE=MIG_TEST TARGET_SCHEMA=TIBERO TARGET_TABLE=MIG_TEST1 LOG_FILE_NAME=TIBERO.MIG_TEST.log INSERT_PARALLEL=Y INSERT_THREAD_COUNT=1 SELECT_CONDITION="B between '2025/02/08 00:00:00' and '2025/02/14 23:59:59'"
...
#vi mig5.sh
sh migrator.sh PROPERTY_FILE=DPL.prop SOURCE_SCHEMA=TIBERO SOURCE_TABLE=MIG_TEST TARGET_SCHEMA=TIBERO TARGET_TABLE=MIG_TEST1 LOG_FILE_NAME=TIBERO.MIG_TEST.log INSERT_PARALLEL=Y INSERT_THREAD_COUNT=1 SELECT_CONDITION="B between '2025/02/22 00:00:00' and '2025/02/28 23:59:59'"
SQL
복사
2. 생성한 스크립트를 백그라운드로 동시 수행
nohup mig1.sh > mig1.log &
nohup mig2.sh > mig2.log &
..
nohup mig5.sh > mig5.log &
SQL
복사