지금 지원 담당자와 채팅
지원 담당자와 채팅

SharePlex 11.4 - 참조 안내서

이 안내서 정보 이 안내서에 사용된 규칙 Oracle용 SharePlex 명령 SharePlex 매개변수 PostgreSQL용 SharePlex 명령 PostgreSQL용 SharePlex 매개변수 일반 SharePlex 유틸리티 Oracle Cloud 인프라스트럭처 SharePlex 환경 변수

stop

stop 명령을 사용하면 SharePlex 복제 프로세스를 정상적으로 중지하여 연결된 큐에서 읽기 또는 쓰기를 완료할 수 있습니다. 복제 프로세스가 중지되면 데이터가 큐에 안전하게 누적됩니다.

stop 명령으로 중단된 프로세스는 SharePlex가 종료되었다가 재시작되더라도 정지된 상태로 유지됩니다. 프로세스는 start 명령으로만 시작할 수 있습니다. 프로세스가 다시 시작되면 중지된 지점에서 처리가 재개되므로 데이터가 동기화된 상태로 유지됩니다.

참고: stop 명령은 프로세스가 관련 큐에서 읽기 또는 쓰기를 마친 후 복제 프로세스를 중지한다는 점에서 abort service 명령과 다릅니다. abort service 명령은 프로세스가 데이터를 처리 중인지 여부에 관계없이 프로세스를 즉시 종료합니다.

Capture 프로세스 중지

Capture 프로세스를 중지할 때는 주의하십시오.

다음과 같은 경우 소스 및 타겟 데이터가 동기화되지 않을 수 있습니다.

  • Capture가 중지된 동안 사용자가 소스 데이터를 계속 변경하는 경우

    그리고...

  • 해당 시간 동안 Oracle 리두 로그가 래핑되는 경우

    그리고...

  • 아카이브 로그를 사용할 수 없게 되는 경우

특정 시점에 Post 중지

[at sourcetime] 옵션 중 하나를 사용하여 Post 프로세스가 중지되는 시점을 제어할 수 있습니다. 이러한 옵션 중 하나는 지정된 시간이나 시간 및 날짜가 타임스탬프로 표시된 첫 번째 메시지를 받으면 Post를 자동으로 중지합니다. 후속 메시지는 Post가 재시작될 때까지 Post 큐에 누적됩니다.

소스 시스템에서 작업이 예약될 때 [at sourcetime] 옵션을 사용할 수 있으며 작업이 타겟 데이터베이스에 적용되기 전에 작업이 성공적으로 수행되었는지 확인할 수 있습니다. 작업 실행이 예약되기 직전에 Post를 중지하는 옵션을 설정합니다.

또한 타겟 시스템에서 보고서를 실행 중이고 Post 작업이 오버헤드에 대해 경쟁하지 않으려는 경우에도 이 옵션을 사용할 수 있습니다.

SharePlex는 동기식이 아니기 때문에 Post가 중지될 때 타겟 시스템의 실제 시간은 아마도 작업의 타임스탬프보다 늦을 것입니다. 타이밍은 큐에 이전 메시지를 게시하는 데 걸리는 시간에 따라 달라집니다.

사용

지원되는 소스: Oracle
지원되는 타겟: 전체
인증 수준: 운영자(2), 관리자(1)(Capture 중지에 필요)
실행 대상:
  • Capture, Read 및 Export에 대한 stop이 소스 시스템에 대해 실행됩니다.
  • Import 및 Post에 대한 stop이 타겟 시스템에 대해 실행됩니다.
관련 명령: abort service, start

구문

기본 명령 명령 옵션 원격 옵션
stop service

[to host]

[from host]

[for datasource]

[for datasource-datadest]

[queue queuename]

[at sourcetime hh:mm:ss]

[at sourcetime mm/dd/yyyy hh:mm:ss]

[ on host |

on host:portnumber |

on login/password@host |

on login/password@host:portnumber ]

구문 설명
구성 요소 설명
서비스

중지할 SharePlex 프로세스입니다. 유효한 값은 다음과 같습니다.

  • Capture
  • Read
  • Export
  • Import
  • Post

:

sp_ctrl(sysA)> stop export

to host

이 옵션을 사용하면 지정된 타겟 시스템으로 Export가 중지되고 다른 시스템으로 Export는 계속됩니다.

  • to는 구문의 필수 부분입니다.
  • host는 타겟 시스템의 이름입니다.

:

sp_ctrl(sysA)> stop export to sysB

이 예에서는 sysA에서 sysB로의 Export가 중단되지만 sysA에서 다른 타겟 시스템으로의 Export는 계속됩니다.

from host

이 옵션을 사용하면 지정된 소스 시스템에서 Import가 중지되고 다른 시스템에서 Import는 계속됩니다.

  • from은 구문의 필수 부분입니다.
  • host는 소스 시스템의 이름입니다.

:

sp_ctrl(sysD)> stop import from sysC

이 예에서는 sys C에서 Import가 sysD에서 중단되지만 다른 소스 시스템에서 sysD의 Import는 계속됩니다.

for datasource

이 옵션은 지정된 데이터소스에 대한 Capture 또는 Read가 중지됩니다.

  • for은 구문의 필수 부분입니다.
  • datasourceo.SID로 표시되며, 여기서 SID는 ORACLE_SID입니다.

:

sp_ctrl(sysA)> stop read for o.oraA

이 예에서는 인스턴스 oraA에 대한 sysA에서 Read가 중지되지만 sysA의 다른 인스턴스에 대한 다른 Read 프로세스는 처리가 계속됩니다.

for datasource-datadest

이 옵션은 지정된 소스-타겟 데이터 스트림에 대해서만 Post를 중지합니다.

  • for은 구문의 필수 부분입니다.
  • datasourceo.SID로 표시되며, 여기서 SID는 ORACLE_SID입니다.

  • datadesto.SID 또는 r.database로 표현되며, 여기서 SID는 ORACLE_SID이고 database는 Open Target 데이터베이스의 이름입니다.

:

sp_ctrl(sysC)> stop post for o.oraA-o.oraC

이 예에서는 인스턴스 oraA가 oraC에 복제되는 경우 Post가 sysC에서 중지되지만 sysC의 다른 Post 프로세스는 게시가 계속됩니다.

queue queuename

이 옵션은 명명된 큐와 연관된 Export, Import 또는 Post 프로세스에 대한 매개변수를 중지합니다. 다른 명명된 큐를 통한 복제는 영향을 받지 않고 계속됩니다.

  • queue는 구문의 필수 부분입니다.
  • queuename은 구성 파일에 표시된 큐의 사용자 정의된 이름입니다.

:

sp_ctrl(sysA)> stop export queue QA

이 예에서는 명명된 Export 큐 QA를 통한 데이터 Export가 sysA에서 중단되지만 다른 모든 명명된 큐에 할당된 데이터에 대한 Export는 계속됩니다.

at sourcetime hh:mm:ss

이 옵션은 지정된 시간이 타임스탬프로 표시된 첫 번째 메시지가 수신되면 Post 프로세스를 중지합니다. 후속 메시지는 Post가 재시작될 때까지 Post 큐에 누적됩니다.

  • at sourcetime은 구문의 필수 부분입니다.
  • hh:mm:ss는 Post가 중지되는 타임스탬프이며 24시간제를 사용하여 지정해야 합니다. 한 자리 구성 요소를 0으로 채웁니다. 공백을 두지 마십시오.

:

sp_ctrl(sysC)> stop post at sourcetime 24:00:00

이 예에서는 타임스탬프가 자정인 첫 번째 메시지가 수신되면 Post가 sysC에서 중지됩니다.

at sourcetime mm/dd/yyyy hh:mm:ss

이 옵션은 지정된 시간과 날짜가 타임스탬프로 표시된 첫 번째 메시지가 수신되면 Post 프로세스를 중지합니다. stop post at sourcetime hh:mm:ss와 동일한 목적과 기능을 가지며 날짜 옵션이 추가되었습니다.

  • at sourcetime은 구문의 필수 부분입니다.
  • mm/dd/yyyy는 지정된 시간에 Post를 중지할 날짜입니다. 날짜 구성 요소는 구문에서 시간 구성 요소보다 앞에 있어야 합니다. 연도는 네 자리 숫자를 모두 포함해야 합니다. 한 자리 구성 요소를 0으로 채웁니다. 공백을 두지 마십시오. 이 구성 요소를 시간 구성 요소와 공백으로 구분합니다.
  • hh:mm:ss는 Post가 중지되는 타임스탬프이며 24시간제를 사용하여 지정해야 합니다. 한 자리 구성 요소를 0으로 채웁니다.

:

sp_ctrl(sysC)> stop post at sourcetime 01/31/2002 24:00:00

이 예에서는 2002년 1월 31일 자정이 타임스탬프로 표시된 첫 번째 메시지가 수신되면 Post가 sysC에서 중지됩니다.

원격 옵션

이러한 옵션을 사용하면 원격 시스템에서 명령을 실행하고 로그인 이름, 비밀번호, 포트 번호 또는 이러한 항목의 조합을 포함하는 명령을 스크립트할 수 있습니다.

옵션 설명
on host

원격 시스템(현재 sp_ctrl 세션이 실행 중인 시스템이 아닌 것)에서 명령을 실행합니다. 원격 시스템에 대한 로그인 자격 증명을 묻는 메시지가 표시됩니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.

예: sp_ctrl(sysB)>status on SysA

