Openflow Connector for Oracle: 유지 관리¶
참고
이 커넥터에는 `Snowflake Connector 약관<https://www.snowflake.com/legal/snowflake-connector-terms/>`_이 적용됩니다.
참고
Openflow Connector for Oracle 에는 표준 커넥터 서비스 약관 외에 추가 서비스 약관도 적용됩니다. 자세한 내용은 `Oracle용 Openflow Connector 부록 <https://www.snowflake.com/en/legal/optional-offerings/offering-specific-terms/openflow-oracle-terms/>`_을 참조하세요.
이 항목에서는 커넥터 재설치 또는 다시 실행 로그 시작 위치 설정과 같은 Openflow Connector for Oracle 의 유지 관리 작업에 대해 설명합니다.
해당 작업은 :doc:`스냅샷을 사용한 증분 복제<incremental-replication>`와 함께 사용되는 경우가 많습니다.
커넥터 재설치하기¶
이 섹션에서는 커넥터를 재설치하며 스냅샷을 다시 생성하지 않고도 동일한 테이블의 데이터를 계속 복제하는 방법에 대한 지침을 제공합니다. 새 커넥터가 동일한 런타임에 설치되고 새 런타임으로 이동되는 경우를 다룹니다.
경고
커넥터가 재설치 전에 중지된 동일한 CDC 스트림 위치에서 계속 복제하려면, 소스 데이터베이스는 이전 커넥터가 중지된 후 새 커넥터가 시작되기 전까지의 시간을 포함할 만큼 충분히 긴 보관된 다시 실행 로그를 유지해야 합니다. Oracle 데이터베이스의 보관된 다시 실행 로그 보존 기간이 충분히 긴지 확인하고 재설치 시간을 최소로 유지합니다.
일반적으로 보존 기간은 24시간이면 충분하지만, 재설치 시간을 보장하려면 더 긴 시간이 적절할 수 있습니다. 보관된 다시 실행 로그 보존 구성에 대한 자세한 내용은 Openflow Connector for Oracle: Oracle 데이터베이스 구성 섹션을 참조하세요.
전제 조건¶
커넥터 매개 변수 컨텍스트 값을 검토하고 기록합니다. 동일한 런타임에 커넥터를 재설치하는 경우 기존 컨텍스트를 재사용할 수 있습니다. 새 인스턴스가 다른 런타임에 있는 경우 모든 매개 변수를 다시 입력해야 합니다.
기존 커넥터에서 진행 중인 모든 FlowFiles 처리를 완료한 후 커넥터를 중지합니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Ingestion » Openflow 를 선택합니다.
Launch Openflow 을 선택합니다.
Openflow 창에서 Runtimes 탭을 선택합니다.
커넥터가 포함된 런타임을 선택합니다.
커넥터를 선택합니다.
Snapshot Load 그룹에서 최상위 프로세서 :ui:`Set Tables for Replication`을 중지합니다.
Incremental Load 그룹에서 최상위 프로세서 :ui:`Read Oracle CDC Stream`을 중지합니다.
Merge Task Schedule CRON 매개 변수의 값을 변경한 경우 ``* * * * * ?``로 반환합니다. 그렇지 않으면 다음으로 예약된 실행까지 큐가 비워지지 않습니다.
커넥터의 모든 FlowFiles가 처리되고 모든 큐가 비어 있을 때까지 기다립니다. 모든 FlowFiles가 처리되면 커넥터 프로세서 그룹에 대한 Queued 값은 0이 됩니다. 원래 커넥터의 큐에 항목이 남아 있는 경우 새 커넥터가 시작될 때 데이터 갭이 발생할 수 있습니다.
커넥터의 모든 프로세서 및 컨트롤러 서비스를 중지합니다.
조심
기존 커넥터는 런타임에 유지될 수 있으며 중지된 상태로 유지되는 한 새 인스턴스를 방해하지 않습니다.
커넥터의 새 인스턴스를 생성합니다. 원래 커넥터와 동일한 런타임을 사용하는 경우 기존 매개 변수 컨텍스트를 유지하고 설정을 재사용하도록 선택할 수 있습니다.
다른 런타임에 설치하거나 이전 매개 변수 컨텍스트를 삭제한 경우 :doc:`setup-connector`에 설명된 대로 테이블 이름과 패턴을 포함하여 구성 설정을 새 매개 변수 컨텍스트에 입력합니다.
Oracle Ingestion Parameters컨텍스트로 이동하고 다음 매개 변수를 설정합니다.Ingestion Type매개 변수를incremental로 설정합니다. 우려 사항에 대한 자세한 내용은 기존 커넥터에서 스냅샷 없이 증분 복제 활성화 섹션을 참조하세요.Starting Redo Log Position매개 변수를Earliest로 설정합니다. 자세한 내용 및 잠재적인 우려 사항은 XStream 아웃바운드 서버 변경 섹션을 참조하세요.
새 커넥터를 시작합니다.
사용법 노트¶
새 커넥터는 원래 커넥터에서 생성한 기존 대상 테이블을 사용하지만, 커넥터는 새 저널 테이블을 생성합니다.
XStream 아웃바운드 서버 변경¶
커넥터는 XStream 서버를 처리한 최신 SCN 위치로 정기적으로 업데이트합니다. 커넥터를 다시 설치하고 동일한 XStream 아웃바운드 서버에 연결하는 경우 중단된 SCN 위치에서 읽기를 재개합니다. 이 SCN 번호는 다음을 통해 확인할 수 있습니다.
SELECT PROCESSED_LOW_SCN
FROM DBA_XSTREAM_OUTBOUND_PROGRESS
WHERE SERVER_NAME = 'XOUT1';
이전 위치에서 데이터를 다시 읽으려면 먼저 XStream 서버의 시작 SCN을 변경해야 합니다.
BEGIN
DBMS_XSTREAM_ADM.ALTER_OUTBOUND(
server_name => 'XOUT1',
start_scn => <start_scn>
);
END;
/
``<start_scn>``의 값은 사용 가능한 다시 실행 로그 범위 내에서 유효한 SCN이어야 합니다. 시작 위치를 재설정할 수 있는 가장 낮은 SCN은 다음을 통해 확인할 수 있습니다.
SELECT REQUIRED_CHECKPOINT_SCN
FROM DBA_CAPTURE
WHERE CLIENT_NAME = 'XOUT1';
이는 캡처 프로세스에 다시 실행 정보가 필요한 가장 낮은 SCN입니다.
XStream 위치에서 로드 지정¶
Openflow Connector for Oracle 커넥터를 사용하면 Oracle 다시 실행 로그를 읽는 시작 위치를 선택할 수 있습니다. 기본적으로 커넥터는 사용 가능한 최신 위치에서 읽습니다. 또는 소스 인스턴스에서 사용 가능한 가장 빠른 위치를 선택할 수 있습니다. 커넥터를 재설치할 때 가장 빠른 위치에서 시작하도록 선택하는 것이 일반적입니다. 이를 통해 새 인스턴스는 각각의 스냅샷을 다시 생성할 필요 없이 기존 테이블을 포착하고 계속 복제할 수 있습니다.
참고
실행 중인 커넥터를 최신 위치에서 가장 빠른 위치로 전환하면 사용 가능한 전체 다시 실행 로그를 다시 읽고, 다시 처리하고, 대상 테이블에 다시 적용해야 합니다.
경고
다시 실행 로그를 다시 읽는 동안 모든 이벤트가 다시 처리되고 병합될 때까지 영향을 받는 대상 테이블의 열과 데이터가 소스와 동기화되지 않을 수 있습니다.
Ingestion Parameters 컨텍스트에서 사용할 수 있는 매개 변수는 다음과 같습니다.
매개 변수 |
설명 |
|---|---|
XStream 위치 시작하기 |
|
상태의 테이블 다시 읽기 |
|
커넥터가 다시 실행 로드 다시 읽기를 완료했는지 확인하려면 다음을 수행합니다.
Openflow 캔버스로 이동합니다.
Incremental Load 프로세스 그룹을 엽니다.
:ui:`Read Oracle CDC Stream`이라는 최상위 프로세서를 마우스 오른쪽 버튼으로 클릭한 후 :ui:`View state`를 선택합니다.
상태 항목을 비교합니다.
lcr.position.rewind: 다시 실행 로그 다시 읽기가 시작되기 전에 프로세서가 읽은 가장 최근 위치입니다.
lcr.position.last: 프로세서가 읽은 현재 최신 위치입니다. 이 값이 위의 되감기 값보다 낮은 경우, 프로세서는 여전히 다시 실행 로그를 다시 읽습니다.
사용법 노트¶
실행 중인 커넥터가 가장 빠른 위치에서 읽도록 전환되고 실행이 시작되면 프로세스를 재구성하거나 취소할 수 없으며, 현재 읽은 위치가 시작하기 전의 위치에 도달할 때까지 프로세스가 계속됩니다.
실행 중인 커넥터에서 가장 빠른 위치로 전환하면 재처리되는 모든 테이블에 대해 기존 저널이 완료되고 새 저널 테이블이 생성됩니다.
다시 실행 로그에 소스 데이터베이스에서 삭제되고 다시 생성된 이전 테이블의 이벤트가 포함된 경우 스트림을 다시 읽으면 현재 대상의 모든 이벤트가 다시 처리됩니다. 커넥터는 이전 소스 테이블과 현재 소스 테이블이 동일한 이름을 공유하는 경우 이를 구분할 수 없습니다.