ALTER EXTRACT
다음 용도로 ALTER EXTRACT를 사용하십시오.
-
ADD EXTRACT명령으로 생성된 Extract 그룹의 속성을 변경합니다. -
시퀀스에서 다음 파일로 추적을 증분합니다.
-
통합 캡처 구성으로 업그레이드합니다.
-
통합 캡처 구성에서 다운그레이드합니다.
-
특정 저널 시퀀스 번호에서 제공된 Db2 for i 저널을 배치합니다.
이 명령을 사용하기 전에 STOP EXTRACT group_name 명령으로 Extract을 정지합니다.
구문
ALTER EXTRACT group-name
[, BEGIN {NOW | yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]} |
| [, EXTRBA archive-offset-number]
| [, ADD_EXTRACT_attribute | SCN value]
| [, LSN
| [, EOL
| [, DESC
| [ CRITICAL [ YES | NO ] ]
| [ ENCRYPTIONPROFILE encryption-profile-name]
| [ 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을 배치할수 있도록 Db2용으로 다음 ALTER EXTRACT 옵션이 지원됩니다.
ALTER EXTRACT {BEGIN {NOW | yyyy-mm-ddT[ hh:mi:[ss[.cccccc]]Z]}
[JOURNAL journal_library/journal_name [JRNRCV receiver_library/
receiver_name]] |
, EOL [JOURNAL journal_library/journal_name
[JRNRCV receiver_library/receiver_name]] |
, SEQNO sequence_number [JOURNAL journal_library/journal_name
[JRNRCV receiver_library/receiver_name]]}
BEGIN {NOW | yyyy-mm-ddT[ hh:mi:[ss[.cccccc]]]Z} [JOURNAL journal_library/journal_name [JRNRCV receiver_library/ receiver_name]] | , EOL [JOURNAL journal_library/journal_name [JRNRCV receiver_library/receiver_name]] | , SEQNO sequence_number [JOURNAL journal_library/journal_name [JRNRCV receiver_library/receiver_name]]
해당 IBM for i 옵션은 전역 시작점이 ADD EXTRACT로 실행된 후 저널 관련 Extract 배치를 허용합니다. ALTER EXTRACT로 설정된 특정 저널 위치는 이전에 ADD EXTRACT 또는 ALTER EXTRACT로 설정된 전역 위치에 영향을 끼우지 않습니다. 단, ALTER EXTRACT로 설정된 전역 포지션은 동일한 Extract 구성에서 이전에 설정된 특정 저널 위치를 무효화합니다.
주: SEQNO - `ALTER'에서 분개와 함께 사용되는 경우
EXTRACT`, is the journal sequence number that is relative to that specific journal, not the system sequence number that is global across journals.
{: .infoboxnote}
group-name
변경될 Extract 그룹 이름입니다.
{BEGIN {NOW |
Tyyyy-mm-dd[ hh:mi:[ss[.cccccc]]]Z} |
NOW
Db2 LUW를 제외한 모든 데이터베이스의 경우 NOW는 ALTER EXTRACT 명령이 실행된 시간을 지정합니다.
NOW는 ALTER EXTRACT 명령이 실행된 시간을 지정합니다.
Db2 LUW의 경우 커밋 및 종료 트랜잭션 레코드만 시간기록을 포함하므로 Extract 시작 위치는 해당 시간기록을 기준으로만 계산될 수 있습니다. 이는 Oracle GoldenGate가 사용하는 API의 제한사항입니다. 시간기록별 배치는 정확하지 않으며 오래 걸릴 수도 있으므로 유의해야 합니다. 가능한 경우 항상 LRI 또는 EOL 옵션을 사용하는 것이 좋습니다.
YYYY-MM-DDThh:mm:ssZ
제공된 형식의 날짜 및 시간(시간기록)입니다. 예를 들어, 2017-07-14T14:54:45Z입니다.
yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]
제공된 형식의 날짜 및 시간(시간기록)입니다. 통합 모드의 Oracle Extract의 경우 시간기록 값은 Extract가 데이터베이스에 등록된 시간기록보다 커야 합니다.
SQL Server 트랜잭션 로그의 시간기록별 배치는 SQL Server의 다음 특성으로 인해 영향을 받습니다.
-
SQL Server 트랜잭션 로그에 기록된 시간기록은 3.3333ms(마이크로초) 단위를 사용합니다. 이 레벨의 단위를 사용하면 트랜잭션이 동일한 3.3333ms 시간 간격으로 시작된 경우 두 트랜잭션 간 시간별 배치가 허용되지 않을 수 있습니다.
-
시간기록은 모든 SQL Server 로그 레코드에 기록되는 것이 아니라 트랜잭션을 시작 및 커밋하는 레코드와 데이터를 포함하지 않는 일부 레코드에만 기록됩니다.
-
SQL Server 시간기록은 시스템 시계에서 제공되는 것이 아니라 사용 중인 개별 프로세서와 관련된 내부 시계에서 제공됩니다. 이 시계는 1초에 여러 번 업데이트되지만 업데이트 사이에 시스템 시계와의 동기화가 수행되지 않을 수 있습니다. 이로 인해 시간별 배치의 정확도가 낮아집니다.
-
로그 백업 파일에 대해 기록된 시간기록은 백업 내 기록된 시간과 정확히 일치하지 않을 수 있습니다. 단, 이 부정확도는 1초 미만입니다.
LSN에 배치는 정확합니다.
PostgreSQL의 시간기록별 배치에는 다음 시나리오가 포함됩니다.
-
시나리오 1
track_commit_timestamp가off인 경우 사용된 배치 방법에 관계없이 Extract 프로세스가 시작될 때 다음 출력이 표시됩니다.2020-04-29 02:15:54 INFO OGG-01517 Position of first record processed LSN: 0/2222C20, Jan 1, 1970 12:00:00 PM. -
시나리오 2
Extract가 등록되기 전
track_commit_timestamp가 사용으로 설정된 경우 다음 예에서와 같이 레코드가 소스 데이터베이스에서 푸시된 다음 올바른 시간기록이 표시됩니다.2020-04-29 02:19:07 INFO OGG-01515 Positioning to begin time Apr 29,2020 2:18:38 AM. -
시나리오 3
Extract가 등록된 후
track_commit_timestamp가 사용으로 설정된 경우 커밋 시간기록이 연관된transaction ID로 구축되지 않은 로그에서 오래된 레코드가 사용될 수 있습니다. 이 경우 Extract가 시간기록을 가져오지 않으면 시나리오 1에 언급된 기본 시간기록을 사용하여 폴백합니다. 출력은 다음과 비슷합니다.020-04-29 01:55:07 INFO OGG-01517 Position of first record processed LSN: 0/221D028, Jan 1, 1970 12:00:00 PM. -
복제 슬롯이 이동된 경우 과거 시간기록을 지정할 수 없습니다.
START
PostgreSQL의 경우 적합합니다.
BEGIN NOW 또는 LSN을 언급하지 않고 Extract을 추가합니다. Extract가 복제 슬롯 재시작 위치에서 자동으로 시작합니다.
ADD_EXTRACT_attribute
다음을 제외하고 ALTER EXTRACT 명령으로 지정된 속성을 변경할 수 있습니다.
-
EXTTRAILSOURCE옵션으로 지정된 Extract 변경 -
THREADS옵션으로 지정된 RAC 스레드 수 변경
해당 예외사항의 경우 Extract 그룹을 삭제한 후 다시 추가합니다.
BEGIN 옵션을 사용하는 경우 명령문에서 다른 옵션을 결합하지 마십시오. 다음과 같이 별도의 명령문을 실행합니다.
ALTER EXTRACT exte, BEGIN 2019-01-01
ALTER EXTRACT exte, ETROLLOVER
ALTER EXTRACT exte, SCN 789000
통합 Extract에 SCN 또는 BEGIN 옵션을 사용하는 경우 DBLOGIN이 필요하며 지정된 SCN 또는 시간기록 값이 아웃바운드 서버의 첫번째 SCN 또는 시간기록보다 작을 수 없습니다. 아웃바운드 서버의 첫번째 SCN을 찾으려면 다음 명령을 실행합니다.
INFO EXTRACT group_name, SHOWCH DETAIL
다음 예에서와 같이 첫번째 SCN 값이 나열됩니다.
Integrated Extract outbound server first scn: 0.665884 (665884)
EXTRBA 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 위치가 정확하지 않습니다.
TRANLOG LRI LRI_number
(Db2 LUW) Db2 LUW 시스템에 대해 이 옵션을 사용하여 체크포인트 트랜잭션 로그에 대한 LRI 레코드 값을 지정할 수 있습니다.
PostgreSQL의 경우 EOL별 위치에 DBLOGIN이 필요합니다.
REPORT file_name
Oracle GoldenGate 디렉토리 내 기본 위치인 dirrpt 이외의 다른 위치에서 Extract 보고서 파일의 전체 경로 이름을 지정합니다.
SCN value
Oracle의 경우 적합합니다.
지정된 Oracle SCN(시스템 변경 번호)이 있는 리두 로그의 트랜잭션에서 Extract를 시작합니다. Extract의 경우 SCN 값은 Extract가 데이터베이스에 등록된 SCN보다 커야 합니다. SCN 또는 BEGIN 옵션의 경우 DBLOGIN이 필요하며 지정된 SCN 또는 시간기록 값은 아웃바운드 서버의 첫번째 SCN 또는 시간기록 보다 작을 수 없습니다.
LSN value
Db2 z/OS, PostgreSQL 및 SQL Server의 경우 적합합니다.
데이터 캡처를 시작할 트랜잭션 LSN를 지정합니다. 이 옵션에 대한 별칭은 EXTLSN입니다.
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 사양은 다음으로 구성됩니다.
-
0X00000d7e:0000036b:0001에서와 같이 선행 0과 0X 접두어로 채워진 콜론으로 구분된 16진수 문자열(8:8:4)
-
0Xd7e:36b:1에서와 같이 0X 접두어가 있고 선행 0이 없는 콜론으로 구분된 16진수 문자열
다음과 같이 질의하여 사용 가능한 최소 LSN을 찾을 수 있습니다.
SELECT min([tran_begin_lsn]) FROM [cdc].[lsn_time_mapping] with (nolock) where tran_id <> 0x00
다음 예에서는 Db2 z/OS에 대한 LSN 값의 사용을 보여줍니다.
예제 1:
ALTER EXTRACT extn TRANLOG, LSN 0xDEE40E4F27A3245400
예제 2:
ALTER EXTRACT extn TRANLOG, LSN 22216433159121980904448
다음 예에서는 SQL Server에 대한 LSN 값을 보여줍니다.
ALTER EXTRACT extn TRANLOG, LSN 0X00000d7e:0000036b:0001
LOGNUM
MySQL의 경우 적합합니다.
로그 파일 번호입니다. 예를 들어, 필수 로그 파일 이름이 test.000034인 경우 LOGNUM 값은 34입니다. Extract는 이 로그 파일을 검색합니다. 참고: 마이크로 서비스 아키텍처에서는 LOGNUM 값에 값을 선행하는 0이 포함되는 경우 ALTER EXTRACT가 실패합니다. 예를 들어, ALTER EXTRACT ext1, TRANLOG, LOGNUM 000001, LOGPOS 0은 실패합니다. 대신, 이 예에서 성공하려면 LOGNUM을 1로 설정하십시오.
LOGPOS
MySQL의 경우 적합합니다.
이는 특정 트랜잭션 레코드를 식별하는 로그 파일 내 이벤트 오프셋 값입니다. 이벤트 오프셋 값은 로그 레코드의 헤더 섹션에 저장됩니다. binlog 파일의 시작 부분에 배치하려면 LOGPOS를 0로 설정합니다.
ETROLLOVER
기본 Extract에 대한 추적 파일을 재배치하고 재생성해야 하는 수동 복구 상황과 이전 버전에서 Oracle GoldenGate를 업그레이드할 때 사용합니다.
재시작 시 Extract가 추적 파일의 새 구체화를 생성하도록 하고 추적 시퀀스의 다음 파일로 증분되므로 읽기 장치(예: 펌프 또는 Replicat)를 새 추적 시퀀스 번호로 수동으로 재배치해야 합니다.
ETROLLOVER가 있을 경우 Extract은 이미 캡처되어 트레일에 기록되었는지 여부에 관계없이 Extract가 시작되고 있는 지정된 SCN 이후의 모든 레코드를 캡처합니다. ETROLLOVER가 없을 경우 Extract은 이미 캡처되어 트레일에 기록된 모든 레코드의 캡처를 건너뜁니다.
19c부터 분배 서비스 처리 중 다음 동작이 발생합니다.
-
소스 배치의 기본 Extract가 대상 트레일 파일
ETROLLOVER로 업그레이드된 경우 theDistribution 서비스가 자동으로 소스 추적 파일ETROLLOVER을 감지하고 다음 입력 트레일 파일에서 읽기를 시작합니다.. 이는 데이터 펌프ALTER EXTRACT groupname EXTSEQNO seqno+1 EXTRBA 0과 동일한 명령입니다. -
분배 서비스를 업그레이드한 후 재시작 시 출력 트레일 파일에 대해
ETROLLOVER를 자동으로 수행하고 다음 트레일 파일을 올바르게 씁니다. 이는 데이터 펌프ALTER EXTRACT groupname ETROLLOVER와 동일합니다.
DESC ‘description’
그룹에 대한 설명(예: 'Extracts account_tab on Serv1')을 지정합니다. 설명을 작은 따옴표로 묶습니다. 간략한 키워드 DESC 또는 전체 단어 DESCRIPTION을 사용할 수 있습니다.
ENCRYPTIONPROFILE
Extract에 대한 암호화 프로파일의 이름을 지정합니다. 이 이름은 대/소문자를 구분합니다. 따라서 ADD EXTRACT로 입력한 것과 정확히 같은 이름을 사용해야 합니다.
GTIDSET gtidset
MySQL의 경우 적합합니다.
MySQL의 GTID 기반 캡처를 위한 GTID 집합 옵션을 배치하는 위치 유형 옵션을 사용하여 Extract의 초기 배치를 지정합니다. GTID 집합의 지원되는 MySQL 소스는 MySQL Server 8.0, MySQL Server 5.7, MDS(MySQL Database Service)입니다. 최대 지원되는 GTID 집합 크기는 64KB입니다.
구문:
ALTER EXTRACT extract_name, TRANLOG, GTIDSET gtidset
다음 예에는 적합한 형식의 GTID 집합 조합이 모두 포함됩니다.
예제 1:
ALTER EXTRACT exte, TRANLOG, GTIDSET "E11FA47-71CA-11E1-9E33-C80AA9429562:4"
예제 2:
ALTER EXTRACT exts, TRANLOG, GTIDSET "3E11FA47-71CA-11E1-9E33-C80AA9429562:1-10"
예제 3:
ALTER EXTRACT extn, TRANLOG, GTIDSET "3E11FA47-71CA-11E1-9E33-C80AA9429562:1-3:11:47-49"
예제 4:
ALTER 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 세트로 나뉩니다.
CRITICAL
프로세스가 배치에 중요한지 나타냅니다.
PROFILE
자동 시작 프로파일의 이름입니다. 이 이름은 대/소문자를 구분합니다. 따라서 ALTER EXTRACT로 입력한 것과 정확히 같은 이름을 사용해야 합니다.
AUTOSTART
관리 서비스가 시작될 때 자동으로 관리되는 프로세스가 시작되도록 할지 여부를 지정합니다. 기본값은 YES입니다.
RETRIES
재시도 작업을 취소하기 전 작업을 재시작할 최대 시도 횟수입니다. 이 속성은 선택사항입니다.
WAITSECONDS
재시작이 계산되는 기간(초)입니다.
RESETSECONDS
재시도가 계산되는 기간을 재설정합니다.
DISABLEONFAILURE
TRUE로 설정할 경우 재시도 횟수가 모두 사용되면 작업이 사용 안함으로 설정됩니다.
INFO EXTRACT group-name, SHOWCH DETAIL
다음 예에서와 같이 첫번째 SCN 값이 나열됩니다.
Integrated Extract outbound server first scn: 0.665884 (665884)
예제
다음은 2019년 1월 1일부터 데이터 처리를 시작하도록 Extract를 변경합니다.
ALTER EXTRACT exte, BEGIN 2019-01-01
다음은 추적의 특정 위치에서 처리를 시작하도록 Extract를 변경합니다.
ALTER EXTRACT exte, EXTSEQNO 26, EXTRBA 338
다음은 특정 LSN에서 시작하도록 SQL Server 환경의 Extract를 변경합니다.
ALTER EXTRACT exte, LSN 0Xd7e:36b:1
다음은 추적 시퀀스의 다음 파일로 증분하도록 Extract를 변경합니다.
ALTER EXTRACT exte, ETROLLOVER
다음은 통합 캡처로 업그레이드하도록 Extract를 변경합니다.
ALTER EXTRACT exte, UPGRADE INTEGRATED TRANLOG
다음 명령은 ETROLLOVER를 사용해서 역방향 SCN 778899로 중복 레코드 필터링을 방지 합니다.
ALTER EXTRACT exte, SCN 778899
ALTER EXTRACT exte ETROLLOVER
START EXTRACT exte
ETROLLOVER를 사용하지 않는 경우 Extract를 이전 SCN 값으로 변경하면 중복 레코드가 처리되지 않습니다. 중복 레코드를 필터링하도록 Extract를 변경하는 명령은 다음과 같습니다.
ALTER EXTRACT exte, SCN 778899
START EXTRACT exte
다음은 IBM 용 i 저널 시작점에 대한 ALTER EXTRACT를 보여줍니다.
ALTER EXTRACT exte, SEQNO 1234 JOURNAL accts/acctsjrn
다음은 IBM의 i 저널 및 수신기 시작점에 대한 ALTER EXTRACT를 보여줍니다.
ALTER EXTRACT exte, SEQNO 1234 JOURNAL accts/acctsjrn JRNRCV accts/jrnrcv0005
다음 예에서는 Db2 LUW 시스템에서 Extract를 변경합니다.
ALTER EXTRACT exte, TRANLOG LRI 8066.322711
다음 예에서는 PostgreSQL에서 사용되는 ALTER EXTRACT 옵션을 보여줍니다.
ALTER EXTRACT exte, EOL
ALTER EXTRACT POSTEXT, LSN 0/156784
ALTER EXTRACT POSTEXT, BEGIN 2022-02-18T14:50:43.4230Z