GETUPDATEBEFORES | IGNOREUPDATEBEFORES

유효 기간

추출 및 복제

설명

GETUPDATEBEFORES 및 IGNOREUPDATEBEFORES 매개변수를 사용하여 UPDATE 작업에서 열의 이전 이미지가 Oracle GoldenGate에 의해 처리되는 레코드에 포함되는지 여부를 제어합니다. 이전 이미지에는 행이 업데이트되기 전에 존재했던 열 세부정보가 포함됩니다.

(Oracle만 해당) Oracle GoldenGate는 기본적으로 단일 통합 업데이트 레코드에서 업데이트 작업에 대한 변경 전 및 변경 후 값을 모두 캡처합니다. 다른 데이터베이스의 경우 변경 전 값만 추적 파일에 기록됩니다. 이전 릴리스에서는 기본적으로 변경 후 값만 캡처했습니다. 이 릴리스부터 사용자정의 SQL 문(SQLEXEC)은 이제 새 기본 업데이트 형식으로 업데이트 작업당 한 번만 실행됩니다. 이 릴리스 이전에는 사용자정의 SQL 문이 두 번, 즉 변경 전 값이 발생할 때 한 번, 변경 후 값이 발생할 때 한 번 실행됩니다. 통합 업데이트 형식으로 Oracle GoldenGate를 사용하는 경우 @BEFORE, @AFTER 및 @BEFOREAFTER 함수를 사용하여 사전 또는 사후 값을 사용자정의 SQL 문에 명시적으로 전달할 수 있습니다. Oracle GoldenGate는 기본적으로 이 업데이트 형식을 사용할 수 있지만 이전에 두 개의 별도 사전 및 사후 변경 레코드를 생성한 충돌하는 매개변수가 있는 경우 이전 형식 캠이 보존됩니다. 이러한 경우 정보 메시지가 보고서 파일에 기록됩니다.

다음과 같이 GETUPDATEBEFORES 매개변수를 사용합니다.

이전 이미지를 이후 이미지와 비교하여 트랜잭션의 순 결과를 식별하거나 기타 델타 계산을 수행할 수 있습니다. 예를 들어, 업데이트 전에 BALANCE 필드가 $100이고 이후에 $120인 경우 비교 결과에 $20의 차이가 표시됩니다. Oracle GoldenGate의 열 변환 함수를 사용하여 비교 및 계산을 수행할 수 있습니다.

파라미터 파일에서 이전 이미지를 참조하려면 @BEFORE 변환 함수를 사용합니다. 예:

COLMAP (previous = @BEFORE (balance))

CDR(충돌 감지 및 해결) 기능을 사용하는 경우 GETUPDATEBEFORES가 필요합니다. CDR에 대한 자세한 내용은 수동 충돌 감지 및 해결을 참조하십시오.

GETUPDATEBEFORES 및 IGNOREUPDATEBEFORES 매개변수는 테이블마다 다릅니다. 한 매개변수는 다른 매개변수가 발견될 때까지 이후의 모든 TABLE 또는 MAP 문에 대해 유효합니다.

MAP 문 간에 이러한 매개변수를 선택적으로 사용 또는 사용 안함으로 설정할 수 있으므로 조정된 Replicat의 서로 다른 스레드에 대해 이 매개변수를 사용 또는 사용 안함으로 설정할 수 있습니다. MAP 문의 한 세트에 GETUPDATEBEFORES 스레드를 지정하고 다른 MAP 문 세트에 IGNOREUPDATEBEFORES 스레드를 지정합니다.

GETUPDATESBEFORES에 대한 제한 사항:

기본값

IGNOREUPDATEBEFORES

구문

GETUPDATEBEFORES | IGNOREUPDATEBEFORES

예제

이 예에서는 서로 다른 MAP 문에 GETUPDATEBEFORES 및 IGNOREUPDATEBEFORES를 선택적으로 적용할 수 있는 방법을 보여 주며, 각 문은 조정된 Replicat의 서로 다른 스레드를 나타냅니다.

GETUPDATEBEFORES
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
IGNOREUPDATEBEFORES
MAP sales.loc, TARGET sales.loc, THREAD (3);