ADD SCHEMATRANDATA
Oracle의 경우 적합합니다.
ADD SCHEMATRANDATA를 사용하여 테이블에 대한 스키마 레벨 보완 로깅을 사용으로 설정합니다. ADD SCHEMATRANDATA는 Oracle GoldenGate가 행 식별에 필요로 하는 사용 가능한 대집합이 자동으로 기록되도록 제공된 스키마의 모든 현재 및 미래 테이블에 적용됩니다.
주: Oracle GoldenGate 23.6은 JSON 관계형 이중성 뷰(JSON DV) 및 JSON 모음 테이블(JCT)에 대한 스키마 레벨에서 논리적 복제를 사용으로 설정하는 기능을 지원하지 않습니다.
다중 테넌트의 PDB 내 스키마에 대해 ADD SCHEMATRANDATA를 수행하려면 PDB에 로그인하여 명령을 실행해야 합니다.
ADD SCHEMATRANDATA는 Extract에 적합하며 다음을 수행합니다.
-
CREATE TABLE로 생성된 새 테이블에 대해 Oracle 보완 로깅을 사용으로 설정합니다. -
ALTER TABLE로 영향을 받는 테이블에 대한 보완 로깅을 업데이트하여 열을 추가하거나 삭제합니다. -
이름이 바뀐 테이블에 대한 보완 로깅을 업데이트합니다.
-
고유 또는 기본 키가 추가되거나 삭제된 테이블에 대한 보완 로깅을 업데이트합니다.
-
auto-capture에 대해 테이블을 사용으로 설정합니다. 해당 명령은 스키마 레벨 PK, UI, FK, ALLKEYS 보완 로깅 데이터를 추가합니다.
기본적으로 ADD SCHEMATRANDATA는 다음 우선순위 순서대로 테이블의 키 열을 기록합니다.
-
기본 키
-
기본 키 없이 테이블의 모든 고유 키(사용 안함으로 설정되거나 사용할 수 없거나 숨겨진 키 포함). ADT 멤버 열을 포함하는 고유 키도 기록됩니다. 가상 열(함수 기반 인덱스)의 고유 키만 기록되지 않습니다.
-
위 두 가지가 존재하지 않을 경우 테이블의 모든 스칼라 열이 기록됩니다. (시스템 생성 행 OID가 항상 기록됩니다.)
또한 ADD SCHEMATRANDATA는 통합 Replicat를 사용하기 위한 조건부 또는 무조건부 로깅 요구사항을 지원합니다.
다음과 같은 경우 ADD SCHEMATRANDATA를 사용합니다.
-
모든 테이블이 통합 캡처에 대해 구성할 Extract 그룹에 속합니다.
ADD SCHEMATRANDATA는 모든 키를 기록하여 올바른 키가 기록되도록 합니다. -
모든 소스 테이블이 통합 Replicat 그룹에서 처리됩니다. 다른 적용 서버를 통해 처리되는 관계형 테이블 간의 종속성 계산을 지원하기 위해 기본, 고유 및 외래 키의 로깅을 사용으로 설정하는 옵션이 제공됩니다.
-
DDL 복제가 활성화되고 DML이 새 테이블을 생성하거나 키 열을 변경하는 DDL과 동시에 발생합니다. DDL이 실행된 후 곧바로 DML을 객체에 적용할 수 있는 시나리오를 가장 잘 처리합니다.
ADD SCHEMATRANDATA을 사용하면 적절한 키 값이 각 DDL 작업과 함께 리두 로그에 원자적으로 기록되어 Extract 처리에서 지연이 발생하더라도 로그에서 캡처될 때 DML에 대한 메타데이터 연속성이 유지됩니다.
UsingADD SCHEMATRANDATA에 대한 데이터베이스 레벨 로깅 요구 사항
Oracle은 소스 데이터베이스를 강제 로깅 모드로 전환하고 Oracle GoldenGate를 사용할 때 데이터베이스 레벨에서 최소 보완 로깅을 사용으로 설정할 것을 강력히 권장합니다. 그러면 행 체인화 정보(존재하는 경우)가 업데이트 작업을 위해 리두 로그에 추가됩니다.
UsingADD SCHEMATRANDATA에 대한 추가 고려 사항
-
ADD SCHEMATRANDATA를 사용하기 전에DBLOGIN명령을 실행합니다. 명령을 실행하는 사용자에게 Oracle Streams 관리자 권한이 부여되어야 합니다.EXEC DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE('*GGADMIN*') -
DDL 복제가 사용으로 설정되지 않은 경우
ADD TRANDATA명령 대신ADD SCHEMATRANDATA를 사용할 수 있습니다. 단, 테이블에 기본 키가 없지만 고유 키가 여러 개 있을 경우ADD SCHEMATRANDATA를 사용하면 데이터베이스가 모든 고유 키를 기록합니다. 이 경우ADD SCHEMATRANDATA로 인해 데이터베이스는ADD TRANDATA보다 많은 리두 데이터를 기록합니다. 추가 로깅이 발생하지 않도록 하려면 가능한 경우 고유 키 중 하나를 기본 키로 지정합니다. -
기본 키가 있거나 단일 고유 키가 있거나 키가 없는 테이블의 경우
ADD SCHEMATRANDATA는ADD TRANDATA에 비해 추가 로깅 오버헤드를 발생하지 않습니다. -
PDB의 스키마에서
SCHEMATRANDATA를 추가하는 경우DBLOGIN에서 해당 PDB에 로그인해야 합니다. 예를 들어,PDBEAST및HR스키마의 경우 다음 명령을 사용합니다.ADD SCHEMATRANDATA pdbeast.hr -
Oracle GoldenGate용으로 특정 테이블(또는 다중 테이블)의 추가 비키 열(예:
TABLE및MAP매개변수의FILTER문과KEYCOLS절에 필요한 열 )을 기록해야 하는 경우 해당 열에 대해ADD TRANDATA명령을 실행합니다. 해당 명령은 열에 대한 테이블 레벨 보완 로깅을 실행할COLS옵션을 가지며ADD SCHEMATRANDATA와 함께 사용할 수 있습니다.
구문
ADD SCHEMATRANDATA schema
{
[ALLOWNONVALIDATEDKEYS]
[NOSCHEDULINGCOLS | ALLCOLS]}
[NOVALIDATE]
[PARTIALJSON]
[PREPARECSN {WAIT | LOCK | NOWAIT | NONE}]
schema
보완 키 정보가 기록될 스키마입니다. 와일드 카드 문자를 사용하지 마십시오. 다중 테넌트 컨테이너 데이터베이스의 플러그인할 수 있는 데이터베이스 두 개 이상에 있는 스키마에 대해 ADD SCHEMATRANDATA를 실행하려는 경우 DBLOGIN과 별도로 각 플러그인할 수 있는 데이터베이스에 로그인한 후 ADD SCHEMATRANDATA를 실행합니다. 루트 컨테이너의 컨테이너 접두어 ADD SCHEMATRANDATA [pdb_name].schema를 사용하여 schematrandata를 추가할 수 있습니다.
cdb$root에서 명령을 실행하는 경우 데이터베이스 측에서 다음 사용자 권한도 설정해야 합니다.
ALTER USER userID SET CONTAINER_DATA = ALL CONTAINER = CURRENT;
ALLOWNONVALIDATEDKEYS
보완 로깅에 NON VALIDATED 및 NOT VALID 기본 키를 포함합니다. 해당 키는 Oracle GoldenGate에 사용되는 일반적인 키 선택 조건을 무효화합니다. GLOBALS 매개변수 ALLOWNONVALIDATEDKEYS가 사용되는 경우 지정 여부에 관계없이 ADD SCHEMATRANDATA와 함께 ALLOWNONVALIDATEDKEYS가 실행됩니다. 기본적으로 NON VALIDATED 및 NOT VALID 기본 키는 기록되지 않으므로 GLOBALS ALLOWNONVALIDATEDKEYS 매개변수를 참조하십시오.
NOSCHEDULINGCOLS | ALLCOLS
해당 옵션은 Oracle 대상 데이터베이스에 대한 보완 로깅을 제어합니다. 두번째 옵션이 사용되지만 해당 옵션을 함께 사용할 수 있습니다. 예를 들어, ADD SCHEMATRANDATA oggadm_ext ALLCOL NOSCHEDULINGCOLS 명령에서 NOSCHEDULINGCOLS 옵션이 사용됩니다.
NOSCHEDULINGCOLS
일정 잡기 열의 로깅을 사용 안함으로 설정합니다. 기본적으로 ADD SCHEMATRANDATA는 기본 키의 무조건부 로깅 및 제공된 스키마 내 현재 및 미래 테이블의 모든 고유 키와 외래 키의 조건부 보완 로깅을 사용으로 설정합니다. 무조건부 로깅은 현재 작업에서 키가 변경되었는지 여부에 관계없이 기본 키 값을 로그에 강제로 적용합니다. 조건부 로깅은 하나 이상이 현재 작업에서 변경된 경우 외래 또는 고유 키의 모든 열 값을 기록합니다. 통합 Replicat 기본 키, 고유 키 및 외래 키는 종속성 계산을 위해 모두 인바운드 서버에 제공되어야 합니다.
auto_capture를 사용으로 설정하는 경우 이 옵션을 사용하지 마십시오. 그러면 테이블이 TABLEEXCLUDE, DELETE TRANDATA 또는 ALTER TABLE DISABLE LOGICAL REPLICATION DDL 등을 통해 명시적으로 복제에 대해 제외되거나 사용 안함으로 설정되지 않는 경우 이 스키마의 테이블이 자동 캡처됩니다.
ALLCOLS
제공된 스키마 내 모든 현재 및 미래 테이블에 대한 지원되는 모든 키와 비키 열의 무조건부 보완 로깅을 사용으로 설정합니다. 이 옵션은 종속성 계산에 필요한 키와 필터링, 충돌 해결 또는 기타 용도에 필요한 열의 로깅을 사용으로 설정합니다. LOB, LONG 및 ADT와 같은 열은 포함되지 않습니다.
NOVALIDATE
ADD SCHEMATRANDATA에서 지원하는 모든 데이터베이스의 경우 적합합니다.
ADD SCHEMATRANDATA가 처리 중인 테이블에 대한 추가 정보를 표시하지 않음. 기본적으로 이 옵션은 활성화되어 있습니다. 응답 시간을 늘리는 데 이 옵션이 사용될 수 있도록 처리 중인 추가 정보를 기반으로 명령 응답의 경과 시간이 생성됩니다.
PARTIALJSON
Oracle의 경우 적합합니다.
스키마 레벨에서 부분 JSON 업데이트를 인출합니다. 사용으로 설정할 경우 부분 JSON 레코드가 리두에 포함됩니다.
또한 TRANLOGOPTIONS FETCHPARTIALJSON 매개변수를 참조하십시오.
PREPARECSN {WAIT | LOCK | NOWAIT | NONE}
Oracle의 경우 DML과 DDL에 대해 적합합니다.
Oracle 데이터 펌프 익스포트 덤프 파일이 인스턴스화 CSN을 포함하도록 소스에서 자동으로 테이블을 준비합니다. Replicat는 Oracle 데이터 펌프(임포트 시)로 설정된 테이블당 인스턴스화 CSN을 사용하여 필터링을 통해 추적 레코드를 제외합니다. 대상에서 데이터 펌프 임포트는 DBOPTIONS ENABLE_INSTANTIATION_FILTERING 매개변수를 사용하여 시스템 테이블과 뷰에 인스턴스화 SCN을 채워 테이블 레벨 인스턴스화 필터링을 사용으로 설정합니다.
WAIT
진행 중인 트랜잭션이 있을 경우 기다렸다가 테이블 인스턴스화를 준비합니다.
LOCK
테이블 인스턴스화 준비를 위해 테이블을 잠급니다.
NOWAIT
인스턴스화 준비가 즉시 수행됩니다(기본 동작).
NONE
인스턴스화 준비가 수행되지 않습니다.
예제
다음은 hr 스키마에 대한 보완 로깅을 사용으로 설정합니다.
ADD SCHEMATRANDATA hr
다음 예에서는 이름이 hr인 스키마 내 모든 현재 및 미래 테이블에 대해 지원되는 키 열과 비키 열을 모두 기록합니다.
ADD SCHEMATRANDATA hr ALLCOLS
다음 예에서는 추가 테이블 정보 처리를 숨깁니다.
ADD SCHEMATRANDATA hr NOVALIDATE