ADD EXTRACT

지원되는 Db2, HP NonStop, MySQL, Oracle, PostgreSQL, SQL Server, Sybase ASE 및 Yugabyte 데이터베이스에 적합합니다.

ADD EXTRACT를 사용하여 Extract라는 소스 데이터베이스 캡처 프로세스를 생성할 수 있습니다. Extract는 데이터베이스 공급업체에 따라 데이터베이스 로그나 다른 수단을 통해 현재 트랜잭션을 캡처하는 변경 데이터 Extract로 생성할 수도 있고, 데이터베이스 테이블에 존재하는 레코드를 캡처할 초기 로드 Extract로 생성할 수도 있습니다.

소스 데이터베이스당 하나의 변경 데이터 또는 하나의 초기 로드 Extract만 생성하는 것이 좋습니다. 단, 드문 경우지만 데이터베이스당 여러 Extract를 사용하면 캡처 처리량이 향상될 수 있습니다.

Oracle GoldenGate는 운영체제에서 사용 가능한 리소스에 따라 배치당 다수의 동시 Extract 및 Replicat 프로세스를 지원할 수 있습니다. 단, Extract 또는 Replicat 프로세스가 더 추가되면 시스템 리소스를 모니터링하고 배치당 총 프로세스 수를 300개 이하로 유지하는 것이 좋습니다.

참고:

구문

