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_state 및 xdbcdc_staged_transactions 테이블에서 복원됩니다. 상태가 복원되면 CDC 인스턴스가 평소와 같이 진행됩니다.