콘텐츠로 이동

Execution Parameters

개요

이 문서는 Datatrans 실행 시 사용하는 주요 파라미터를 설명합니다.

파라미터는 일반적으로 key=value 형식으로 지정하며, 여러 값을 입력할 때는 ,로 구분합니다.


1. Connection

1.1 설명

Datatrans는 두 개의 데이터베이스 연결 정보를 사용합니다.

  • source: 데이터를 추출하는 원본 데이터베이스
  • target: 데이터를 적재하는 대상 데이터베이스

각 파라미터는 Oracle EZCONNECT 형식의 문자열을 사용합니다.

1.2 기본 형식

source=username/password@host:port/service_name
target=username/password@host:port/service_name

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를 ,로 구분하여 지정할 수 있습니다.

username/password@host1:port,username/password@host2:port/service_name

예시:

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

예시:

source=APP_SOURCE/pass%40123@192.168.0.10:1521/SOURCEPDB

2. Schemas and Tables

2.1 설명

schemastables는 추출 및 전송 대상 객체를 정의하는 파라미터입니다.

이 옵션을 통해 전송 범위를 명확히 지정할 수 있습니다.

2.2 tables

tables=TABLE1,TABLE2

tables는 전송할 개별 테이블 목록을 지정합니다.

  • 여러 테이블을 ,로 구분하여 나열합니다.
  • 명시한 테이블만 전송 대상이 됩니다.
  • 특정 테이블만 선택적으로 이관할 때 사용합니다.

예시:

tables=ORDERS,CUSTOMERS,PRODUCTS

2.3 schemas

schemas=SCHEMA1,SCHEMA2

schemas는 전송할 스키마 단위를 지정합니다.

  • 지정한 스키마에 포함된 모든 테이블이 전송 대상이 됩니다.
  • 여러 스키마를 ,로 구분하여 지정할 수 있습니다.
  • 전체 업무 스키마 이관에 적합합니다.

예시:

schemas=SALES,HR

2.4 사용 기준

목적 파라미터
특정 테이블만 이관 tables
스키마 전체 이관 schemas

3. Parallel Degree

3.1 설명

degree는 Datatrans의 병렬 처리 수준, 즉 동시 작업 수를 지정하는 파라미터입니다.

값이 커질수록 동시에 수행되는 추출 및 적재 작업 수가 증가합니다.

3.2 형식

degree=N

예시:

degree=8

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에 이미 테이블이 존재할 때 기존 테이블과 데이터를 어떻게 처리할지 결정하는 파라미터입니다.

table_action=TRUNCATE | APPEND | REPLACE

4.2 TRUNCATE

table_action=TRUNCATE

Target 테이블이 이미 존재하면 기존 데이터를 모두 삭제한 뒤 적재합니다.

  • 테이블 구조는 유지됩니다.
  • 데이터만 초기화하고 다시 적재합니다.

4.3 APPEND

table_action=APPEND

Target 테이블이 이미 존재하면 기존 데이터를 유지한 상태로 데이터를 추가 적재합니다.

  • 누적 적재 방식입니다.
  • 중복 데이터가 발생할 수 있으므로 주의가 필요합니다.

4.4 REPLACE

table_action=REPLACE

Target 테이블이 이미 존재하면 Source 테이블 정의를 기준으로 Target 테이블을 다시 생성한 뒤 적재합니다.

  • Source 테이블 구조를 기준으로 재생성합니다.
  • 테이블명 변경 또는 스키마명 변경이 포함된 리매핑 환경에서는 지원하지 않습니다.
  • 즉, Source와 Target의 테이블명 및 스키마명 구조가 동일할 때 사용하는 것을 권장합니다.

5. Remap Options

5.1 설명

remap_schemaremap_tablespace는 Target 환경 정책에 맞게 객체 소속 정보를 변경하여 적재할 때 사용하는 옵션입니다.

5.2 remap_schema

remap_schema=S1:T1,S2:T2