on host:portnumber

원격 로그인 및 포트 번호를 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.

예: sp_ctrl(sysB)>status on SysA:8304

on login/password@host

원격 로그인, 비밀번호 및 호스트 이름을 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.

예:sp_ctrl(sysB)>status on john/spot5489@SysA

on login/password@host:portnumber

원격 로그인, 비밀번호, 호스트 이름 및 포트 번호를 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.

예: sp_ctrl(sysB)>status on john/spot5489@SysA:8304

target

target 명령을 사용하여 특정 유형의 타겟을 지원하도록 Post를 구성할 수 있습니다. 이를 타겟 구성이라고 합니다. 타겟 구성에 저장된 속성은 Post가 복제된 데이터를 처리, 형식화 및 출력하는 방법을 제어합니다.

target 명령은 타겟 구성 설정을 재설정하거나 보는 옵션도 제공합니다.

target 명령을 사용하면 전역 수준에서 또는 queue 옵션을 사용하는 경우 프로세스별 수준에서 타겟 구성을 제어할 수 있습니다.

중요: 이 명령을 사용한 후에는 Post 프로세스를 중지했다가 재시작해야 합니다.

사용

지원되는 소스: Oracle
지원되는 타겟: 전체
인증 수준: 운영자(2)
문제 위치: 타겟 시스템
관련 명령: connection

구문

기본 명령 명령 옵션 원격 옵션

target {o. | r. | x. | c.}target

[queue queuename]

{command_option}

{

{ set category property |

reset [category [property] ] |

show [category ] } |

switch

}

사용 불가

구문 설명
구성 요소 설명
{o. | r. | x. | c.}target

Post를 구성하는 타겟입니다. 타겟 이름 앞의 문자는 Oracle 데이터베이스, Open Target 데이터베이스, JMS, Kafka 브로커, 파일 또는 변경 내역 타겟 등 타겟 유형을 식별합니다.

가능한 타겟은 다음과 같습니다.

o.SID

여기서, SID는 Oracle 데이터베이스의 ORACLE_SID입니다.

r.database

여기서, database는 Open Target 데이터베이스의 이름(DSN 아님)입니다.*

x.jms

여기서, jms는 JMS(Java Message Service) 큐 또는 항목입니다.

x.kafka

여기서, kafka는 Apache Kafka 브로커입니다.

x.file

여기서, file은 지원되는 형식 중 하나로 데이터를 포함하는 구조화된 파일입니다(형식 카테고리 참조).

c.SID

여기서, SID는 변경 내역 타겟으로 구성된 타겟 Oracle 데이터베이스의 ORACLE_SID입니다.

* 참고: SharePlex 지원 데이터 저장소 유형, 데이터 유형 및 작업은 SharePlex 릴리스 노트에 나와 있습니다.
queue queuename

지정된 큐와 연결된 SharePlex Post 프로세스에 대한 명령 작업을 제한합니다. 이 작업은 설정 중인 타겟 속성에 대한 전역 설정을 재정의합니다. queue 옵션이 없으면 타겟 명령은 로컬 SharePlex 인스턴스의 모든 Post 프로세스에 영향을 미칩니다.

예: 다음은 myjms1 큐와 연결된 Post 프로세스에 대한 메타데이터 속성을 설정합니다.

target x.jms queue myjms1 set metadata time, userid, trans, size

{

set category property |

reset [category [property]] |

show [category] |

switch

}

  • set은 타겟 구성에 구성 속성을 적용합니다.
  • reset은 구성 설정을 기본값으로 다시 지웁니다(존재하는 경우). 특정 카테고리 및 (해당되는 경우) 특정 속성으로 제한될 수 있습니다.

참고: reset은 한 속성 값을 다른 속성 값으로 재설정하지 않습니다. 이 작업을 수행하려면 다른 set 명령을 사용합니다.

  • show는 구성 설정을 표시합니다.
  • category는 구성 속성의 카테고리입니다. 속성은 명령을 통한 효율적인 관리를 위해 카테고리별로 그룹화됩니다. 카테고리 설명을 참조하십시오.
  • property는 설정, 재설정 또는 표시할 구성 속성입니다. 카테고리별로 다른 속성이 있습니다.
  • switch는 파일 타겟(x.file)에만 적용됩니다. 이 옵션을 사용하여 새 활성 출력 파일을 생성하고 현재 파일을 일련 번호가 지정된 오래된 파일로 저장할 수 있습니다. 이 명령을 실행하면 Post가 새 레코드를 처리한 후에 전환이 발생합니다. 이 옵션은 입력을 받지 않으며 구성 카테고리와 연결되지 않습니다.
카테고리 설명
카테고리 설명
cdc

특정 테이블에 대해 SP_OPO_TRACK_PREIMAGE 매개변수로 설정된 Oracle 변경 내역 타겟에 대한 전역 설정을 재정의합니다. CDC 카테고리를 참조하십시오.

characterset

복제된 데이터를 Open Target 타겟 데이터베이스에 게시하기 전에 지정된 캐릭터셋으로 변환하도록 Post 프로세스에 지시합니다. 캐릭터셋 카테고리를 참조하십시오.

file

파일 타겟의 속성을 설정합니다. 자세한 내용은 파일 카테고리를 참조하십시오.

format

타겟에 작성되는 데이터의 형식을 설정합니다. 자세한 내용은 형식 카테고리를 참조하십시오.

json

format record=json일 때 JSON 출력의 속성을 설정합니다. 자세한 내용은 JSON 카테고리를 참조하십시오.

jms

JMS 타겟의 속성을 설정합니다. 자세한 내용은 JMS 카테고리 를 참조하십시오.

kafka

Kafka 타겟의 속성을 설정합니다. 자세한 내용은 kafka 카테고리를 참조하십시오.

metadata

SharePlex에 의해 복제되는 데이터에 metadata 속성을 추가합니다. 자세한 내용은 메타데이터 카테고리를 참조하십시오.

resources

타겟 시스템의 리소스에 영향을 미치는 매개변수를 설정합니다. 리소스 카테고리를 참조하십시오.

규칙 | 필터

Oracle 변경 내역 타겟의 특정 테이블에 추적 규칙이나 필터를 적용하는 조건문을 지정합니다. 규칙 | 필터 카테고리를 참조하십시오.

source

Oracle 변경 내역 타겟에 대한 소스 식별자 속성을 설정합니다. 자세한 내용은 소스 카테고리를 참조하십시오.

sql

format record=sql일 때 SQL 출력의 속성을 설정합니다. 자세한 내용은 SQL 카테고리를 참조하십시오.

CDC 카테고리

지원되는 타겟

Oracle 변경 내역 타겟

명령 옵션

target c.SID [queue queuename]

table tablename

{

set cdc preimage={yes | no}

reset cdc

show cdc

}

사용

특정 테이블에 대해 SP_OPO_TRACK_PREIMAGE 매개변수로 설정된 업데이트에 대한 전역 설정을 재정의합니다. 이는 업데이트 작업의 이전 이미지를 내역 테이블에서 추적할지 여부를 제어합니다. 유효한 값은 업데이트 이전 이미지를 추적하려면 yes이고, 이미지 이전 업데이트를 제외하려면 no입니다 .

캐릭터셋 카테고리

지원되는 타겟

Open Target 데이터베이스

명령 옵션

target r.database [queue queuename]

{

set characterset character_set |

reset characterset character_set |

show characterset character_set

}

사용

복제된 데이터가 타겟 데이터베이스에 게시되기 전에 지정된 캐릭터셋으로 변환될 로컬 Oracle 클라이언트로 보내도록 Post 프로세스에 지시합니다. 지정된 캐릭터셋은 Open Target 타겟에 문자 데이터를 게시할 때 Post에서 사용하는 기본 유니코드 캐릭터셋을 재정의합니다.

UTF8-UTF8 이모티콘 복제는 Oracle-Open Poster에 적합하게 작동합니다. 그러나 이러한 시나리오에서 이모티콘 문자를 non-Oracle 타겟에 복제하기 위해 UTF8 형식(예: CESU8)이 아닌 Oracle 소스 데이터베이스에 이모티콘 문자를 삽입하는 경우, 다음 구성 설정을 타겟 SharePlex 인스턴스에 적용해야 합니다.

  1. 데이터 변환을 위한 타겟에 Oracle 클라이언트를 설치합니다.

  2. SP_OPX_NLS_CONVERSION 매개변수를 1(기본값)로 설정합니다.

  3. 데이터를 타겟 DB에 필요한 유효한 UTF8 바이트 시퀀스로 변환하기 위한 타겟 명령을 사용하여 타겟 캐릭터셋을 AL32UTF8로 설정합니다.

참고: 이 옵션을 사용하려면 타겟 시스템에 Oracle 클라이언트가 있어야 합니다. 자세한 내용은 SharePlex 설치 및 설정 안내서의 Open Target 체크리스트 섹션을 참조하십시오.

속성 입력 값 기본값
character_set

타겟 캐릭터셋에 해당하는 Oracle로, 해당 Oracle 이름으로 지정됩니다.

유니코드

GB2312 캐릭터셋의 데이터를 타겟에 게시하려면 Oracle ZHS16GBK 캐릭터셋을 지정합니다.

target r.mymss set characterset ZHS16GBK

파일 카테고리

지원되는 타겟

File

명령 옵션

target x.file [queue queuename]

{

set file property=value |

reset file [property] |

show file

}