ADD EXTRACT extract-name
|             { SOURCEISTABLE |
|              [ INTEGRATED ] TRANLOG
|               {, BEGIN     [ NOW | yyyy-mm-ddThh:mm.ssZ | LSN value | EOL | EOF | EXTRBA archive-offset-number |  SCN  scn }
|               [, DESC        description    ]
|               [, CRITICAL    [ YES | NO ]     ]
|               [, ENCRYPTIONPROFILE     encryption-profile-name]
|               [, GTIDSET gtidset
|               [, PROFILE
|                 [ AUTOSTART   [ YES | NO ]
|                       [ DELAY     delay-number   ] ]
|                 [ AUTORESTART [ YES | NO ]
|                       [ RETRIES          retries-number ]
|                       [ WAITSECONDS      wait-number    ]
|                       [ RESETSECONDS     reset-number   ]
|                       [ DISABLEONFAILURE [ YES | NO ] ] ] ]
|               [ LOGNUM lognum]
|               [ LOGPOS logpos]

extract_name

Extract의 이름입니다. 최대 8자를 포함할 수 있습니다. 프로세스 및 파일에 대한 이름 선택을 참조하십시오.

SOURCEISTABLE

Oracle GoldenGate를 사용하여 초기 로드에 대해 지정된 테이블에서 전체 레코드를 추출하는 Extract 작업을 생성합니다. SOURCEISTABLE을 사용하는 경우 서비스 옵션을 지정하지 마십시오.

태스크 매개변수는 매개변수 파일에서 지정해야 합니다. Oracle GoldenGate Microservices Documentation의 Admin Client를 사용하여 초기 로드 추출 추가를 참조하십시오.

TRANLOG [bsds_name]

모든 데이터베이스에 이 옵션을 사용합니다. TRANLOG에는 BEGIN 옵션이 필요합니다.

(Db2 on z/OS) You can use the bsds_name option for Db2 on a z/OS system to specify the Bootstrap Data Set file name of the transaction log, though it is not required and is not used. 기존 TRANLOG 매개변수를 변경하지 않아도 됩니다.

(Oracle) Extract는 Oracle 리두 로그를 직접 읽습니다. 대체 구성은 INTEGRATED TRANLOG를 참조하십시오.

INTEGRATED TRANLOG

Oracle의 경우 적합합니다.

통합 캡처 모드로 Extract를 추가합니다. 이 모드에서 Extract는 LCR(논리적 변경 레코드)을 Extract로 직접 전달하는 데이터베이스 로그마이닝 서버와 통합됩니다. INTEGRATED TRANLOG를 사용하기 전에 REGISTER EXTRACT 명령을 사용합니다.

BEGIN {NOW yyyy-mm-ddthh:mm.ssZ}

데이터 소스에서 처리를 시작할 시간기록을 지정합니다.

주: Extract를 특정 시간 기록에 배치하기 전에 Extract를 등록해야 합니다.

EXTRBA archive-offset_number

Db2 z/OS의 경우 적합합니다.

데이터 캡처를 시작할 트랜잭션 로그 내 상대 바이트 주소를 지정합니다.

필요한 형식은 0Xnnn입니다. 여기서 nnn은 1~20자리 16진수입니다(첫번째 문자는 숫자 0이며 두번째 문자는 대문자 또는 소문자(x)일 수 있습니다).

EOL

Db2 for i, Db2 LUW, MySQL, PostgreSQL 및 SQL Server의 경우 적합합니다.

다음 레코드를 쓸 로그 파일(또는 저널)의 끝에서 시작하도록 처리를 구성합니다. 활성 트랜잭션은 캡처되지 않습니다.

Db2 LUW의 경우 로그 파일의 활성 LRI 값에서 시작하도록 처리를 구성합니다. 활성 LRI는 다음 레코드를 쓸 로그 파일의 끝에 있는 위치입니다. 활성 트랜잭션은 캡처되지 않습니다.

PostgreSQL의 경우 EOL별 위치에 DBLOGIN이 필요합니다.

MySQL의 경우 파일 끝에 해당하는 위치를 찾아 거기서 트랜잭션을 읽기 시작합니다. 데이터가 바이너리 로그에 지속적으로 기록되는 경우 EOL 위치가 정확하지 않습니다.

EOF

MySQL, Db2 z/OS, Db2 LUW, SQL Server, PostgreSQL, Oracle GoldenGate for DAA의 경우 적합합니다.

LSN value

Db2 z/OS, PostgreSQL 및 SQL Server의 경우 적합합니다.

데이터 캡처를 시작할 트랜잭션 LSN를 지정합니다. 이 옵션에 대한 별칭은 EXTLSN입니다. LSN에 배치는 정확합니다.

Db2 z/OS의 경우 LSN 값은 일련의 16진수 또는 일련의 10진수일 수 있습니다. 16진수 형식인 경우 0X 또는 0x 뒤에 1-20개의 16진수(0-9, a-g 또는 A-G)이 와야 합니다. 10진수 형식인 경우 접두어가 없으며 1-25개의 10진수 0-9가 있습니다.

PostgreSQL의 경우 LSN 값은 hi 또는 lo일 수 있습니다. 로그 파일의 시작점에 대해 값을 hi로 설정합니다. Lo는 로그 파일의 오프셋입니다. LSN 위치는 복제 슬롯 다시 시작 위치와 미리 쓰기 로그 현재 위치 사이에 있어야 합니다. 자체적으로 지정된 위치가 언급된 범위 사이에 존재하는 경우 Extract가 오류를 발생시킵니다.

SQL Server의 경우 LSN는 데이터 캡처를 시작할 트랜잭션 LSN을 지정합니다. 이 옵션에 대한 별칭은 EXTLSN입니다.

지정된 LSN은 cdc.lsn_time_mapping 시스템 테이블에서 발견된 적합한 tran_begin_lsn으로 존재해야 합니다. 그렇지 않으면 Extract가 제공된 LSN 필드 뒤에 배치하려고 시도합니다.

SQL Server에 대한 유효한 LSN 사양은 다음으로 구성됩니다.

다음과 같이 질의하여 사용 가능한 최소 LSN을 찾을 수 있습니다.

SELECT min([tran_begin_lsn]) FROM [cdc].[lsn_time_mapping] with (nolock) where tran_id <> 0x00

다음 예에서는 Db2 z/OS에 대한 LSN 값의 사용을 보여줍니다.

예제 1:

ADD EXTRACT extn TRANLOG, LSN 0xDEE40E4F27A3245400

예제 2:

ADD EXTRACT extn TRANLOG, LSN 22216433159121980904448

다음 예에서는 SQL Server에 대한 LSN 값을 보여줍니다.

ADD EXTRACT extn TRANLOG, LSN 0X00000d7e:0000036b:0001

LRI value

Db2 LUW의 경우 적합합니다. Extract 시작 시 트랜잭션 로그에서 시작점을 지정합니다.

Db2 LUW 시스템에 대해 LRI 옵션을 사용하여 추출이 트랜잭션 로그에서 레코드 캡처를 시작할 수 있는 LRI를 지정할 수 없습니다. Db2 유틸리티 db2logsForRfwd를 사용하여 LRI를 얻을 수 있습니다. 이 유틸리티는 Db2 로그에 있는 LRI 범위를 제공합니다.

Extract가 제공된 LRI에 배치될 수 있지만 LRI는 Extract가 처리할 첫번째 항목이 아닐 수도 있습니다. 로그 파일의 다양한 레코드 유형(예: Db2 내부 로그 레코드)이 Extract에서 무시됩니다. Extract는 실제 시작 LRI를 Extract 보고서 파일에 보고합니다.

LOGNUM lognum

MySQL의 경우 적합합니다.

로그 파일 번호입니다. LOGNUM 값에 값을 선행하는 0이 포함되는 경우 ADD EXTRACT가 실패합니다. 예를 들어, ADD EXTRACT ext1, TRANLOG, LOGNUM 000001, LOGPOS 0은 실패합니다. 대신, 이 예에서 성공하려면 LOGNUM을 1로 설정하십시오.

LOGPOS logpos

이는 특정 트랜잭션 레코드를 식별하는 로그 파일 내 이벤트 오프셋 값입니다. 이벤트 오프셋 값은 로그 레코드의 헤더 섹션에 저장됩니다. binlog 파일의 시작 부분에 배치하려면 LOGPOS를 0로 설정합니다.

SEQNO sequence_number

Db2 for i의 경우 적합합니다. 최대 20자리 길이의 10진수인 시스템 시퀀스 번호 또는 바로 뒤에서 캡처를 시작합니다.

SCN value

Oracle의 경우 적합합니다.

지정된 Oracle SCN(시스템 변경 번호)이 있는 리두 로그의 트랜잭션에서 Extract를 시작합니다. 통합 모드의 Extract의 경우 SCN 값은 Extract가 데이터베이스에 등록된 SCN보다 커야 합니다. 자세한 내용은 REGISTER EXTRACT을 참조하십시오.

PARAMS file_name

Oracle GoldenGate 디렉토리 내 기본 위치인 dirprm 이외의 다른 위치에서 Extract 매개변수 파일의 전체 경로 이름을 지정합니다.

REPORT file_name

Oracle GoldenGate 디렉토리 내 기본 위치인 dirrpt 이외의 다른 위치에서 Extract 보고서 파일의 전체 경로 이름을 지정합니다.

DESC ‘description’

그룹에 대한 설명(예: 'Extracts account_tab on Serv1')을 지정합니다. 설명을 작은 따옴표로 묶습니다.

ENCRYPTIONPROFILE

특정 클라이언트와 연관된 Oracle GoldenGate 암호화 프로파일의 이름을 지정합니다.

GTIDSET gtidset

MySQL의 경우 적합합니다.

MySQL의 GTID 기반 캡처를 위한 GTID 집합으로 위치 유형을 사용하여 Extract의 초기 배치를 지정합니다. GTID에 대해 지원되는 MySQL 소스는 MySQL Server 8.0 이상입니다. 최대 지원되는 GTID 집합 크기는 64KB입니다.

구문:

ADD EXTRACT extract_name, TRANLOG, GTIDSET gtidset

CRITICAL

프로세스가 배치에 중요한지 나타냅니다.

PROFILE

자동 시작 프로파일의 이름입니다.

AUTOSTART

관리 서비스가 시작될 때 자동으로 관리되는 프로세스가 시작되도록 할지 여부를 지정합니다. 기본값은 YES입니다.

DELAY

프로세스를 시작하기 전 대기 시간(초)입니다.

AUTORESTART

프로세스가 종료된 경우 재시작 방법을 제어합니다.

RETRIES

재시도 작업을 취소하기 전 작업을 재시작할 최대 시도 횟수입니다. 이 속성은 선택사항입니다.

WAITSECONDS

재시작이 계산되는 기간(초)입니다.

RESETSECONDS

재시도가 계산되는 기간을 재설정합니다.

DISABLEONFAILURE

TRUE로 설정할 경우 재시도 횟수가 모두 사용되면 작업이 사용 안함으로 설정됩니다.

SOCKSPROXY {host_name IP_address}[:port] [PROXYCSALIAS credential_store_alias [PROXYCSDOMAIN credential_store_domain]

별칭 Extract에 사용합니다. 프록시 서버의 DNS 호스트 이름 또는 IP 주소를 지정합니다. DNS 서버에 연결할 수 없을 경우 IP 주소를 사용해야 하지만 호스트를 정의하는 데는 둘 중 하나를 사용할 수 있습니다. IP 주소를 사용 중인 경우 대상 시스템의 스택에 따라 IPv6 또는 IPv4 매핑된 주소를 사용합니다. PROXYCSALIAS를 지정해야 합니다. 또한 사용할 포트와 인증서 저장소 도메인을 지정할 수 있습니다.

예제


다음 예에서는 트랜잭션 로그에서 데이터베이스 변경사항을 캡처하는 이름이 exte인 Extract 그룹을 생성합니다. 추출은 ADD EXTRACT로 Extract 그룹이 생성 및 시작될 때 생성된 레코드부터 시작합니다.

ADD EXTRACT extn, TRANLOG, BEGIN NOW

다음 예에서는 Extract를 특정 시간기록에 배치하여 트랜잭션 로그에서 데이터베이스 변경사항을 가져올 Extract 그룹 이름 extw가 생성됩니다.

ADD EXTRACT extn, TRANLOG, BEGIN NOW
REGISTER EXTRACT extn DATABASE
ALTER EXTRACT extn BEGIN 2020-08-02T06:05:30.000Z

다음은 통합 Extract 그룹을 생성합니다.

ADD EXTRACT extn, INTEGRATED TRANLOG, BEGIN NOW

다음은 이름이 extei인 초기 로드 Extract를 생성합니다.

ADD EXTRACT extn, SOURCEISTABLE

다음 예에는 적합한 형식의 GTID 집합 조합이 모두 포함됩니다.

예제 1:

ADD EXTRACT exte, TRANLOG, GTIDSET "E11FA47-71CA-11E1-9E33-C80AA9429562:4"

예제 2:

ADD EXTRACT exts, TRANLOG, GTIDSET "3E11FA47-71CA-11E1-9E33-C80AA9429562:1-10"

예제 3:

ADD EXTRACT extn, TRANLOG, GTIDSET "3E11FA47-71CA-11E1-9E33-C80AA9429562:1-3:11:47-49"

예제 4:

ADD EXTRACT extw, TRANLOG, GTIDSET "2174B383-5441-11E8-B90A-C80AA9429562:1-3,24DA167-0C0C-11E8-8442-00059A3C7B00:1-19"

주: 예 4와 같이 GTID 세트에 REST API 요청을 형성하기 위해 다중 UUID가 포함된 경우 이 GTID 세트는 쉼표 구분 기호를 사용하여 다중 GTID 세트로 나뉩니다.


다음 예에서는 리두 로그의 특정 Oracle SCN(시스템 변경 번호)에서 Extract를 생성 및 배치합니다.

ADD EXTRACT extn TRANLOG SCN 123456
ADD EXTRACT extn INTEGRATED TRANLOG SCN 123456

다음 예에서는 Db2 LUW 시스템에서 Extract를 생성합니다.

ADD EXTRACT extn, TRANLOG LRI 8066.322711

다음 예에서는 관리 클라이언트를 사용하여 자동 시작 옵션으로 Extract를 생성합니다.

ADD EXTRACT extn, TRANLOG , BEGIN NOW , AUTOSTART yes