remap_schema는 Source 스키마를 Target의 다른 스키마로 변경하여 적재할 때 사용합니다.

형식:

기존스키마:대상스키마

예시:

remap_schema=HR:HR_NEW,SALES:SALES_MIG

동작 예:

  • Source의 HR 스키마를 Target의 HR_NEW 스키마로 적재
  • Source의 SALES 스키마를 Target의 SALES_MIG 스키마로 적재

5.3 remap_tablespace

remap_tablespace=TS1:TS2

remap_tablespace는 테이블 생성 시 사용할 Target 테이블스페이스를 변경하는 옵션입니다.

형식:

기존테이블스페이스:대상테이블스페이스

예시:

remap_tablespace=USERS:DATA_TS

5.4 주의사항

주의

  • remap_tablespacetable_action=REPLACE 사용 시에만 적용됩니다.
  • 즉, 새 테이블을 생성하는 경우에만 유효합니다.
  • TRUNCATE 또는 APPEND에서는 기존 테이블 구조를 유지하므로 적용되지 않습니다.

6. Flashback SCN

6.1 설명

flashback_scn은 데이터 추출 시점을 제어하는 옵션입니다.

Oracle Flashback Query 기능을 활용하여 특정 SCN 기준의 일관된 시점 데이터를 추출할 수 있습니다.

flashback_scn=CURRENT | INDIVIDUAL | <SCN_NUMBER>

6.2 CURRENT

flashback_scn=CURRENT

작업 시작 시점의 SCN 하나를 기준으로 모든 테이블을 동일한 시점에서 추출합니다.

  • 전체 테이블의 시점 정합성을 보장합니다.
  • 병렬 처리 시에도 일관된 스냅샷을 유지합니다.
  • 데이터 정합성이 중요한 작업에 권장합니다.

6.3 INDIVIDUAL

flashback_scn=INDIVIDUAL

각 테이블의 추출 시작 시점 SCN을 개별적으로 적용합니다.

  • 테이블별로 서로 다른 SCN을 사용할 수 있습니다.
  • 병렬 처리 효율이 높습니다.
  • 전체 정합성보다 성능이 중요한 경우에 적합합니다.

6.4 SCN 숫자 지정

flashback_scn=1234567890

특정 SCN 값을 직접 지정하여 모든 테이블을 해당 시점 기준으로 추출할 수 있습니다.

사용 목적:

  • 과거 특정 시점 복원 목적 추출
  • 장애 발생 이전 시점 데이터 확보
  • 감사 및 검증 목적의 시점 고정 추출

6.5 사용 기준

목적 옵션
정합성 우선 CURRENT
성능 우선 INDIVIDUAL
특정 시점 고정 SCN 숫자 지정

7. Job Name

7.1 설명

jobname은 Datatrans 작업의 식별자입니다.

jobname=JOB_NAME

각 작업은 jobname을 기준으로 실행, 로그, 오류 파일, 상태 관리가 이루어집니다.

7.2 자동 생성

jobname을 지정하지 않으면 Datatrans가 내부 규칙에 따라 자동으로 생성합니다.

자동 생성된 작업명은 다음 항목의 기준이 됩니다.

  • 로그 파일명
  • 에러 파일명
  • 작업 상태 관리

7.3 로그 파일

로그 파일은 다음 형식으로 생성됩니다.

{jobname}.log

예시:

daily_transfer.log

로그 파일에는 일반적으로 다음 정보가 포함됩니다.

  • 작업 시작 및 종료 시간
  • 전송 대상 테이블 정보
  • 처리 건수
  • 경고 및 오류 메시지

7.4 Batch Error 파일

batcherrors 옵션을 사용하는 경우 적재 중 오류가 발생한 데이터는 별도 파일에 저장됩니다.

{jobname}.err

예시:

daily_transfer.err

이 파일에는 일반적으로 다음 정보가 포함됩니다.

  • 적재 실패 데이터
  • 오류 발생 원인
  • 오류 코드

8. Query Option