사용

파일 타겟의 속성을 설정합니다.

속성 입력 값 기본값

location=pathname

파일을 생성할 SharePlex variable-data 디렉토리 아래의 경로 이름

opx

max_records=number

파일을 전환하기 전에 레코드 수로 측정된 활성 파일의 최대 크기

50,000

max_size=megabytes

파일을 전환하기 전에 메가바이트로 측정된 파일의 최대 크기

50

max_time=seconds

파일을 전환하기 전에 대기할 최대 시간(초)

300

record_length=number

레코드의 최대 크기(문자 수)

132

target x.file set file max_size=320

형식 카테고리

지원되는 타겟

File

Kafka

명령 옵션

target x.{file | kafka} [queue queuename]

{

set format property=value |

reset format [property] |

show format

}

사용

타겟에 작성되는 데이터의 형식을 설정합니다.

속성 입력 값 기본값

date=format

날짜 형식

yyyy-MM-dd HH:mm:ss

decimal=character

10진수 문자

.(기간)

enotation=notation

지수 표기법

14

record=record_format

출력 레코드의 형식입니다. 유효한 값은 sql, xml 또는 json입니다.

xml

timestamp=format

타임스탬프 형식

yyyy-MM-ddTHH:mm:ss.ffffffffff

target x.file set format record=sql

target x.kafka set format record=json

출력 형식에 대한 설명

다음은 format record=record_format에서 제공하는 출력 형식에 대한 설명입니다.

SQL 레코드 형식

SQL 형식 파일의 모든 트랜잭션은 SQL 파일 내의 트랜잭션 시퀀스와 고유 트랜잭션 ID를 포함하는 주석으로 시작됩니다. SQL 파일 끝에 있는 주석 줄에는 파일의 줄 수가 표시됩니다. 예를 들어 다음은 하나의 트랜잭션이 포함된 SQL 파일입니다. 이 예에서 트랜잭션 ID는 2-113319입니다. 파일에는 9개의 줄이 있습니다.

/installed/vardir> cat opx/0000000010_20140305140820_legacy.sql

-- 0000000001 2-113319 03052014140813 03052014140813

DELETE FROM "ROBIN"."TEST_TYPES" WHERE ORA_NUMBER = '22345' AND ROWNUM = 1;

INSERT INTO "ROBIN"."TEST_TYPES" (ORA_NUMBER, ORA_DATE, ORA_RAW, ORA_ROWID,

ORA_FLOAT, ORA_CHAR, ORA_VARCHAR2, ORA_TIMESTAMP, ORA_TIMESTAMP_TZ,

ORA_TIMESTAMP_LTZ) VALUES('22345', '08132066000000', '0123456789ABCDEF'

, 'AAAAAAAAAAAAAAAAAA', '12350', 'Character ', 'Variable data'

, '10201998021300.22000', '06172002080000.00000', '06172002160000.00000');

COMMIT;

-- EOF 0000000009

XML 레코드 형식

XML 형식은 더 쉽게 사용할 수 있도록 작업 및 스키마 "유형"으로 분리됩니다. 이러한 유형은 XSD 관점에서 볼 때 실제로 동일하며 별개의 유형이 아닙니다. 템플릿 XML은 가능한 모든 특성과 요소를 나타냅니다. 개별 XML은 지원되는 각 작업에 대한 최소한의 출력을 나타냅니다.

시작 후 Post가 특정 테이블에 대한 변경 레코드를 처음 작성할 때 먼저 해당 테이블에 대한 스키마 레코드를 작성합니다. 각 스키마 레코드에는 테이블 이름과 각 컬럼의 관심 있는 세부 정보가 포함되어 있습니다. 스키마 레코드는 해당 스키마가 변경되지 않는 한 Post 실행 중에 각 테이블에 대해 한 번만 작성되며 그런 다음, 새 스키마 레코드가 작성됩니다. Post가 중지되었다가 시작되면 Post가 해당 변경 레코드를 수신하므로 각 테이블에 대해 스키마 레코드가 한 번씩 다시 작성됩니다.

스키마 레코드 템플릿
<?xml version="1.0" encoding="UTF-8" ?>  
<?opentarget version="1.0" ?>  
<opentarget>  
    <txn  
        id="xs:integer"  
        oracleTxnId="xs:string"   
        commitTime="xs:dateTimeStamp" />  
    <tbl  
        name="xs:string"  
        utcOffset="xs:integer"
        <cmd ops="schema">  
            <schema>  
                <col  
                    name="xs:string"  
                    xmlType="xs:string"  
                    key="xs:boolean"  
                    nullable="xs:boolean"  
                    length="xs:integer"  
                  />  
            </schema>  
        </cmd>  
    </tbl>  
</opentarget>

표1: 스키마 템플릿 설명(* = 선택 사항)

요소 특성 설명

txn

 

트랜잭션 메타데이터

 

id

현재 트랜잭션의 ID

 

oracleTxnId*

Oracle 트랜잭션 ID

 

commitTime*

트랜잭션 커밋 타임스탬프

tbl

 

테이블 메타데이터

 

name

테이블의 정규화된 이름

 

utcOffset

로그의 UTC 오프셋

cmd

 

작업 메타데이터(스키마의 경우 작업이 없음)

 

ops

이 테이블에 대해 생성된 레코드 유형. 스키마의 경우 값은 schema

schema   컬럼 메타데이터
col   컬럼의 메타데이터(이러한 요소 중 하나가 테이블의 모든 레코드에 나타남)

 

name

컬럼 이름

 

xmlType

XML 데이터 유형

 

key

키 플래그(true, false)

 

nullable

null 허용 플래그

 

length

컬럼 길이

작업 레코드 템플릿
<?xml version="1.0" encoding="UTF-8" ?>
<?opentarget version="1.1" ?>
<opentarget>
    <txn
        id="xs:integer" 
        msgIdx="xs:integer" 
        msgTot="xs:integer" 
        oracleTxnId="xs:string"
        commitTime="xs:dateTimeStamp"
        userId="xs:string" />
    <tbl 
        name="xs:string"
        <cmd ops="xs:string">
            <row id="xs:string">
                <col name="xs:string"></col>
                <lkup>
                    <col name="xs:string"></col>
                </lkup>
            </row>
        </cmd>
    </tbl>
</opentarget>

표2: 작업 템플릿 설명(* = 선택 사항)

요소 특성 설명
txn   작업에 대한 트랜잭션 메타데이터
  id 현재 트랜잭션의 ID
  msgIdx 트랜잭션에서 현재 레코드의 인덱스
  msgTot* 트랜잭션의 총 메시지 수
  oracleTxnId* SCN(System Change Number)에서 가져온 Oracle 트랜잭션 ID
  commitTime* 트랜잭션 커밋 타임스탬프
  userId* 작업을 수행한 사용자 ID
tble   테이블 메타데이터
  name 정규화된 테이블 이름
cmd  

작업 메타데이터

  ops 작업 유형(Insert, Update, Delete, Truncate)
row   작업에서 변경된 행의 메타데이터
  id Oracle ROWID
col   컬럼의 데이터 변경(작업에서 변경된 모든 컬럼에 대해 이러한 요소 중 하나가 나타남)
  name 해당 컬럼의 이후 값이 있는 컬럼 이름
lkup   업데이트 및 삭제 작업에 사용할 이전 이미지
col   컬럼의 이전 이미지(작업에서 변경된 모든 컬럼에 대해 이러한 요소 중 하나가 나타남)
  name 해당 컬럼에 대한 이전 값 또는 키 값(작업에 따라 다름)이 있는 컬럼 이름

참고: idmsgIdx 특성은 함께 작업을 고유하게 식별합니다.

지원되는 데이터 유형

Oracle 데이터 유형이 XML로 변환되는 방법을 보여주는 차트는 SharePlex 릴리스 노트를 참조하십시오.

샘플 XML 레코드
소스 테이블

샘플 작업이 생성되는 테이블입니다.

SQL> desc products

Name

Null?

Type

PRODUCT_ID

NOT NULL

NUMBER

DESCRIPTION

 

VARCHAR2(600)

PRICE

 

NUMBER

