Execution Parameters¶
개요¶
이 문서는 Datatrans 실행 시 사용하는 주요 파라미터를 설명합니다.
파라미터는 일반적으로 key=value 형식으로 지정하며, 여러 값을 입력할 때는 ,로 구분합니다.
1. Connection¶
1.1 설명¶
Datatrans는 두 개의 데이터베이스 연결 정보를 사용합니다.
source: 데이터를 추출하는 원본 데이터베이스target: 데이터를 적재하는 대상 데이터베이스
각 파라미터는 Oracle EZCONNECT 형식의 문자열을 사용합니다.
1.2 기본 형식¶
1.3 예시¶
source=APP_SOURCE/samplePwd123@192.168.0.10:1521/SOURCEPDB
target=APP_TARGET/samplePwd123@192.168.0.20:1521/TARGETPDB
보안 권고
실제 운영 계정 및 비밀번호는 문서에 기재하지 않는 것을 권장합니다.
1.4 RAC 환경(Multi-Host EZCONNECT)¶
RAC 환경에서는 여러 Host를 ,로 구분하여 지정할 수 있습니다.
예시:
source=APP_SOURCE/samplePwd123@192.168.0.10:1521,APP_SOURCE/samplePwd123@192.168.0.11:1521/SOURCEPDB
target=APP_TARGET/samplePwd123@192.168.0.20:1521,APP_TARGET/samplePwd123@192.168.0.21:1521/TARGETPDB
1.5 사용 목적¶
RAC에서 여러 노드를 지정하는 이유는 고가용성 목적뿐 아니라 병렬 처리 시 부하를 여러 노드로 분산하기 위함입니다.
- 여러 세션을 동시에 생성할 수 있습니다.
- 각 세션이 서로 다른 RAC 노드로 분산 접속할 수 있습니다.
- 대용량 병렬 추출 및 적재 시 처리 성능 향상에 도움이 됩니다.
1.6 비밀번호 특수문자 처리¶
비밀번호에 특수문자가 포함된 경우 URL 인코딩이 필요할 수 있습니다.
| 문자 | 인코딩 값 |
|---|---|
@ | %40 |
: | %3A |
/ | %2F |
예시:
2. Schemas and Tables¶
2.1 설명¶
schemas와 tables는 추출 및 전송 대상 객체를 정의하는 파라미터입니다.
이 옵션을 통해 전송 범위를 명확히 지정할 수 있습니다.
2.2 tables¶
tables는 전송할 개별 테이블 목록을 지정합니다.
- 여러 테이블을
,로 구분하여 나열합니다. - 명시한 테이블만 전송 대상이 됩니다.
- 특정 테이블만 선택적으로 이관할 때 사용합니다.
예시:
2.3 schemas¶
schemas는 전송할 스키마 단위를 지정합니다.
- 지정한 스키마에 포함된 모든 테이블이 전송 대상이 됩니다.
- 여러 스키마를
,로 구분하여 지정할 수 있습니다. - 전체 업무 스키마 이관에 적합합니다.
예시:
2.4 사용 기준¶
| 목적 | 파라미터 |
|---|---|
| 특정 테이블만 이관 | tables |
| 스키마 전체 이관 | schemas |
3. Parallel Degree¶
3.1 설명¶
degree는 Datatrans의 병렬 처리 수준, 즉 동시 작업 수를 지정하는 파라미터입니다.
값이 커질수록 동시에 수행되는 추출 및 적재 작업 수가 증가합니다.
3.2 형식¶
예시:
3.3 설정 가이드¶
degree는 반드시 CPU 코어 수보다 작게 설정해야 하는 값은 아닙니다.
데이터 전송은 CPU 연산뿐 아니라 다음과 같은 대기 구간이 함께 존재합니다.
- Source DB 데이터 추출 대기
- 네트워크 전송 지연
- Target DB 적재 대기
- 디스크 I/O 및 로그 기록
따라서 시스템 자원에 여유가 있다면 코어 수보다 큰 degree가 더 높은 처리량을 낼 수도 있습니다.
3.4 운영 팁¶
권장사항
- 환경에 따라 최적값이 다릅니다.
- 작은 값부터 시작해 단계적으로 늘리는 것을 권장합니다.
- 처리량, DB 부하, 네트워크 사용량을 함께 관찰하십시오.
- 성능 개선이 멈추거나 DB 부하가 과도해지는 지점을 적정값으로 선택하십시오.
4. Table Action¶
4.1 설명¶
table_action은 Target DB에 이미 테이블이 존재할 때 기존 테이블과 데이터를 어떻게 처리할지 결정하는 파라미터입니다.
4.2 TRUNCATE¶
Target 테이블이 이미 존재하면 기존 데이터를 모두 삭제한 뒤 적재합니다.
- 테이블 구조는 유지됩니다.
- 데이터만 초기화하고 다시 적재합니다.
4.3 APPEND¶
Target 테이블이 이미 존재하면 기존 데이터를 유지한 상태로 데이터를 추가 적재합니다.
- 누적 적재 방식입니다.
- 중복 데이터가 발생할 수 있으므로 주의가 필요합니다.
4.4 REPLACE¶
Target 테이블이 이미 존재하면 Source 테이블 정의를 기준으로 Target 테이블을 다시 생성한 뒤 적재합니다.
- Source 테이블 구조를 기준으로 재생성합니다.
- 테이블명 변경 또는 스키마명 변경이 포함된 리매핑 환경에서는 지원하지 않습니다.
- 즉, Source와 Target의 테이블명 및 스키마명 구조가 동일할 때 사용하는 것을 권장합니다.
5. Remap Options¶
5.1 설명¶
remap_schema와 remap_tablespace는 Target 환경 정책에 맞게 객체 소속 정보를 변경하여 적재할 때 사용하는 옵션입니다.
5.2 remap_schema¶
remap_schema는 Source 스키마를 Target의 다른 스키마로 변경하여 적재할 때 사용합니다.
형식:
예시:
동작 예:
- Source의
HR스키마를 Target의HR_NEW스키마로 적재 - Source의
SALES스키마를 Target의SALES_MIG스키마로 적재
5.3 remap_tablespace¶
remap_tablespace는 테이블 생성 시 사용할 Target 테이블스페이스를 변경하는 옵션입니다.
형식:
예시:
5.4 주의사항¶
주의
remap_tablespace는table_action=REPLACE사용 시에만 적용됩니다.- 즉, 새 테이블을 생성하는 경우에만 유효합니다.
TRUNCATE또는APPEND에서는 기존 테이블 구조를 유지하므로 적용되지 않습니다.
6. Flashback SCN¶
6.1 설명¶
flashback_scn은 데이터 추출 시점을 제어하는 옵션입니다.
Oracle Flashback Query 기능을 활용하여 특정 SCN 기준의 일관된 시점 데이터를 추출할 수 있습니다.
6.2 CURRENT¶
작업 시작 시점의 SCN 하나를 기준으로 모든 테이블을 동일한 시점에서 추출합니다.
- 전체 테이블의 시점 정합성을 보장합니다.
- 병렬 처리 시에도 일관된 스냅샷을 유지합니다.
- 데이터 정합성이 중요한 작업에 권장합니다.
6.3 INDIVIDUAL¶
각 테이블의 추출 시작 시점 SCN을 개별적으로 적용합니다.
- 테이블별로 서로 다른 SCN을 사용할 수 있습니다.
- 병렬 처리 효율이 높습니다.
- 전체 정합성보다 성능이 중요한 경우에 적합합니다.
6.4 SCN 숫자 지정¶
특정 SCN 값을 직접 지정하여 모든 테이블을 해당 시점 기준으로 추출할 수 있습니다.
사용 목적:
- 과거 특정 시점 복원 목적 추출
- 장애 발생 이전 시점 데이터 확보
- 감사 및 검증 목적의 시점 고정 추출
6.5 사용 기준¶
| 목적 | 옵션 |
|---|---|
| 정합성 우선 | CURRENT |
| 성능 우선 | INDIVIDUAL |
| 특정 시점 고정 | SCN 숫자 지정 |
7. Job Name¶
7.1 설명¶
jobname은 Datatrans 작업의 식별자입니다.
각 작업은 jobname을 기준으로 실행, 로그, 오류 파일, 상태 관리가 이루어집니다.
7.2 자동 생성¶
jobname을 지정하지 않으면 Datatrans가 내부 규칙에 따라 자동으로 생성합니다.
자동 생성된 작업명은 다음 항목의 기준이 됩니다.
- 로그 파일명
- 에러 파일명
- 작업 상태 관리
7.3 로그 파일¶
로그 파일은 다음 형식으로 생성됩니다.
예시:
로그 파일에는 일반적으로 다음 정보가 포함됩니다.
- 작업 시작 및 종료 시간
- 전송 대상 테이블 정보
- 처리 건수
- 경고 및 오류 메시지
7.4 Batch Error 파일¶
batcherrors 옵션을 사용하는 경우 적재 중 오류가 발생한 데이터는 별도 파일에 저장됩니다.
예시:
이 파일에는 일반적으로 다음 정보가 포함됩니다.
- 적재 실패 데이터
- 오류 발생 원인
- 오류 코드
8. Query Option¶
8.1 설명¶
query는 특정 테이블에 대해 데이터 추출 조건을 지정하는 옵션입니다.
조건은 반드시 Source 기준으로 작성해야 합니다.
8.2 형식¶
여러 개를 지정할 경우 ,로 구분합니다.
8.3 예시¶
query=HR.EMPLOYEES:"DEPARTMENT_ID = 90",SALES.ORDERS:"ORDER_STATUS != 'CANCELLED'",HR.JOBS:"MIN_SALARY >= 5000"
8.4 중요 사항¶
주의
WHERE키워드는 포함하지 않습니다.- 조건절만 작성해야 합니다.
- 컬럼명과 테이블명은 반드시 Source 기준으로 작성해야 합니다.
8.5 주의사항¶
query는 전체 데이터가 아닌 부분 추출에 사용됩니다.- 조건에 따라 데이터 정합성이 달라질 수 있습니다.
- FK 관계가 있는 테이블에는 신중히 적용해야 합니다.
flashback_scn과 함께 사용하면 특정 시점의 조건부 데이터 추출이 가능합니다.
9. Table Exclude¶
9.1 설명¶
table_exclude는 데이터 이관 대상에서 특정 테이블을 제외할 때 사용합니다.
반드시 Source 기준으로 작성해야 합니다.
9.2 형식¶
여러 개를 지정할 경우 ,로 구분합니다.
9.3 예시¶
9.4 사용 목적¶
schemas옵션으로 전체 스키마 이관 시 일부 테이블 제외- 특정 대용량 테이블 제외
- 임시 테이블 또는 로그 테이블 제외
9.5 주의사항¶
주의
- 반드시 Source 기준으로 작성해야 합니다.
tables옵션과 함께 사용할 경우 충돌 여부를 확인해야 합니다.- 제외 대상은 생성 및 적재 모두 수행되지 않습니다.
10. Batch Errors¶
10.1 설명¶
batcherrors는 데이터 적재 시 오류 행 처리 방식을 제어하는 옵션입니다.
기본값은 Y입니다.
10.2 동작 방식¶
- 오류가 발생한 행만 실패 처리합니다.
- 나머지 데이터는 계속 적재합니다.
- 오류 데이터는
{jobname}.err파일에 기록됩니다.
- 하나의 오류가 발생하면 해당 작업 단위가 실패할 수 있습니다.
- 전체 적재가 중단될 수 있습니다.
10.3 사용 기준¶
| 상황 | 권장 설정 |
|---|---|
| 대용량 이관 | Y |
| 데이터 정합성 검증 목적 | N |
10.4 주의사항¶
- 오류 행은 별도로 분석하고 재처리해야 합니다.
- PK 또는 UK 충돌이 많으면
.err파일 크기가 커질 수 있습니다.
11. Suffix¶
11.1 설명¶
suffix는 Target 테이블명 뒤에 특정 문자열을 일괄 추가할 때 사용하는 옵션입니다.
11.2 예시¶
적용 예:
- Source:
HR.EMPLOYEES - Target:
HR.EMPLOYEES_20260227
11.3 사용 목적¶
- 주기적 스냅샷 저장
- 날짜별 백업 테이블 생성
- 테스트 이관 구분
11.4 주의사항¶
주의
table_action=REPLACE사용 시 suffix가 적용된 새 테이블이 생성될 수 있습니다.- 기존 테이블과 이름 충돌 여부를 확인해야 합니다.
- 운영 환경에서는 테이블 수 증가에 따른 관리 정책을 함께 고려해야 합니다.