8.1 설명

query는 특정 테이블에 대해 데이터 추출 조건을 지정하는 옵션입니다.

조건은 반드시 Source 기준으로 작성해야 합니다.

8.2 형식

query=SCHEMA.TABLE:"조건식"

여러 개를 지정할 경우 ,로 구분합니다.

query=SCHEMA1.TABLE1:"조건식1",SCHEMA2.TABLE2:"조건식2"

8.3 예시

query=HR.EMPLOYEES:"DEPARTMENT_ID = 90",SALES.ORDERS:"ORDER_STATUS != 'CANCELLED'",HR.JOBS:"MIN_SALARY >= 5000"

8.4 중요 사항

주의

  • WHERE 키워드는 포함하지 않습니다.
  • 조건절만 작성해야 합니다.
  • 컬럼명과 테이블명은 반드시 Source 기준으로 작성해야 합니다.
WHERE DEPARTMENT_ID = 90
DEPARTMENT_ID = 90

8.5 주의사항

  • query는 전체 데이터가 아닌 부분 추출에 사용됩니다.
  • 조건에 따라 데이터 정합성이 달라질 수 있습니다.
  • FK 관계가 있는 테이블에는 신중히 적용해야 합니다.
  • flashback_scn과 함께 사용하면 특정 시점의 조건부 데이터 추출이 가능합니다.

9. Table Exclude

9.1 설명

table_exclude는 데이터 이관 대상에서 특정 테이블을 제외할 때 사용합니다.

반드시 Source 기준으로 작성해야 합니다.

9.2 형식

table_exclude=SCHEMA.TABLE

여러 개를 지정할 경우 ,로 구분합니다.

9.3 예시

table_exclude=HR.AUDIT_LOG,HR.TEMP_DATA

9.4 사용 목적

  • schemas 옵션으로 전체 스키마 이관 시 일부 테이블 제외
  • 특정 대용량 테이블 제외
  • 임시 테이블 또는 로그 테이블 제외

9.5 주의사항

주의

  • 반드시 Source 기준으로 작성해야 합니다.
  • tables 옵션과 함께 사용할 경우 충돌 여부를 확인해야 합니다.
  • 제외 대상은 생성 및 적재 모두 수행되지 않습니다.

10. Batch Errors

10.1 설명

batcherrors는 데이터 적재 시 오류 행 처리 방식을 제어하는 옵션입니다.

batcherrors=Y | N

기본값은 Y입니다.

10.2 동작 방식

  • 오류가 발생한 행만 실패 처리합니다.
  • 나머지 데이터는 계속 적재합니다.
  • 오류 데이터는 {jobname}.err 파일에 기록됩니다.
  • 하나의 오류가 발생하면 해당 작업 단위가 실패할 수 있습니다.
  • 전체 적재가 중단될 수 있습니다.

10.3 사용 기준

상황 권장 설정
대용량 이관 Y
데이터 정합성 검증 목적 N

10.4 주의사항

  • 오류 행은 별도로 분석하고 재처리해야 합니다.
  • PK 또는 UK 충돌이 많으면 .err 파일 크기가 커질 수 있습니다.

11. Suffix

11.1 설명

suffix는 Target 테이블명 뒤에 특정 문자열을 일괄 추가할 때 사용하는 옵션입니다.

suffix=_YYYYMMDD

11.2 예시

suffix=_20260227

적용 예:

  • Source: HR.EMPLOYEES
  • Target: HR.EMPLOYEES_20260227

11.3 사용 목적

  • 주기적 스냅샷 저장
  • 날짜별 백업 테이블 생성
  • 테스트 이관 구분

11.4 주의사항

주의

  • table_action=REPLACE 사용 시 suffix가 적용된 새 테이블이 생성될 수 있습니다.
  • 기존 테이블과 이름 충돌 여부를 확인해야 합니다.
  • 운영 환경에서는 테이블 수 증가에 따른 관리 정책을 함께 고려해야 합니다.