테이블 처리 준비
다음 테이블 속성은 Teradata용 Oracle GoldenGate 환경에서 처리해야 합니다.
트리거 비활성화 및 제약 조건 연쇄화
Oracle GoldenGate가 트리거 또는 캐스케이드 제약 조건에서 발생한 소스에서 DML을 복제하는 경우 트리거, 캐스케이드 삭제 제약 조건 및 대상 Teradata 테이블에 대한 캐스케이드 업데이트 제약 조건을 사용 안함으로 설정합니다. 대상 테이블에서 동일한 트리거 또는 제약 조건이 활성화되면 복제된 소스 데이터로 인해 중복되고 데이터베이스에서 오류가 반환됩니다. 소스 테이블이 emp_src 및 salary_src이고 대상 테이블이 emp_targ 및 salary_targ인 다음 예를 고려해 보십시오.
-
emp_src에 대해 삭제가 실행됩니다. -
삭제를
salary_src로 캐스케이드합니다. -
Oracle GoldenGate는 두 삭제를 대상으로 전송합니다.
-
상위 삭제가 먼저 도착하고
emp_targ에 적용됩니다. -
상위 삭제는 삭제를
salary_targ로 캐스케이드합니다. -
salary_src에서 계단식 삭제가salary_targ에 적용됩니다. -
행은 5단계에서 이미 삭제되었으므로 찾을 수 없습니다.
테이블에 대한 행 고유성 보장
Oracle GoldenGate에는 복제된 업데이트 및 삭제를 위한 올바른 대상 행을 찾기 위해 소스 및 대상 테이블에서 특정 형식의 고유한 행 식별자가 필요합니다.
KEYCOLS 절이 TABLE 또는 MAP 문에 사용되지 않는 한 Oracle GoldenGate는 다음 우선순위 순서로 사용할 행 식별자를 선택합니다. 1. 기본 키
-
시간 기록 또는 비구체화된 계산 열을 포함하지 않는 첫 번째 고유 키 영숫자.
-
앞의 키 유형이 없는 경우(테이블에 정의된 다른 유형의 키가 있더라도) Oracle GoldenGate는 모든 열의 의사 키를 생성합니다. Oracle GoldenGate가 키 또는 Oracle GoldenGate 구성에서 제외된 키에서 지원하지 않는 데이터베이스를 제외하고 고유 키에서 사용할 수 있습니다.
주: 테이블에 사용할 수 없는 다른 키가 있거나 테이블에 키가 전혀 없는 경우 Oracle GoldenGate는 적절한 메시지를 보고서 파일에 기록합니다. 모든 열에서 키를 구성하면 소스 시스템에서 Oracle GoldenGate의 성능이 저하됩니다. 대상에서 이 키로 인해 Replicat는 더 크고 덜 효율적인 WHERE 절을 사용합니다.
- 테이블에 적절한 키가 없거나 기존 키가 사용되지 않도록 하려는 경우 테이블에 항상 고유한 값을 포함하는 열이 있는 경우 대체 키를 정의할 수 있습니다. Extract
TABLE매개변수 및 ReplicatMAP매개변수 내에 KEYCOLS 절을 포함하여 이 대체 키를 정의합니다. 지정된 키는 Oracle GoldenGate가 찾은 기존 기본 또는 고유 키를 무효화합니다. Oracle GoldenGate용 매개변수 및 함수 참조의 TABLE | MAP를 참조하십시오.
KEYCOLS를 사용하여 커스텀 키 지정
테이블에 적용 가능한 행 식별자가 없거나 식별자를 사용하지 않으려는 경우 테이블에 항상 고유한 값을 포함하는 열이 있는 경우 대체 키를 정의할 수 있습니다. Extract TABLE 매개변수 및 Replicat MAP 매개변수 내에 KEYCOLS 절을 포함하여 이 대체 키를 정의합니다. 지정된 키는 Oracle GoldenGate가 찾은 기존 기본 또는 고유 키를 무효화합니다.
대규모 갱신 및 삭제 작업 처리
많은 수의 행을 갱신 또는 삭제하는 작업은 가입자 데이터베이스의 각 행에 대해 개별 갱신 및 삭제를 생성합니다. 이로 인해 Teradata 가입자 시스템에서 잠금 관리자 오버플로우가 발생하여 Replicat 프로세스가 종료될 수 있습니다.
이러한 오류를 방지하려면 이러한 작업에 대한 복제를 일시적으로 일시 중지한 다음 소스 및 대상 시스템에서 수동으로 수행합니다. 복제를 일시 중지하려면 다음 명령을 사용합니다. 이 명령은 해당 세션에 대해서만 복제를 일시 중지합니다. 해당 테이블에 있는 다른 세션의 작업은 정상적으로 복제됩니다.
set session override replication on;
commit;