DDL 구성을 위한 필수 조건

CREATE TABLE AS SELECT(CTAS) 문에는 SELECT 문과 임의 개수의 기본 객체를 참조하는 INSERT 문이 포함됩니다. 기본적으로 Oracle GoldenGate는 대상 데이터베이스에서 AS SELECT 절에 대한 데이터를 가져옵니다. 이 매개변수를 사용하여 원래 삽입을 유지하도록 CTAS 작업을 강제로 수행할 수 있습니다.

참고:

이러한 이유로 CTAS(CREATE TABLE AS SELECT) 문에서 생성된 Oracle XMLType 테이블은 지원되지 않습니다. XMLType 테이블의 경우 행 객체 ID는 이 시나리오에서 유지 관리할 수 없는 소스와 대상 간에 일치해야 합니다. 빈 CTAS 문(새 테이블에 데이터를 삽입하지 않음)으로 생성된 XMLType 테이블은 올바르게 유지 관리할 수 있습니다.

또한 CTAS가 CTAS 삽입을 재생할 수 있도록 해주는 GETCTASDML 매개변수를 사용하여 복제 중 OID를 유지할 수 있습니다. 이 매개변수는 통합 딕셔너리에서만 지원되며 다운스트림 Replicat는 12.1.2.1 이상이어야 추적을 사용할 수 있습니다. 그렇지 않으면 차이가 있을 수 있습니다.

AS SELECT 절의 객체는 Target Database에 존재해야 하며 이름은 소스의 객체와 동일해야 합니다.

MAP 문에서 Oracle GoldenGate는 새 테이블(CREATE TABLE name)의 이름만 TARGET 사양에 매핑하지만 AS SELECT 절의 기본 객체 이름은 매핑하지 않습니다. 이름이 TARGET 사양으로 변환된 경우 데이터 불일치를 일으킬 수 있는 객체에 대한 종속성이 있을 수 있습니다.

다음은 소스의 CREATE TABLE AS SELECT 문 예와 Oracle GoldenGate에서 대상에 복제하는 방법을 보여줍니다.

CREATE TABLE a.tab1 AS SELECT * FROM a.tab2;

Replicat에 대한 MAP 문은 다음과 같습니다.

MAP a.tab*, TARGET a.x*;

Replicat가 적용하는 대상 DDL 문은 다음과 같습니다.

CREATE TABLE a.xtab1 AS SELECT * FROM a.tab2;

AS SELECT * FROM 절에 있는 테이블의 이름은 xtab2가 아닌 tab2 소스에 있는 그대로 유지됩니다.

소스 및 대상에서 기본 객체의 데이터를 일관되게 유지하기 위해 Oracle GoldenGate의 데이터 복제를 위해 데이터를 구성할 수 있습니다. 앞의 예제에서는 다음 명령문을 사용하여 이 요구 사항을 수용할 수 있습니다.

소스

TABLE a.tab*;

대상

MAPEXCLUDE a.tab2
MAP a.tab*, TARGET a.x*;
MAP a.tab2, TARGET a.tab2;

DDL에서 부적격 객체 이름 올바르게 식별을 참조하십시오.