소스 DML 작업
insert into products values (230117, ‘Hamsberry vintage tee, cherry’, 4099);
commit;
update products set price=3599 where product_id=230117 and price=4099;
commit;
delete products where product_id=230117;
commit;
truncate table products;
스키마 레코드
<?xml version="1.0" encoding="UTF-8"?>
<?opentarget version="1.1"?>
<opentarget>
<txn id="2218316945" commitTime="2014-10-10T13:18:43" userId="85" oracleTxnId="3.10.1339425" />
<tbl name="MFG.PRODUCTS" utcOffset="-5:00">
<cmd ops="schema">
<schema>
<col name="PRODUCT_ID" xmlType="decimal" key="true" nullable="false" length="22" />
<col name="DESCRIPTION" xmlType="string" key="false" nullable="true" length="600" />
<col name="PRICE" xmlType="decimal" key="false" nullable="true" length="22" />
</schema>
</cmd>
</tbl>
</opentarget>
삽입 레코드
<?xml version="1.0" encoding="UTF-8"?>
<?opentarget version="1.1"?>
<opentarget>
<txn id="2218316945" msgIdx="1" msgTot="1" commitTime="2014-10-10T13:18:43" userId="85" oracleTxnId="3.10.1339425" />
<tbl name="MFG.PRODUCTS">
<cmd ops="ins">
<row id="AAAmDbAAEAAApRrAAA">
<col name="PRODUCT_ID">230117</col>
<col name="DESCRIPTION">Hamsberry vintage tee, cherry</col>
<col name="PRICE">4099</col>
</row>
</cmd>
</tbl>
</opentarget>
업데이트 레코드
<?xml version="1.0" encoding="UTF-8"?>
<?opentarget version="1.1"?>
<opentarget>
<txn id="2218318728" msgIdx="1" msgTot="1" commitTime="2014-10-10T13:19:12" userId="85" oracleTxnId="1.17.970754" />
<tbl name="MFG.PRODUCTS">
<cmd ops="upd">
<row id="AAAmDbAAEAAApRrAAA">
<col name="PRICE">3599</col>
<lkup>
<col name="PRODUCT_ID">230117</col>
<col name="PRICE">4099</col>
</lkup>
</row>
</cmd>
</tbl>
</opentarget>
삭제 레코드
<?xml version="1.0" encoding="UTF-8"?>
<?opentarget version="1.1"?>
<opentarget>
<txn id="2218319446" msgIdx="1" msgTot="1" commitTime="2014-10-10T13:19:25" userId="85" oracleTxnId="5.23.1391276" />
<tbl name="MFG.PRODUCTS">
<cmd ops="del">
<row id="AAAmDbAAEAAApRrAAA">
<lkup>
<col name="PRODUCT_ID">230117</col>
</lkup>
</row>
</cmd>
</tbl>
</opentarget>
자르기 레코드
<?xml version="1.0" encoding="UTF-8"?>
<?opentarget version="1.1"?>
<opentarget>
<txn id="2218319938" commitTime="1988-01-01T00:00:00" userId="85" oracleTxnId="11.4.939801" />
<tbl name="MFG.PRODUCTS">
<cmd ops="trunc" />
</tbl>
</opentarget>

JSON 레코드 형식

참고: 이 형식은 출력을 더 읽기 쉽게 만들기 위해 target x.kafka set json indent=2가 사용되었다는 점을 제외하면 기본 출력입니다.

샘플 작업이 생성되는 테이블입니다.

SQL> desc products

Name

Null?

Type

PRODUCT_ID

NOT NULL

NUMBER

DESCRIPTION

 

VARCHAR2(600)

PRICE

 

NUMBER

소스 DML 작업
insert into products values (230117, ‘Hamsberry vintage tee, cherry’, 4099);
commit;
update products set price=3599 where product_id=230117 and price=4099;
commit;
delete products where product_id=230117;
commit;
truncate table products;
스키마 레코드
{
  "meta":{
    "op":"schema",
    "table":""
  },
  "schema":{
    "name":"BILL.PRODUCTS",
    "utcOffset":"-7:00",
    "PRODUCT_ID":{
      "jsonType":"decimal",
      "num":1,
      "key":1,
      "nullable":1,
      "length":22,
      "precision":0,
      "scale":0,
      "src_name":"PRODUCT_ID"
    },
    "DESCRIPTION":{
      "jsonType":"string",
      "num":2,
      "key":1,
      "nullable":1,
      "length":600,
      "precision":0,
      "scale":0,
      "src_name":"DESCRIPTION"
    },
    "PRICE":{
      "jsonType":"decimal",
      "num":3,
      "key":1,
      "nullable":1,
      "length":22,
      "precision":0,
      "scale":0,
      "src_name":"PRICE"
    }
  }
}
삽입 레코드
{
  "meta":{
    "op":"ins",
    "table":"BILL.PRODUCTS"
  },
  "data":{
    "PRODUCT_ID":230117,
    "DESCRIPTION":"Hamsberry vintage tee, cherry",
    "PRICE":4099
  }
}
업데이트 레코드
{
  "meta":{
    "op":"upd",
    "table":"BILL.PRODUCTS"
  },
  "data":{
    "PRICE":3599
  },
  "key":{
    "PRODUCT_ID":230117,
    "DESCRIPTION":"Hamsberry vintage tee, cherry",
    "PRICE":4099
  }
}
삭제 레코드
{
  "meta":{
    "op":"del",
    "table":"BILL.PRODUCTS"
  },
  "data":{
    "PRODUCT_ID":230117,
    "DESCRIPTION":"Hamsberry vintage tee, cherry",
    "PRICE":3599
  }
}
자르기 레코드
{
  "meta":{
    "op":"truncate",
    "table":"BILL.PRODUCTS"
  }
}

JMS 카테고리

지원되는 타겟

JMS

명령 옵션

target x.jms [queue queuename]

{

set jms property=value |

reset jms [property] |

show jms

}

사용

JMS 타겟의 속성을 설정합니다.

속성 입력 값 기본값

factory_class=factory_class

필수. 팩토리 클래스의 정규화된 클래스 이름입니다. 공급자에 대한 초기 컨텍스트 팩토리의 클래스 이름을 지정하기 위해 JNDI 환경 속성 java.naming.factory.initial을 설정합니다.

None

provider_url=url

필수. 객체 이름 구성 요소가 없는 RMI URL입니다. 이는 JNDI 환경 속성 java.naming.provider.url을 설정하여 초기 컨텍스트로 사용되는 레지스트리 위치를 지정합니다.

JMS 공급자 및 URL 유형에 따라 올바른 형식을 사용합니다. 예를 들어 LDAP를 사용하는 경우 URL은 다음과 유사할 수 있습니다.

ldap://hostname.company.com/contextName

JMS 공급자 URL은 JMS 공급자 관리자에게 문의하십시오.

None

lib_location=path

필수. 클라이언트 라이브러리 파일을 설치한 디렉토리의 경로입니다.

None

destination={queue | topic}

메시징 도메인. 유효한 값은 queue(포트-포트) 또는 topic(게시자-구독자 모델)입니다.

factory_name=factory_name

JNDI 연결 팩토리 조회의 이름입니다. 쉼표로 구분된 목록을 사용하여 여러 이름을 지정할 수 있습니다(예: jndi.name1, jndi.name2).

None

user=user

JMS에 연결 중인 사용자의 이름입니다. 인증이 필요하지 않은 경우에는 이 속성과 비밀번호 옵션을 생략합니다.

None

password=password

JMS 사용자의 비밀번호입니다.

None

queuename=JMS_topic_queuename

JMS 큐 또는 항목의 이름입니다.

OpenTarget

persistent={yes | no}

yes는 보내기 작업의 일환으로 메시지를 디스크 스토리지에 기록합니다.

no는 로깅을 방지합니다.

yes
session_transacted ={yes | no}

no는 복제된 모든 메시지에 대해 JMS 커밋을 발행하여 각 메시지를 즉시 표시하고 사용할 수 있도록 Post에 지시합니다. 이 설정은 기본값입니다.

yes는 트랜잭션 방식으로 작동하도록 Post에 지시합니다. 이 모드에서 Post는 다음을 기반으로 간격을 두고 JMS 커밋(메시지를 표시하고 사용할 수 있도록 만들기 위해)을 실행합니다.

  • SP_OPX_READRELEASE_INTERVAL 매개변수에 설정된 값에 따라 제어되는 대로 Post 큐에서 데이터를 읽기-해제하기 전에 커밋을 실행합니다.
  • SP_OPX_READRELEASE_INTERVAL에 도달할 때까지 SP_OPX_CHECKPOINT_FREQ 매개변수에 설정된 값에 따라 제어되는 대로 JMS 쓰기마다 커밋을 실행합니다.

no
properties

사용 중인 JMS 공급자가 SharePlex에서 제공하는 기본 속성 집합이 포함된 메시지를 사용할 수 없는 경우에 이 옵션을 사용합니다. 속성을 제거하거나 추가할 수 있습니다. 속성을 쉼표로 구분된 목록으로 제공합니다.

  • 속성을 추가하려면 name=value로 지정합니다.
  • SharePlex 속성을 제거하려면 이름 앞에 대시를 붙입니다. 예를 들어 이 문자열은 -JMSXDeliveryCount,-JMSXGroupSeq라는 두 개의 SharePlex 속성을 제거합니다.
None
client_id 사용 중인 JMS 공급자가 기본 SharePlex 클라이언트 ID가 포함된 메시지를 사용할 수 없는 경우에 이 옵션을 사용합니다. 이 값을 공급자가 허용하는 클라이언트 ID로 설정합니다. None
commit_frequency

Post가 transactional 스타일로 JMS 서버에 게시하도록 구성된 경우 이 옵션을 사용합니다(session_transacted 속성의 지시에 따라 모든 메시지를 실행한 후가 아니라 간격을 두고 JMS 커밋 실행). 이 매개변수는 JMS 커밋 간의 간격을 지정합니다. 이는 SP_OPX_READRELEASE_INTERVAL 매개변수와 함께 작동합니다. 유효한 값은 1부터 양의 정수까지입니다.

1500

target x.jms set jms queuename=SharePlexJMS

JSON 카테고리

지원되는 타겟

File(format record=json)

Kafka(format record=json)

명령 옵션

target x. {file | kafka } [queue queuename]

{

set json property=value |

reset json [property] |

show json

}

사용

format record =json일 때 JSON 출력의 속성을 설정합니다.

속성 입력 값 기본값

