소스 테이블과 대상 테이블에서 행 고유성 보장
TABLE 또는 MAP 문에서 KEYCOLS 절을 사용하지 않는 한 Oracle GoldenGate는 로깅된 제약 조건의 수와 유형에 따라 다음 우선순위 순서로 사용할 행 식별자를 선택합니다(트랜잭션 로그 설정 및 요구 사항 참조).
주: KEYCOLS 절은 미리 정의된 단일 키(_id)가 있기 때문에 JSON 관계 이중성 뷰(JSON DV) 및 JCT(JSON 모음 테이블)에 대해 지원되지 않습니다.
-
확장(32K)
VARCHAR2/NVARCHAR2열을 포함하지 않는 경우 기본 키입니다. 보이지 않는 열이 없는 기본 키입니다. -
고유 키: 보이지 않는 열이 없는 고유 키입니다.
비통합 Replicat의 경우 고유 키 선택은 다음과 같습니다.
-
가상 열, UDT 없음, 함수 기반 열 없음, 널 가능 열 없음 및 확장(32K)
VARCHAR2/NVARCHAR2열이 없는 첫번째 고유 키 영숫자. 보이지 않는 인덱스의 일부인 열을 포함하는 키를 지원하려면 Oracle GoldenGateGLOBALS파일에서ALLOWINVISIBLEINDEXKEYS매개변수를 사용해야 합니다. -
가상 열, UDT 없음, 확장(32K)
VARCHAR2/NVARCHAR2열 또는 함수 기반 열이 없는 영숫자로 첫번째 고유 키이지만 널 가능 열을 포함할 수 있습니다. 보이지 않는 인덱스의 일부인 열을 포함하는 키를 지원하려면 Oracle GoldenGateGLOBALS파일에서ALLOWINVISIBLEINDEXKEYS매개변수를 사용해야 합니다.
-
-
Null을 지정할 수 없는 고유 키: 고유 키 중 하나에서 하나 이상의 열은 Null을 지정할 수 없어야 합니다. 이는
NOALLOWNULLABLEKEYS가 기본값이기 때문입니다.
주: ALLOWNULLABLEKEYS는 통합된 Replicat에 적합하지 않습니다.
-
앞의 키 유형이 없는 경우(테이블에 다른 유형의 키가 정의되어 있더라도) Oracle GoldenGate는 데이터베이스에서 허용하는 모든 열의 의사 키를 생성합니다. 가상 열, UDT, 함수 기반 열, 확장(32K)
VARCHAR2/NVARCHAR2열 및 Oracle GoldenGate 사용자에 의해 Oracle GoldenGate 구성에서 명시적으로 제외된 열을 제외한 고유 키에 사용됩니다.위의 제한 사항으로 인해 달리 제외되지 않는 한 의사 키에서 보이지 않는 열이 허용됩니다.
주: 테이블에 사용할 수 없는 다른 키가 있거나 테이블에 키가 전혀 없는 경우 Oracle GoldenGate는 적절한 메시지를 보고서 파일에 기록합니다. 모든 열에서 키를 구성하면 소스 시스템에서 Oracle GoldenGate의 성능이 저하됩니다. 대상에서 이 키로 인해 Replicat는 더 크고 덜 효율적인 WHERE 절을 사용합니다.
테이블에 적절한 키가 없거나 기존 키를 사용하지 않으려는 경우 테이블에 항상 고유한 값을 포함하는 열이 있는 경우 대체 키를 정의할 수 있습니다. Extract TABLE 매개변수 및 Replicat MAP 매개변수 내에 KEYCOLS 절을 포함하여 이 대체 키를 정의합니다. 지정된 키는 Oracle GoldenGate가 찾은 기존 기본 또는 고유 키를 무효화합니다. 자세한 내용은 Oracle GoldenGate에 대한 매개변수 및 함수 참조를 참조하십시오.
Oracle Replicat에 대해 다음 조건이 일치하는 경우 소스 테이블 키 열과 일치하는 고유 인덱스를 사용해야 합니다.
-
KEYCOLS매개변수가 지정되지 않았습니다. -
USEALLKEYCOLUMNS매개변수가 지정되지 않았습니다. -
ALLOWNULLABLEKEYS매개변수가 지정되지 않았습니다. -
출처 및 대상 키 열이 대응하지 않습니다.
-
소스 테이블 키 열과 일치하는 고유 인덱스가 존재합니다.