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에 적합하며 다음을 수행합니다.

기본적으로 ADD SCHEMATRANDATA는 다음 우선순위 순서대로 테이블의 키 열을 기록합니다.

  1. 기본 키

  2. 기본 키 없이 테이블의 모든 고유 키(사용 안함으로 설정되거나 사용할 수 없거나 숨겨진 키 포함). ADT 멤버 열을 포함하는 고유 키도 기록됩니다. 가상 열(함수 기반 인덱스)의 고유 키만 기록되지 않습니다.

  3. 위 두 가지가 존재하지 않을 경우 테이블의 모든 스칼라 열이 기록됩니다. (시스템 생성 행 OID가 항상 기록됩니다.)

또한 ADD SCHEMATRANDATA는 통합 Replicat를 사용하기 위한 조건부 또는 무조건부 로깅 요구사항을 지원합니다.

다음과 같은 경우 ADD SCHEMATRANDATA를 사용합니다.

UsingADD SCHEMATRANDATA에 대한 데이터베이스 레벨 로깅 요구 사항

Oracle은 소스 데이터베이스를 강제 로깅 모드로 전환하고 Oracle GoldenGate를 사용할 때 데이터베이스 레벨에서 최소 보완 로깅을 사용으로 설정할 것을 강력히 권장합니다. 그러면 행 체인화 정보(존재하는 경우)가 업데이트 작업을 위해 리두 로그에 추가됩니다.

UsingADD 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