before

  • yes로 설정하면 변경된 행의 이전 이미지가 포함됩니다.
    줄 끝에 이전 이미지가 있는 다음과 유사한 레코드가 생성됩니다.

    {"meta":{"op":"upd","table":"BILL.JSON"},"data":{"C2":"Bye"},
    "key":{"C1":"1","C2":"Hello"}}
    {"meta":{"op":"upd","table":"BILL.JSON"},
    "data":{"C1":"2"},"key":{"C1":"1"}}
    
  • no로 설정하면 변경된 행의 이전 이미지가 제외됩니다. 다음과 유사한 레코드가 생성됩니다.

    {"meta":{"op":"upd","table":"BILL.JSON"},"data":{"C2":"Bye"}}
    {"meta":{"op":"upd","table":"BILL.JSON"},"data":{"C1":"2"}}
    

    법적 고지 사항: 업데이트 작업의 경우 업데이트된 레코드에 대한 키를 보려면 "before"과 "yes" 값을 함께 사용해야 합니다.

yes

commit

  • yes로 설정하면 커밋 레코드가 포함됩니다. 다음과 유사한 레코드가 생성됩니다.

    {"meta":{"op":"commit","table":""}}
  • no로 설정하면 커밋 레코드가 생략됩니다.

중요! commityes로 설정하면 타겟 항목이 하나만 있을 수 있습니다.

yes

