ALLOWNOOPUPDATES | 공지사항
유효 기간
Replicat
설명
Replicat에서 no-op 작업에 응답하는 방식을 제어하려면 ALLOWNOOPUPDATES 및 NOALLOWNOOPUPDATES를 사용합니다. no-op 작업은 대상 테이블에 영향을 주지 않는 작업입니다. 다음은 이러한 상황이 어떻게 발생할 수 있는지에 대한 몇 가지 예입니다.
-
소스 테이블에 대상 테이블에 존재하지 않는 열이 있거나, 복제에서 제외된 열(
COLSEXCEPT절 사용)이 있습니다. 두 경우 모두 해당 소스 열이 갱신되면 Replicat SQL 문 내의SET절에 사용할 대상 열 이름이 없습니다. -
열을 현재 열과 동일한 값으로 설정하는 업데이트가 수행됩니다. 데이터베이스는 변경되지 않았으므로 새 값을 기록하지 않습니다. 그러나 Oracle GoldenGate는 기본 키가 기록되었지만 Replicat SQL 문에
SET절에 대한 열 값이 없으므로 작업을 변경 레코드로 캡처합니다.
NOALLOWNOOPUPDATES를 사용할 경우 소스 및 대상 테이블에 정의된 키가 없거나 Replicat가 KEYCOLS를 사용하지 않는 경우에만 Replicat가 비정상 종료됩니다. 이러한 경우 대상 테이블에 정의된 고유 키가 없고 소스 열에서 갱신 작업이 수행되는 경우 다음과 유사한 오류가 발생합니다.
Encountered an update for target table TELLER, which has no unique key defined. KEYCOLS can be used to define a key. Use ALLOWNOOPUPDATES to process the update without applying it to the target database. Use APPLYNOOPUPDATES to force the update to be applied using all columns in both the SET and WHERE clause.
APPLYNOOPUPDATES 매개변수를 사용하여 UPDATE를 강제 적용할 수 있습니다. APPLYNOOPUPDATES는 ALLOWNOOPUPDATES를 대체합니다. 둘 다 지정할 경우 Replicat는 소스 및 대상 테이블에 대한 키 열이 있는 업데이트를 적용합니다.
HANDLECOLLISIONS 또는 INSERTMISSINGUPDATES 매개변수를 사용할 때 ALLOWNOOPUPDATES가 지정되고 Oracle GoldenGate에 모든 대상 키 값이 있는 경우 Oracle GoldenGate는 SET 절 및 WHERE 절에 있는 테이블의 모든 열을 사용하여 UPDATE를 적용합니다(APPLYNOOPUPDATES 동작 호출). Oracle GoldenGate가 행이 존재하는지 아니면 누락되었는지 확인할 수 있도록 이 작업이 필요합니다. 누락된 경우 Oracle GoldenGate는 UPDATE를 INSERT로 변환합니다.
기본값
NOALLOWNOOPUPDATES
구문
ALLOWNOOPUPDATES | NOALLOWNOOPUPDATES