다음을 통해 공유


Oracle CDC 인스턴스

Important

Change Data Capture for Oracle by Attunity는 이제 더 이상 사용되지 않습니다. 자세한 내용은 공지를 참조하세요.

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 트랜잭션 로그에서 읽기를 중지합니다.

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

    • 현재 트랜잭션이 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 인스턴스가 평소와 같이 진행됩니다.

참고 항목

오류 처리