ddl
  • yes로 설정하면 ALTER TABLE 명령이 포함됩니다. 다음과 유사한 레코드가 생성됩니다.

    {"meta":{"op":"ddl","table":"BILL.JSON"},
    "sql":{"ddl":"alter table \"BILL\".\"JSON\""}
    
  • No로 설정하면 ALTER TABLE 명령이 생략됩니다.

yes

eol

yes로 설정하면 JSON 문서 끝에 줄 끝 문자가 포함됩니다.

no로 설정하면 줄 끝 문자가 제외됩니다.

yes

indent

레코드의 들여쓰기 수준을 제어합니다.

  • 0 값은 다음과 같이 전체 레코드를 한 줄에 배치합니다.

    {"meta":{"op":"ins","table":"BILL.JSON"},
    "data":{"C1":"1","C2":"Hello ",
    "C3":"There","C4":"2017-03-20T09:46:34",
    "C5":"2017-03-20T09:46:34.735370000"}}

  • 0보다 큰 값은 지정된 문자 수만큼 메타데이터(포함된 경우)와 데이터 줄을 들여쓰기합니다.
    다음 예(indent= 4)와 같이 레코드를 논리적으로 여러 줄로 분할합니다.

    {
        "meta":{
            "op":"ins",
            "table":"BILL.JSON"
        },
        "data":{
            "C1":"1",
            "C2":"Hello",
            "C3":"There",
            "C4":"2017-03-20T10:02:37",
            "C5":"2017-03-20T10:02:37.456949000"
        }
    }
    

0

meta
  • yes로 설정하면 JSON 레코드의 메타데이터 섹션이 포함됩니다. 다음과 유사한 레코드가 생성됩니다.

    {"meta":{"op":"ins","table":"BILL.JSON"},
    "data":{"C1":"1","C2":"Hello","C3":"There",
    "C4":"2017-03-20T10:04:44",
    "C5":"2017-03-20T10:04:44.957758000"}}
    {"meta":{"op":"upd","table":"BILL.JSON"},"data":{"C2":"Bye"}}
    {"meta":{"op":"upd","table":"BILL.JSON"},"data":{"C1":"2"}}
    {"meta":{"op":"del","table":"BILL.JSON"},"data":{"C1":"2"}}
    {"meta":{"op":"commit","table":""}}
    
  • no로 설정하면 메타데이터 섹션이 생략되며, 다음과 유사한 레코드가 생성됩니다.

    {"data":{"C1":"1","C2":"Hello","C3":"There",
    "C4":"2017-03-20T10:05:09",
    "C5":"2017-03-20T10:05:09.268094000"}}
    {"data":{"C2":"Bye"}}
    {"data":{"C1":"2"}}
    {"data":{"C1":"2"}}
    {}

참고: 레코드에 표시되는 메타데이터 필드를 지정하려면 set Metadata property 명령을 사용합니다. 메타데이터 카테고리를 참조하십시오.

예:

target x.kafka set metadata time,userid,op,scn

yes

schema
  • yes로 설정하면 스키마 레코드가 포함됩니다.
  • no로 설정하면 스키마 레코드가 생략됩니다.

    새로운 SharePlex
    구성이 활성화되거나 테이블에 DDL 변경이 있을 때 복제 중인 객체에 대한 스키마 레코드가 생성됩니다.
    yes 값(indent=4 사용)은 다음과 유사한 레코드를 생성합니다.

    {
        "meta":{
            "op":"schema",
            "table":""
        },
        "schema":{
            "name":"BILL.JSON",
            "utcOffset":"-7:00",
            "C1":{
                "jsonType":"decimal",
                "num":1,
                "key":1,
                "nullable":0,
                "length":22,
                "precision":0,
                "scale":0,
                "src_name":"C1"
            },
            "C2":{
                "jsonType":"string",
                "num":2,
                "key":0,
                "nullable":1,
                "length":10,
                "precision":0,
                "scale":0,
                "src_name":"C2"
            },
            "C3":{
                "jsonType":"string",
                "num":3,
                "key":0,
                "nullable":1,
                "length":10,
                "precision":0,
                "scale":0,
                "src_name":"C3"
            }
      }
    }

yes

target x.kafka set json meta=no

kafka 카테고리

지원되는 타겟

Kafka

명령 옵션

target x.kafka [queue queuename]

{

set kafka property=value |

reset kafka [property] |

show kafka

}

사용

Kafka 타겟의 속성을 설정합니다.

속성 입력 값 Default
broker=broker

필수. Kafka 브로커의 호스트 및 포트 번호, 또는 여러 브로커의 쉼표로 구분된 목록입니다. 이 목록은 Kafka 클러스터에 대한 부트스트랩입니다. Post가 이러한 브로커 중 하나에 연결할 수 있는 한 클러스터의 다른 브로커를 검색합니다.

localhost:9092
client_id=ID

선택 사항. 호출 추적을 지원하기 위해 Post가 각 요청에서 보내는 사용자 정의 문자열입니다.

None
compression.code={none, gzip, snappy} 선택 사항. Kafka에서 데이터를 압축할지 여부를 제어합니다. 옵션은 none, gzip 또는 snappy입니다. None
partition={number | rotate | rotate trans| messagekey}

필수. 다음 중 하나입니다.

  • 고정 파티션 번호: 지정된 파티션 번호에만 메시지를 게시하도록 Post를 지시합니다. 예를 들어 0으로 설정하면 Post가 파티션 0에만 게시하도록 지시합니다. 이 옵션은 테스트에 사용하거나, 타겟에 동일한 Kafka 항목에 대한 데이터 게시의 여러 채널이 있는 경우에 적합합니다.
  • 키워드 rotate: 라운드 로빈 방식으로 항목의 모든 파티션에 메시지를 적용하도록 Post에 지시합니다. 새로운 메시지가 나올 때마다 파티션이 변경됩니다. 예를 들어 항목에 3개의 파티션이 있는 경우 메시지는 파티션 0,1,2,0,1,2 등에 순서대로 게시됩니다.
  • 키워드 rotate trans: 각 메시지가 아닌 각 트랜잭션마다 파티션이 증가한다는 점을 제외하면 rotate 옵션과 비슷합니다. 예를 들어 항목에 3개의 파티션이 있는 경우 메시지는 커밋 전까지 파티션 0에 게시된 다음, 커밋까지 파티션 1에 게시되는 식으로 순서대로 진행됩니다. 이 옵션은 여러 테이블을 단일 항목에 복제하는 경우에 적합합니다. 이를 통해 여러 파티션에 데이터를 배포하는 동시에 트랜잭션의 모든 작업을 단일 파티션에 함께 보존할 수 있습니다. 또한 이 속성은 단일 파티션에서 읽는 소비자가 전체 트랜잭션 스트림을 수신할 수 있습니다.
  • 키워드 messagekey: 메시지를 파티션에 게시하도록 Post에 지시합니다. Kafka 항목은 여러 파티션으로 나뉩니다. 이러한 파티션은 기본 파티션 해시 함수를 기반으로 선택됩니다. 해시 값은 messagekey를 기반으로 계산됩니다. messagekey 파티션을 사용하여 동일한 키 값을 가진 모든 메시지를 동일한 파티션에 배치합니다.

참고:

  • LOB 및 CLOB 컬럼은 Kafka 파티션 키로 간주되지 않습니다.

  • 기본 키, 고유 키, 복합 키 또는 고유 인덱스가 없는 테이블의 경우 모든 컬럼(LOB 및 CLOB 컬럼 제외)은 키 컬럼으로 간주됩니다. 이러한 테이블에 대해 변경 쿼리를 수행하면 DDL 문이 모든 파티션에 복제되고 후속 DML 문은 기존 컬럼을 기반으로 특정 파티션으로 전송됩니다.

  • 복제 테이블에 키가 정의되어 있지 않으면 SharePlex는 모든 테이블 컬럼을 Kafka messagekey로 간주합니다. 키가 아닌 테이블의 경우 SharePlex 사용자 정의 키를 사용하는 것이 좋습니다. 자세한 내용은 SharePlex 관리 안내서고유 키 정의: PostgreSQL-PostgreSQL 섹션을 참조하십시오.

  • 여러 테이블이 복제에 포함된 경우, 특정 테이블이 다른 파티션 유형을 갖도록 하고 나머지 테이블은 메시지 키를 기반으로 파티셔닝되었다면 해당 특정 테이블에 대해 명명된 Post 큐를 정의할 수 있습니다.

예: 

target x.kafka queue <queue_name> set kafka partition={number/rotate/rotate trans}

나머지 테이블에는 아래 명령을 사용합니다.

target x.kafka set kafka partition=messagekey

중요:

messagekey를 기반으로 파티셔닝하는 경우 키 정보가 포함되지 않은 메시지는 Kafka의 내부 해시 함수에 따라 매핑됩니다. 이러한 메시지에는 커밋, 스키마, 롤백, 저장점 및 DDL 문이 포함될 수 있습니다.

복제 중에 파티션 수가 늘어나면 파티션에 대한 기존 키 매핑이 더 이상 유효하지 않게 됩니다.

인덱스 역할을 하는 컬럼이 몇 개 있고 다른 제약 조건이 정의되지 않은 테이블의 경우, 해당 인덱스를 SharePlex 구성 파일의 고유 키로 사용합니다.

예를 들어 다음 테이블에는 ID와 NAME이라는 두 컬럼에 정의된 고유 인덱스가 있습니다.

create table mytable(ID NUMBER(25,2),NAME CHAR(200),COL_VARCHAR2 VARCHAR2(400),COL_RAW RAW(1000));

CREATE INDEX indx_mytable ON mytable(ID,NAME);

SharePlex 구성 파일에서 인덱스 컬럼을 고유 키로 정의합니다.

datasource:o.SID
src.mytable !key(ID,NAME) host

자세한 내용은 SharePlex 관리 안내서고유 키 정의: Oracle-Oracle 섹션을 참조하십시오.

제약 조건이나 인덱스가 정의되지 않은 테이블의 경우 사용자는 SharePlex에서 구성하는 동안 고유 키를 정의할 수 있습니다.

복합 키가 있는 테이블의 경우 키 값 중 하나라도 수정되면 수정 메시지가 현재 파티션에 배치되고, 후속 메시지는 동일한 파티션에 할당되거나 할당되지 않을 수 있습니다.

0
request.required.acks=value

선택 사항. Kafka 클라이언트 매개변수입니다. 기본적으로 -1 값으로 설정됩니다. 이는 all을 의미합니다. 이 주제에 대해서는 Kafka 문서를 참조하십시오. all은 실제로 모든 동기화 복제본을 의미하기 때문입니다. 이 매개변수는 min.insync.replicas 브로커 매개변수와 함께 사용하여 가용성과 데이터 일관성 간의 동작을 조정할 수 있습니다.

중요: 이러한 설정에 따라 Kafka 생성자(이 경우 SharePlex)와 Kafka 클러스터 간에 데이터가 손실될 수 있습니다.

-1
topic=topic_name

필수. 타겟 Kafka 항목의 이름입니다.

이 문자열에는 특수 시퀀스 %o 또는 %t가 포함될 수 있습니다. %o 시퀀스는 복제되는 테이블의 소유자 이름으로 대체됩니다. %t 시퀀스는 복제되는 테이블의 테이블 이름으로 대체됩니다. 이 기능은 'true'로 설정된 auto.create.topics.enabled의 Kafka 서버 설정과 함께 사용할 수 있습니다. 또한 default.replication.factornum.partitions에 대한 서버 설정을 확인하십시오. 항목이 자동 생성될 때 기본값으로 사용되기 때문입니다.

중요! 여러 항목을 사용하는 경우 target 명령을 사용하여 다음 속성도 설정해야 합니다.
  • 출력은 JSON 형식이어야 합니다. format 카테고리의 record 속성을 json으로 설정합니다.

    target x.kafka set format record=json

  • 커밋을 비활성화해야 합니다. json 카테고리의 commit 속성을 no로 설정합니다.

    target x.kafka set json commit=no

shareplex

* 지연 시간을 피하기 위해 Post가 들어오는 메시지를 더 이상 감지하지 않으면 임계값이 충족될 때까지 기다리지 않고 즉시 Kafka에 패킷을 보냅니다.

sp_ctrl> target x.kafka set kafka broker=host1:9092,host2:9092,host3:9092

sp_ctrl> target x.kafka set kafka topic=shareplex

메타데이터 카테고리

지원되는 타겟

Oracle 복제 타겟

Oracle 변경 내역 타겟

HANA 복제 타겟

File

JMS

Kafka

명령 옵션

target {o.SID | c.SID | r.database | x.file | x.jms | x.kafka} [queue queuename]

{

set metadata [colname:]property[, ...] |

reset metadata |

show metadata

}

사용

target 명령을 set metadata와 함께 사용하면 데이터베이스 타겟, XML 또는 JSON 파일 타겟, JMS 타겟, Kafka 타겟에 대해 설정된 기본 메타데이터 속성을 재정의할 수 있습니다. 이러한 모든 타겟 유형은 Post 출력에 메타데이터를 제공합니다.

  • Oracle 및 HANA 복제 타겟: Oracle 및 HANA 복제 타겟에 대해 메타데이터를 구성할 수 있습니다. 메타데이터 컬럼은 타겟에 있어야 합니다. SharePlex는 메타데이터 컬럼을 추가하지 않습니다.
  • Oracle 변경 내역 타겟: 타겟 지정이 수행되지 않은 경우 Post는 복제를 시작하기 전에 기본 이름에 있어야 하는 기본 메타데이터 컬럼을 업데이트합니다. 다음 표에는 기본적으로 변경 내역 타겟에 속성이 포함된 경우 기본 컬럼 이름이 나와 있습니다. 메타데이터를 더 추가하거나 컬럼(colname 옵션 사용)에 사용자 지정 이름을 할당하려면 set metadata만 사용합니다.
  • XML 입력(JMS, Kafka, 파일)을 지원하는 타겟의 경우 메타데이터는 XML 스키마에 따라 형식이 지정됩니다. 다음 표에 표시된 대로 set metadata를 사용할 필요 없이 특정 메타데이터가 기본적으로 출력에 포함됩니다. 메타데이터를 더 추가하려면 set metadata만 사용합니다.
  • JSON 입력(Kafka)을 지원하는 대상의 경우 json Meta=no를 설정하지 않으면 optable 속성이 기본적으로 포함됩니다.

변경 내역 타겟 데이터베이스를 지원하도록 SharePlex를 구성하는 방법에 대한 자세한 내용은 SharePlex 관리자 안내서를 참조하십시오.

여러 메타데이터 속성을 설정하려면 해당 속성을 쉼표로 구분된 목록으로 지정합니다.

속성 Post에 의해 삽입된 값 유효한 항목
time

Oracle에서 제공한 대로 작업이 소스에 적용된 시간입니다.

중요! Oracle 버전 11g 이상에서는 시간이 트랜잭션 경계 레코드(예: 트랜잭션 시작)에만 나타납니다. Oracle 리두 로그의 선형 설계와 SharePlex가 트랜잭션 순서로 작업을 복제하는 방식을 기반으로 SharePlex는 다른 타임스탬프가 있는 레코드가 있을 때까지 기존 레코드에 포함된 타임스탬프를 후속 레코드에 적용합니다.

기본 컬럼 이름: SHAREPLEX_SOURCE_TIME

데이터 유형: TIMESTAMP

이 속성은 기본적으로 XML 출력 및 변경 내역 테이블에 포함됩니다.

Oracle 복제 타겟

변경 내역 타겟

JSON 및 XML 출력

userid

작업을 수행한 사용자 ID

기본 컬럼 이름: SHAREPLEX_SOURCE_USERID

데이터 유형: NUMBER

이 속성은 기본적으로 XML 출력 및 변경 내역 테이블에 포함됩니다.

Oracle 복제 타겟

변경 내역 타겟

JSON 및 XML 출력

op

작업 유형(INSERT, UPDATE, DELETE, TRUNCATE, DROP COLUMN, UPDATE BEFORE, UPDATE AFTER). JMS 구현의 경우 이 필드는 항상 SPOps라는 필드로 XML 출력에 추가됩니다. 이를 JMS 속성에 추가하려면 명시적인 target 명령을 op 옵션과 함께 실행합니다.

기본 컬럼 이름: SHAREPLEX_SOURCE_OPERATION

데이터 유형: VARCHAR2

이 속성은 기본적으로 XML 및 JSON 출력과 변경 내역 테이블에 포함됩니다.

Oracle 복제 타겟

변경 내역 타겟

JSON 및 XML 출력

scn

작업이 적용된 경우의 소스 SCN

기본 컬럼 이름: SHAREPLEX_SOURCE_SCN

데이터 유형: NUMBER

이 속성은 기본적으로 변경 내역 테이블에 포함됩니다.

Oracle 복제 타겟

변경 내역 타겟

HANA 복제 타겟

JSON 출력

rowid

변경된 행의 ROWID

기본 컬럼 이름: SHAREPLEX_SOURCE_ROWID

데이터 유형: ROWID

이 속성은 기본적으로 변경 내역 테이블에 포함됩니다.

Oracle 복제 타겟

변경 내역 타겟

JSON 출력

trans

작업에 대한 트랜잭션 ID. JMS 구현의 경우 이 필드는 XML 출력과 JMS 속성 모두에 SPTxnId라는 필드로 추가됩니다.

기본 컬럼 이름: SHAREPLEX_SOURCE_TRANS

데이터 유형: VARCHAR2

이 속성은 기본적으로 변경 내역 테이블에 포함됩니다.

Oracle 복제 타겟

변경 내역 타겟

JSON 출력

seq

트랜잭션 내 작업 순서

기본 컬럼 이름: SHAREPLEX_OPERATION_SEQ

데이터 유형: NUMBER

이 속성은 기본적으로 변경 내역 테이블에 포함됩니다.

Oracle 복제 타겟

변경 내역 타겟

JSON 출력

host

소스 호스트의 이름 또는 IP 주소

기본 컬럼 이름: SHAREPLEX_SOURCE_HOST

데이터 유형: VARCHAR2

이 속성은 기본적으로 변경 내역 테이블에 포함됩니다.

Oracle 복제 타겟

변경 내역 타겟

JSON 출력

posttime 작업이 타겟에 게시된 시간 JSON 출력
queue

SharePlex 큐의 이름

기본 컬럼 이름: SHAREPLEX_QUEUENAME

데이터 유형: VARCHAR2

이 속성은 기본적으로 변경 내역 테이블에 포함됩니다.

Oracle 복제 타겟

변경 내역 타겟

JSON 출력

source

타겟set source 옵션으로 설정된 사용자 정의 소스 식별자. 소스 카테고리를 참조하십시오.

기본 컬럼 이름: SHAREPLEX_SOURCE_ID

데이터 유형: VARCHAR2

이 속성은 기본적으로 변경 내역 테이블에 포함됩니다.

Oracle 복제 타겟

변경 내역 타겟

JSON 출력

changeid

작업의 고유한 순차 ID

기본 컬럼 이름: SHAREPLEX_CHANGE_ID

데이터 유형: NUMBER

이 속성은 기본적으로 변경 내역 테이블에 포함됩니다.

Oracle 복제 타겟

변경 내역 타겟

size

트랜잭션의 작업 수

 

JSON 출력

Kafka

table

타겟 테이블의 이름. 타겟 테이블의 이름은 SPTblName이라는 필드로 JMS 속성에 추가됩니다.

이 속성은 기본적으로 JSON 출력에 포함됩니다.

JMS

JSON 및 XML 출력

idx 트랜잭션 내에서 이 작업의 인덱스. 이는 SPMSgIdx라는 필드로 JMS 속성에 추가됩니다. JMS 속성에서 m/n 형식으로 지정됩니다. 여기서, n은 트랜잭션의 총 작업 수이고 m은 트랜잭션 내의 작업 번호입니다.

JMS

JMS 및 Kafka 세트 메타데이터 예

다음은 소스의 IP 주소 또는 호스트 이름, SharePlex 큐의 이름, 트랜잭션의 작업 수를 JMS 타겟의 출력에 추가하도록 모든 Post 프로세스를 설정합니다.

target x.jms set metadata host, queue, size

또는...

target x.kafka set metadata host, queue, size

Oracle 세트 메타데이터 예

다음 예에서는 작업 시간과 작업을 실행한 사용자 ID를 TimestampUser 컬럼(두 컬럼 모두 대소문자를 구분하는 사용자 정의 이름임)에 추가하도록 myqueue1 큐와 연결된 Post 프로세스를 설정합니다.

target c.targSID queue myqueue1 set metadata time:"Timestamp", userid:"User"

리소스 카테고리

지원되는 타겟

모든 타겟

명령 옵션

target {o. | r. | x. | c.} target [queue queuename]

{

set resources property=value |

reset resources [property] |

show resources [for datastore]

}

사용

타겟 시스템의 리소스에 영향을 미치는 매개변수를 설정합니다.

속성 입력 값 기본값

commit_frequency=number_of_operations

Post가 커밋을 실행한 후 최대 작업 수를 지정합니다. 1보다 큰 정수일 수 있습니다. 대규모 트랜잭션을 두 개 이상의 작은 트랜잭션으로 나누는 데 사용할 수 있습니다. 각 트랜잭션에는 지정된 최대 number_of_Operations가 포함됩니다. 이 옵션은 트랜잭션당 허용되는 행 잠금 수와 같이 대규모 트랜잭션에 영향을 미치는 리소스 제한을 해결할 수 있습니다.

참고: "commit_frequency" 속성은 JMS 타겟에 대해서만 지원됩니다.

50000

max_active_statements=number_of_cursors Post가 한 세션에서 타겟 데이터베이스에 대해 처리할 수 있는 동시 활성 SQL 문의 수를 지정합니다. 데이터베이스 또는 클라이언트 드라이버에서 허용하는 최대 활성 문 수까지의 정수일 수 있습니다. SP_OPX_SQL_CACHE_DISABLE 매개변수가 0(활성화)으로 설정된 경우 Post에서만 사용됩니다.

16

target r.mydb queue q1 set resources commit_frequency=10000

target r.mydb queue q1 set resources max_active_statements=10

규칙 | 필터 카테고리

지원되는 타겟

Oracle 변경 내역 타겟

명령 옵션

target c.SID [queue queuename]

table tablename

{

set {rule | filter} { 'column_condition' | !filename }

reset {rule | filter}

show {rule | filter}

}

사용

특정 테이블에 추적 규칙이나 필터를 적용하는 조건문을 지정합니다. 업데이트 작업에 적용됩니다. 관심이 없는 데이터를 제외하면서 추적할 데이터를 타겟 테이블로 한정하는 조건부 논리를 적용합니다. 타겟 테이블당 하나의 규칙 또는 필터가 있을 수 있지만 중첩된 식을 괄호와 AND, OR 및 NOT 논리 연결과 결합하여 다양한 조건을 생성할 수 있습니다.

구문 요소 설명
규칙 | 필터
  • 규칙은 업데이트 작업이 column_condition과 일치하는 경우 경우에만 Post에 행을 삽입하도록 지시합니다. UPDATE가 컬럼 조건과 일치하지 않으면 행이 삭제됩니다.
  • 필터는 UPDATE가 column_condition과 일치하지 않는 경우에만 Post에 행을 삽입하도록 지시합니다. UPDATE가 컬럼 조건과 일치하면 행이 삭제됩니다.
table tablename 규칙 또는 필터를 설정 중인 타겟 테이블의 이름입니다.

column_condition

UPDATE 작업에서 충족해야 하는 조건부 논리입니다. column_condition은 전체 조건문을 나타내며 작은따옴표로 묶어야 합니다. 컬럼 조건은 각각 괄호로 묶인 다음과 같은 식 중 하나 또는 조합일 수 있습니다.

(column is changed)

(column is not changed)

([column1, column2, ...] matches change_list)

([column1, column2, ...] contains change_list)

 

여기서,

  • column은 타겟 컬럼의 이름입니다. 목록에서 컬럼 이름을 구분하려면 쉼표를 사용하고 목록을 대괄호로 묶습니다.
  • is changed는 지정된 컬럼이 업데이트 작업에서 변경되었음을 의미합니다.
  • is not changed는 지정된 컬럼이 업데이트 작업에서 변경되지 않았음을 의미합니다.
  • change_list 는 변경된 소스 컬럼의 논리적 표현입니다.
  • matches change_list는 조건이 변경 목록과 정확히 일치하는 경우에 충족됩니다(변경 목록보다 적은 컬럼 없음, 변경 목록보다 많은 컬럼 없음, 동일한 이름).
  • contains change_list는 조건이 변경 목록의 모든 컬럼을 포함하는 경우에 충족됩니다. 변경 목록은 조건 컬럼의 하위 집합일 수 있지만 변경 목록보다 많은 컬럼을 포함할 수는 없습니다. 이름이 동일해야 합니다.
!filename target 명령을 실행할 때 큰 컬럼 조건을 텍스트 파일에 저장한 다음, 전체 컬럼 조건 구문 대신 파일을 지정할 수 있습니다.

참고규칙/필터 기능에는 일괄 및 직접 로드 작업이 지원되지 않습니다.

다음 명령은 식을 결합하여 여러 규칙을 설정하는 방법에 대한 몇 가지 예를 보여줍니다.

target c.mySIDtable mytable set rule '(col3 is not changed) and (col5 is not changed)'

target c.mySIDtable mytable set rule '([col1, col3] matches change_list)'

target c.mySIDtable mytable set rule 'not ([col2, col5] contains change_list)'

 

다음 표에서는 규칙필터가 행을 포함하거나 삭제하는 다양한 방법을 보여줍니다.

규칙 업데이트된 컬럼 행 삽입 여부
rule = '(c2 is not changed)' c2 no
rule = '(c2 is not changed)' c3 yes
rule = '(c2 is changed)' c2 yes
rule = '(c2 is changed or c4 is changed)' c1 no
rule = '(c2 is changed or c4 is changed)' c1,c3,c5 no
rule = '(c2 is changed or c4 is changed)' c2 yes
rule = '(c2 is changed or c4 is changed)' c3,c4,c5 yes
rule = '([c3,c6,c7,c8] matches change_list)' c3,c6,c7,c8 yes
rule = '([c3,c6] matches change_list)' c3,c6,c7 no
rule = '([c3,c6,c7] contains change_list)' c3,c6 yes
rule = '([c3,c6] contains change_list)' c3,c8 no
     
필터 업데이트된 컬럼 행 삽입 여부
filter = '(c2 is not changed)' c2 yes
filter = '(c2 is not changed)' c3 no
filter = '(c3 is changed and c4 is changed)' c1 yes
filter = '(c3 is changed and c4 is changed)' c3,c4 no
filter = '(c3 is changed and c4 is changed)' c1,c2,c3 yes
filter = '([c3,c6,c7] matches change_list)' c3,c6 yes
filter = '([c3,c6,c7] matches change_list)' c3,c6,c7 no
filter = '([c3,c6] contains change_list)' c3,c6 no
filter = '([c3,c6,c7] contains change_list)' c3,c8 yes

소스 카테고리

지원되는 타겟

Oracle 변경 내역 타겟

명령 옵션

target c.SID [queue queuename]

{

set source sourceID |

reset source |

show source

}

사용

SHAREPLEX_SOURCE_ID 메타데이터 컬럼에 대한 사용자 정의 소스 식별자를 설정합니다. 타겟set metadata source 옵션과 함께 사용하여 이 컬럼을 채우도록 Post를 구성합니다. 단일 영숫자 문자열을 지정합니다.

다음은 여러 소스 데이터베이스의 데이터가 동일한 타겟 데이터베이스에 복제되는 구성을 지원하기 위해 set source를 사용하는 방법을 보여줍니다. 이 타겟 구성을 사용하면 각 Post 프로세스가 소스 데이터베이스에 따라 SHAREPLEX_SOURCE_ID 컬럼을 다른 소스 ID로 업데이트하여 타겟 데이터베이스의 데이터를 구별합니다. 이 예에서는 4개의 Post 프로세스를 사용합니다.

target c.target1 queue source718 set source east

target c.target1 queue source92 set source south

target c.target1 queue source101 set source west

target c.target1 queue source75 set source north

"source718" 큐의 Post 프로세스는 해당 스트림의 테이블에 대한 모든 삽입 또는 업데이트에 대해 SHAREPLEX_SOURCE_ID 컬럼을 "east" 값으로 업데이트합니다. "source92" 큐의 Post 프로세스는 다른 두 Post 프로세스에 대해서도 마찬가지로 SHAREPLEX_SOURCE_ID 컬럼을 "south" 값으로 업데이트합니다.

SQL 카테고리

지원되는 타겟

파일(format record=sql)

명령 옵션

target x.file [queue queuename]

{

set sql property=value |

reset sql [property] |

show sql

}

사용

formatrecord=sql일 때 SQL 출력의 속성을 설정합니다.

속성 입력 값 기본값

add_rownum={yes | no}

행 번호를 포함하려면 yes, 제외하려면 no

yes

begin_transaction={yes | no}

시작 트랜잭션 레코드를 포함하려면 yes, 제외하려면 no

no

comment=character

주석을 표시하는 문자

--

concatenate=character

문자열을 연결하는 문자

||

end_transaction={yes | no}

종료 트랜잭션 레코드를 포함하려면 yes, 제외하려면 no

no

legacy={yes | no}

SharePlex 8.6에서 필요합니다. 다음과 같은 레거시 SQL 날짜 및 타임스탬프 형식을 사용합니다.

MMDDYYYYHH24MISSMMDDYYYYHH24MISS.FFFFFF(yes/no)

no

name_delimiter=character

SID, 테이블, 소유자, 컬럼 이름을 구분하는 문자입니다. 이 값은 Post가 SQL_DELIMITER 설정에 대해 ODBC 드라이버를 쿼리할 때 반환되는 값을 재정의합니다.

없음

record_terminator=character

SQL을 종료하는 문자

;

target x.file set sql comment=#

trace capture

trace capture 명령을 사용하여 Capture 처리 및 성능 통계를 추적 파일로 출력할 수 있습니다.

Capture 추적에는 다음이 포함됩니다.

  • 추적 자체의 세부 정보
  • Capture가 전체 및 스레드별로 다양한 작업에 사용한 시간

사용

지원되는 소스: Oracle
지원되는 타겟: 전체
인증 수준: 운영자(2)
실행 대상: 소스 시스템
관련 명령: trace read, trace post

구문

기본 명령 명령 옵션 원격 옵션
trace capture

[minutes]

[for datasource]

[ on host |

on host:portnumber |

on login/password@host |

on login/password@host:portnumber ]

구문 설명
구성 요소 설명
minutes

추적을 실행할 시간(분)입니다. 기본값은 15분입니다.

for datasource Capture 추적을 실행할 데이터 소스입니다. 동일한 SharePlex 인스턴스에서 여러 Capture를 실행하는 경우에만 필요합니다. 사용하는 경우 minutes을 따라야 합니다.
원격 옵션

이러한 옵션을 사용하면 원격 시스템에서 명령을 실행하고 로그인 이름, 비밀번호, 포트 번호 또는 이러한 항목의 조합을 포함하는 명령을 스크립트할 수 있습니다.

옵션 설명
on host

원격 시스템(현재 sp_ctrl 세션이 실행 중인 시스템이 아닌 것)에서 명령을 실행합니다. 원격 시스템에 대한 로그인 자격 증명을 묻는 메시지가 표시됩니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.

예: sp_ctrl(sysB)>status on SysA

on host:portnumber

원격 로그인 및 포트 번호를 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.

예: sp_ctrl(sysB)>status on SysA:8304

on login/password@host

원격 로그인, 비밀번호 및 호스트 이름을 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.

예:sp_ctrl(sysB)>status on john/spot5489@SysA

on login/password@host:portnumber

원격 로그인, 비밀번호, 호스트 이름 및 포트 번호를 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.

예: sp_ctrl(sysB)>status on john/spot5489@SysA:8304

출력

추적이 완료되면 프로세스는 다음 형식으로 variable-data 디렉토리의 log 하위 디렉토리에 있는 파일에 추적 데이터를 기록합니다.

process_id_trace_time

예를 들면 다음과 같습니다.

orcl_ocap_trace_Sep30_15_24_2014

여기서, orcl은 데이터 소스이고 ocap은 Capture 프로세스의 이름입니다.

다음 명령은 1분 동안 데이터 소스 myora에 대한 추적을 실행합니다.

trace capture 1 for myora

이 명령은 다음과 유사한 추적 출력을 생성합니다.

 

trace post

trace post 명령을 사용하여 Post 처리 및 성능 통계를 추적 파일로 출력할 수 있습니다.

Post 추적에는 다음이 포함됩니다.

  • 추적 자체의 세부 정보
  • 트랜잭션 활동 통계
  • 작업 유형별 세부 통계

사용

지원되는 소스: Oracle
지원되는 타겟: 전체
인증 수준: 운영자(2)
실행 대상: 타겟 시스템
관련 명령: trace capture, trace read

구문

기본 명령 명령 옵션 원격 옵션
trace post

[minutes]

[for datasource-datadest]

[queue queuename]

[ on host |

on host:portnumber |

on login/password@host |

on login/password@host:portnumber ]

구문 설명
구성 요소 설명
minutes

추적을 실행할 시간(분)입니다. 기본값은 15분입니다.

for datasource-datadest

소스 및 타겟 데이터 저장소로 식별되는 특정 Post 프로세스로 추적을 제한합니다.

  • 동일한 SharePlex 인스턴스(다른 소스에서 복제)에서 여러 Post 프로세스를 실행하는 경우 또는 여러 타겟 데이터베이스에 대해 여러 Post 프로세스를 실행하는 경우에 필요합니다. 사용하는 경우 minutes을 따라야 합니다.
  • datasourceo.SID로 표시되며, 여기서 SID는 ORACLE_SID입니다.

  • datadest는 타겟에 따라 다음 중 하나로 표시됩니다.

    o.ORACLE_SID

    r.database_name

    x.kafka

    x.jms

    x.file

queue queuename

지정된 명명된 큐와 연결된 Post 프로세스에 대한 추적을 제한합니다.

원격 옵션

이러한 옵션을 사용하면 원격 시스템에서 명령을 실행하고 로그인 이름, 비밀번호, 포트 번호 또는 이러한 항목의 조합을 포함하는 명령을 스크립트할 수 있습니다.

옵션 설명
on host

원격 시스템(현재 sp_ctrl 세션이 실행 중인 시스템이 아닌 것)에서 명령을 실행합니다. 원격 시스템에 대한 로그인 자격 증명을 묻는 메시지가 표시됩니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.

예: sp_ctrl(sysB)>status on SysA

on host:portnumber

원격 로그인 및 포트 번호를 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.

예: sp_ctrl(sysB)>status on SysA:8304

on login/password@host

원격 로그인, 비밀번호 및 호스트 이름을 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.

예:sp_ctrl(sysB)>status on john/spot5489@SysA

on login/password@host:portnumber

원격 로그인, 비밀번호, 호스트 이름 및 포트 번호를 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.

예: sp_ctrl(sysB)>status on john/spot5489@SysA:8304

출력

추적이 완료되면 프로세스는 다음 형식으로 variable-data 디렉토리의 log 하위 디렉토리에 있는 파일에 추적 데이터를 기록합니다.

process_id_trace_time

예를 들면 다음과 같습니다.

orcl_orcl2_opo_trace_Feb_5_17_24_2014

여기서, orcl은 소스 데이터 소스이고 orcl2는 타겟 데이터 소스이며 opo는 Post 프로세스의 이름입니다.

다음 명령은 1분 동안 데이터 소스 myoramyora2에 대한 추적을 실행합니다.

trace post 1 for myora-myora2

이 명령은 다음과 유사한 추적 출력을 생성합니다.

 

The document was helpful.

평가 결과 선택

I easily found the information I needed.

평가 결과 선택