초기 로드 추출을 사용하여 PostgreSQL에 대한 정확한 인스턴스화

소스 PostgreSQL 데이터베이스에서 Oracle GoldenGate 대상으로의 데이터 동기화는 선택적 정확한 인스턴스화 방법을 사용하여 수행할 수 있습니다. 이 방법은 Oracle GoldenGate 21c(21.8.0)에서 도입되었습니다.

정확한 인스턴스화는 대상 Replicat에서 충돌 처리가 필요하지 않다는 장점이 있습니다. 이는 플랫 파일과 같은 충돌 처리를 지원하지 않는 대상에 중요합니다. 이 방법은 데이터베이스 스냅샷을 사용하여 초기 로드 Extract의 출력을 변경 데이터 캡처 추출의 시작 위치와 동기화합니다. 이 스냅샷은 초기 로드 Extract에서 관리되므로 다중 초기 로드 Extract가 동일한 스냅샷을 사용할 수 없습니다. 따라서 다중 초기 로드 추출을 사용하여 작업 로드를 병렬화할 때는 이 방법이 지원되지 않습니다.

다음 예에서는 마이크로서비스 아키텍처 내의 관리 클라이언트를 사용합니다. 사용자는 Oracle GoldenGate를 잘 알고 있으며 필요한 모든 전제 조건과 함께 소스 및 대상 데이터베이스를 올바르게 설정했다고 가정합니다. 이러한 단계에는 최소 Oracle GoldenGate 21c(21.8.0) 이상이 필요합니다.

정확한 인스턴스화 방법을 사용하여 엔드투엔드 초기 로드 및 동기화 프로세스를 설정하려면 다음 단계를 수행합니다.

  1. CDC(변경 데이터 캡처) Extract를 소스 PostgreSQL 데이터베이스에 등록합니다.

    DBLOGIN USERIDALIAS src_alias
    REGISTER EXTRACT extecdc

    이 예에서 extecdc은 Extract 이름입니다. 마이크로서비스 아키텍처의 경우 데이터베이스 연결 설정에 DBLOGIN USERIDALIAS를 사용합니다.

  2. 초기 로드 Extract를 생성합니다.

    ADD EXTRACT extinit, SOURCEISTABLE
    EDIT PARAMS extinit

    초기 로드 Extract 매개변수 파일은 INITIALLOADOPTIONS USESNAPSHOT 매개변수를 포함해야 합니다. 예:

    EXTRACT extinit
    INITIALLOADOPTIONS USESNAPSHOT
    SOURCEDB USERIDALIAS src_alias
    EXTFILE west/ei, MEGABYTES 500, PURGE
    TABLE public.*;

    USESNAPSHOT 옵션과 함께 이 매개변수의 사용에 대한 자세한 내용은 INITIALLOADOPTIONS를 참조하십시오.

  3. 초기 로드 Extract를 시작합니다.

    START EXTRACT extinit
  4. 초기 로드 Extract가 완료 및 정지되면 보고서 파일을 검토하여 CDC Extract에서 사용할 위치 지정 LSN을 확인합니다.

    예를 들어, 다음 출력에서 CDC Extract가 사용할 위치 지정 LSN은 '0/173F770'입니다.

    INFO    OGG-100001 A consistent point is
    established in database 'tpcc' using replication slot ogg_initx_1234 at LSN 0/173F770
    and snapshot name '00000003-00000026-1'.
    INFO    OGG-100002 Create or position the CDC
    extract to LSN 0/173F770. Example: ADD EXTRACT <cdc-extract> TRANLOG LSN 0/173F770
    
    or ALTER EXTRACT <cdc-extract> LSN 0/173F770.
  5. 초기 로드 Extract에서 트레일을 읽는 초기 로드 Replicat를 생성하고 시작합니다.

    DBLOGIN USERIDALIAS tgt_alias
    ADD CHECKTPOINTTABLE ggs.checkpoint
    ADD REPLICAT repinit, EXTTRAIL west/ei, CHECKPOINTTABLE ggs.ggcheckpoint
    START REPLICAT repinit

    다음은 초기 로드 Replicat 매개변수 파일의 예입니다.

    REPLICAT repinit
    TARGETDB USERIDALIAS tgt_alias
    BATCHSQL
    MAP public.*, TARGET public.*;
  6. 초기 로드 추출 보고서 파일에서 참조된 일관성 있는 LSN 값을 사용하여 CDC 추출(extecdc)을 추가하고 시작합니다.

    ADD EXTRACT extecdc, TRANLOG, LSN 0/173F770
    ADD EXTTRAIL ea, EXTRACT extecdc
    START EXTRACT extecdc

    다음은 CDC Extract 매개변수 파일의 예입니다.

    EXTRACT extecdc
    SOURCEDB USERIDALIAS src_alias
    EXTTRAIL west/ea
    TABLE public.*;
  7. 초기 로드 Replicat가 모든 초기 로드 레코드를 처리한 경우 CDC Extract에서 트레일을 읽는 CDC Replicat를 추가하고 시작합니다.

    ADD REPLICAT repecdc, EXTTRAIL west/ea, CHECKPOINTTABLE ggs.ggcheckpoint
    START REPLICAT repecdc
  8. CDC Extract와 CDC Replicat 모두에서 지연을 모니터링하고, 둘 다 0초에 가까운 경우 소스 데이터베이스에서 대상 데이터베이스로의 데이터 스트림이 실시간에 가까워야 합니다.