다음을 통해 공유


Oracle CDC 인스턴스

Oracle CDC 인스턴스는 단일 Oracle 원본 데이터베이스에서 캡처한 변경 내용을 처리하기 위해 Oracle CDC Service에서 만든 프로세스입니다. Oracle CDC 인스턴스는 cdc.xdbcdc_config 테이블에서 해당 구성을 검색하고 cdc.xdbcdc_state 테이블에서 상태를 유지 관리합니다. 이러한 테이블은 Oracle CDC 인스턴스를 정의하는 CDC 데이터베이스의 일부입니다. xdbcdc 데이터베이스 및 테이블에 대한 자세한 내용은 CDC 데이터베이스를 참조하세요.

다음은 Oracle CDC 인스턴스에서 수행하는 작업에 대해 설명합니다.

  • 서비스 시작 확인 처리: 시작 시 CDC 인스턴스는 xdbcdc_config 테이블에서 구성을 로드하고 CDC 인스턴스 지속 상태가 일관되고 변경 내용 처리를 시작할 수 있도록 일련의 상태 확인을 수행합니다.

  • 변경 캡처 준비: 확인이 성공적으로 통과하면 Oracle CDC 인스턴스는 현재 정의된 모든 캡처 인스턴스를 검사하고 변경 캡처에 필요한 Oracle LogMiner 쿼리 및 기타 지원 구조를 준비합니다. 또한 Oracle 인스턴스는 Oracle CDC 인스턴스가 마지막으로 실행되었을 때 저장된 내부 캡처 상태를 다시 로드합니다.

  • Oracle에서 변경 내용 캡처: Oracle CDC 인스턴스는 Oracle LogMiner 기능을 통해 Oracle에서 변경 내용을 풀링하고 트랜잭션 커밋에 따라 순서를 지정한 다음 트랜잭션의 시간을 변경하고 CDC 데이터베이스의 SQL Server 변경 테이블에 씁니다.

  • 서비스 종료 처리: Oracle CDC 인스턴스의 수명 주기는 Oracle CDC Service에서 관리됩니다. Oracle CDC 인스턴스를 종료하도록 요청하면 다음 작업을 수행합니다.

    • Oracle 트랜잭션 로그에서 읽기를 중지합니다.

    • 완료된 Oracle 트랜잭션을 CDC 데이터베이스에 쓰는 것을 중지합니다.

    • 현재 트랜잭션이 CDC 데이터베이스에 쓰기를 완료할 때까지 최대 30초(필요한 경우)를 기다립니다. 30초가 넘으면 쓰기가 취소되고 트랜잭션이 롤백됩니다(CDC 인스턴스를 다시 시작할 때 다시 시도).

    • 별도의 스레드에서 스테이징된 트랜잭션 테이블에 가능한 한 많은 메모리 캐시 레코드를 최대 30초 동안 쓴 다음(가장 오래된 트랜잭션에서 최신 트랜잭션까지) xdbcdc_state 테이블을 업데이트하고 모든 변경 내용을 커밋합니다.

  • 구성 변경 처리: Oracle CDC 인스턴스는 CDC Service에서 또는 cdc.xdbcdc_config 테이블에서 새 버전을 검색하여 구성 변경에 대한 알림을 받습니다. 대부분의 변경 내용은 Oracle CDC 인스턴스를 다시 시작할 필요가 없습니다(예: 캡처 인스턴스 추가 또는 제거). 그러나 Oracle 연결 문자열 또는 액세스 자격 증명 변경과 같은 일부 변경 내용은 CDC 인스턴스를 다시 시작해야 합니다.

  • 복구 처리: Oracle CDC 인스턴스가 시작될 때 내부 상태는 xdbcdc_statexdbcdc_staged_transactions 테이블에서 복원됩니다. 상태가 복원되면 CDC 인스턴스는 평소와 같이 진행됩니다.

또한 참조하십시오

오류 처리