사전 요구 사항: Kafka(Apache 및 Confluent) 타겟에 데이터를 복제할 때 타겟 SharePlex는 Linux 플랫폼에만 설치되어야 합니다.
SharePlex Post 프로세스는 Kafka 브로커에 연결하고 작성할 수 있습니다. 데이터는 소스에서 발생한 일련의 순차적 작업으로 JSON 또는 XML 출력에 작성될 수 있으며, 그런 다음 Kafka 소비자가 사용할 수 있습니다.
이 지침에는 이 타겟과 관련된 설정 지침이 포함되어 있습니다. 이러한 설정 단계를 수행하기 전에 이 설명서의 해당 지침에 따라 소스와 타겟에 SharePlex를 설치하십시오.
SharePlex를 사용하여 이 타겟에 복제할 때 지원되는 버전, 데이터 유형 및 작업은 SharePlex 릴리스 노트를 참조하십시오.
Oracle 소스 시스템에 SharePlex와 데이터베이스를 설정해야 합니다. 자세한 설정 단계는 소스에서 SharePlex 구성를 참조하십시오.
이러한 지침은 Kafka에 연결하도록 SharePlex Post 프로세스를 구성합니다. 실행 중인 Kafka 브로커가 있어야 합니다.
Kafka에 대한 게시를 구성하려면 다음을 수행합니다.
target 명령을 실행하여 Kafka 브로커 및 항목에 대한 게시를 구성합니다. 다음은 예시 명령입니다.
sp_ctrl> target x.kafka set kafka broker=host1:9092,host2:9092,host3:9092
sp_ctrl> target x.kafka set kafka topic=shareplex
명령 설명 및 옵션은 Kafka 설정 보기 및 변경을 참조하십시오.
참고: 브로커 중 하나가 다운된 경우 SharePlex가 목록의 다른 브로커에 연결을 시도하도록 둘 이상의 브로커를 지정합니다.
SharePlex는 Kafka에 대한 입력으로 XML 또는 JSON 형식으로 출력할 수 있습니다. XML이 기본값입니다. 입력 형식을 설정하고 형식 옵션을 지정하려면 다음 target 명령 중 하나를 사용합니다.
target x.kafka set format record=json
또는
target x.kafka set format record=xml
이러한 형식의 샘플을 보려면 SharePlex 참조 안내서에 있는 target 명령 문서의 format 카테고리를 참조하십시오.
참고: JSON 형식으로 Oracle에서 Kafka로 데이터를 복제하는 경우 SharePlex는 varray 데이터 유형이나 SDO_GEOMETRY 데이터 유형 내의 varray 유형을 지원하지 않습니다.
Kafka 출력에 대한 현재 속성 설정을 보려면 다음 target 명령을 사용합니다.
target x.kafka show
속성 설정을 변경하려면 다음 명령을 사용합니다.
target x.kafka [queue queuename] set kafka property=value
여기서,
표3: Kafka 타겟 속성
속성 | 입력 값 | Default | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
broker=broker |
필수. Kafka 브로커의 호스트 및 포트 번호, 또는 여러 브로커의 쉼표로 구분된 목록입니다. 이 목록은 Kafka 클러스터에 대한 부트스트랩입니다. Post가 이러한 브로커 중 하나에 연결할 수 있는 한 클러스터의 다른 브로커를 검색합니다. |
localhost:9092 | ||||||||
client_id=ID |
선택 사항. 호출 추적을 지원하기 위해 Post가 각 요청에서 보내는 사용자 정의 문자열입니다. |
None | ||||||||
compression.code={none, gzip, snappy} | 선택 사항. Kafka에서 데이터를 압축할지 여부를 제어합니다. 옵션은 none, gzip 또는 snappy입니다. | None | ||||||||
partition={number | rotate | rotate trans| messagekey} |
필수. 다음 중 하나입니다.
|
0 | ||||||||
request.required.acks=value |
선택 사항. Kafka 클라이언트 매개변수입니다. 기본적으로 -1 값으로 설정됩니다. 이는 all을 의미합니다. 이 주제에 대해서는 Kafka 문서를 참조하십시오. all은 실제로 모든 동기화 복제본을 의미하기 때문입니다. 이 매개변수는 min.insync.replicas 브로커 매개변수와 함께 사용하여 가용성과 데이터 일관성 간의 동작을 조정할 수 있습니다. 중요: 이러한 설정에 따라 Kafka 생성자(이 경우 SharePlex)와 Kafka 클러스터 간에 데이터가 손실될 수 있습니다. |
-1 | ||||||||
topic=topic_name |
필수. 타겟 Kafka 항목의 이름입니다. 이 문자열에는 특수 시퀀스 %o 또는 %t가 포함될 수 있습니다. %o 시퀀스는 복제되는 테이블의 소유자 이름으로 대체됩니다. %t 시퀀스는 복제되는 테이블의 테이블 이름으로 대체됩니다. 이 기능은 'true'로 설정된 auto.create.topics.enabled의 Kafka 서버 설정과 함께 사용할 수 있습니다. 또한 default.replication.factor 및 num.partitions에 대한 서버 설정을 확인하십시오. 항목이 자동 생성될 때 기본값으로 사용되기 때문입니다.
|
shareplex |
* 지연 시간을 피하기 위해 Post가 들어오는 메시지를 더 이상 감지하지 않으면 임계값이 충족될 때까지 기다리지 않고 즉시 Kafka에 패킷을 보냅니다.
Kafka 프로세스가 갑자기 중단되거나 실행 중인 시스템이 중단되는 경우, 행 변경 사항이 Kafka 항목에 두 번 작성될 수 있습니다. 소비자는 중복 항목을 감지하고 삭제하여 이를 관리해야 합니다.
트랜잭션의 모든 행 변경 작업에 대한 모든 레코드는 동일한 트랜잭션 ID를 가지며 시퀀스 ID로 표시됩니다. 이러한 특성은 각각 XML 출력의 txn 요소 아래에 있는 id 및 msgIdx입니다(Oracle에서 Kafka로의 복제 설정 참조).
트랜잭션 ID는 트랜잭션이 커밋된 시점의 SCN이고 시퀀스 ID는 트랜잭션의 행 변경 인덱스입니다. 이러한 두 값은 복구 상황에서 Kafka 항목에 다시 작성되는 경우 동일하다는 것이 보장됩니다.
원하는 경우 다음 명령을 사용하여 모든 행 변경 레코드에 추가 메타데이터를 포함하도록 Post를 구성할 수 있습니다.
target x.kafka [queue queuename] set metadata property[, property]
표4: 선택적 메타데이터 속성
속성 | 설명 |
---|---|
time | 소스에서 작업이 적용된 시간입니다. |
userid | 작업을 수행한 데이터베이스 사용자의 ID입니다. |
trans | 작업이 포함된 트랜잭션의 ID입니다. |
size | 트랜잭션의 작업 수입니다. |
예:
target x.kafka set metadata time, userid, trans, size
메타데이터를 재설정하려면 다음을 수행합니다.
target x.kafka [queue queuename] reset metadata
메타데이터를 보려면 다음을 수행합니다.
target x.kafka [queue queuename] show metadata
SharePlex는 복제된 Oracle 데이터를 SQL 또는 XML 형식의 파일에 게시할 수 있습니다. 이 데이터는 소스에서 발생한 순차적인 일련의 작업으로 작성되며, 그런 다음 타겟 데이터베이스에 순차적으로 게시되거나 외부 프로세스 또는 프로그램에서 사용될 수 있습니다.
이 지침에는 이 타겟과 관련된 설정 지침이 포함되어 있습니다. 이러한 설정 단계를 수행하기 전에 이 설명서의 해당 지침에 따라 소스와 타겟에 SharePlex를 설치하십시오.
SharePlex를 사용하여 이 타겟에 복제할 때 지원되는 버전, 데이터 유형 및 작업은 SharePlex 릴리스 노트를 참조하십시오.
소스에서 캡처 및 라우팅 정보를 지정하는 SharePlex 구성 파일을 생성합니다. 구성 파일에 필요한 구조는 복제 전략에 따라 다르지만 여기서는 데이터를 SQL 또는 XML 파일로 라우팅하는 데 필요한 구문을 보여줍니다.
Datasource:o.SID | ||
src_owner.table | !file[:tgt_owner.table] | host |
여기서,
src_owner.table은 소스 테이블의 소유자 및 이름입니다.
참고: 자세한 내용은 SharePlex 관리 안내서의 데이터를 복제하도록 SharePlex 구성을 참조하십시오.
다음 예에서는 Oracle 인스턴스 ora112의 스키마 PROD에 있는 parts 테이블을 타겟 시스템 sysprod의 파일로 복제합니다.
Datasource:o.ora112
PROD.parts !file sysprod
기본적으로 SharePlex는 데이터를 XML 형식의 파일로 형식화하며, 출력 파일의 속성을 변경하려는 경우가 아니면 타겟 설정이 필요하지 않습니다(Oracle에서 SQL 또는 XML 파일로의 복제 설정 참조). SQL 형식으로 출력하려면 target 명령을 사용하여 다음과 같이 SQL 출력을 지정합니다.
SQL 형식으로 데이터를 출력하려면 다음을 수행합니다.
SQL의 레코드를 출력하려면 다음의 필수 target 명령을 실행합니다.
참고: 모두 소문자를 사용합니다.
target x.file [queue queuename] set format record=sql
target x.file [queuequeuename] set sql legacy=yes
여기서, queue queuename은 명령의 작업을 지정된 큐와 연결된 SharePlex Post 프로세스로 제한합니다.
이러한 설정 및 설정할 수 있는 기타 속성(선택 사항)에 대한 설명은 Oracle에서 SQL 또는 XML 파일로의 복제 설정을 참조하십시오.
SQL 및 XML 형식의 샘플을 보려면 SharePlex 참조 안내서의 target 명령 문서를 참조하십시오.
파일 출력에 대한 현재 속성 설정을 보려면 다음 명령을 사용합니다.
target x.file show
설정을 변경하려면 다음 target 명령을 사용합니다.
target x.file [queue queuename] set [category] property=value
자세한 내용은 Target의 target 명령을 참조하십시오.
Post는 일련의 파일에 작성합니다. 활성 작업 파일 앞에는 current_ 레이블이 붙고 variable-data 디렉토리의 opx/current 하위 디렉토리에 저장됩니다.
출력 형식 | 현재 파일 이름 |
---|---|
SQL |
current_legacy.sql |
XML |
current_prodsys.XML |
중요: current_ 파일을 열거나 편집하지 마십시오.
Post는 max_records, max_size 및 max_time 매개변수를 사용하여 새 활성 파일을 시작할 지점을 결정합니다. 이 전환이 발생하면 Post는 처리된 데이터를 variable-data 디렉토리의 opx 하위 디렉토리에 있는 시퀀스 파일로 이동합니다. 파일 이름에는 Post 큐의 이름, 시간과 날짜, 증분 ID가 포함됩니다.
SQL 파일:
/installed/vardir> ls -1 opx
0000000000_20140305130858_legacy.sql
0000000001_20140305131130_legacy.sql
0000000002_20140305131212_legacy.sql
0000000003_20140305133835_legacy.sql
0000000004_20140305134028_legacy.sql
XML 파일:
/installed/vardir> ls -1 opx
0000000000_20140305130858_prodsys.XML
0000000001_20140305131130_prodsys.XML
0000000002_20140305131212_prodsys.XML
0000000003_20140305133835_prodsys.XML
0000000004_20140305134028_prodsys.XML
파일을 강제로 전환하려면 다음을 수행합니다.
현재 파일은 게시를 중지하지 않으면 보거나 사용할 수 없습니다. 현재 파일의 데이터에 접근하려면 전환 옵션과 함께 target 명령을 사용하여 데이터를 시퀀스된 파일로 이동한 후에 사용하거나 볼 수 있습니다. 이 명령을 실행하면 Post가 새 레코드를 처리한 후에 전환이 발생합니다.
target x.file [queue queuename] switch
SharePlex는 AWS(Amazon Web Services) 및 Microsoft Azure의 서비스로 설치된 데이터베이스를 지원합니다. SharePlex가 지원하는 클라우드 데이터베이스를 보려면 해당 데이터베이스에 대한 SharePlex 릴리스 노트 문서의 지원되는 클라우드 플랫폼 섹션을 참조하십시오.
SharePlex는 IaaS 클라우드 환경, PaaS 클라우드 환경, SaaS 클라우드 환경에 설치하는 방식에 약간의 차이가 있습니다. 이러한 차이는 SharePlex의 설치 및 구성에만 있습니다. 설치 및 구성이 완료되면 SharePlex는 온프레미스 설치에서 작동하는 것과 동일한 방식으로 클라우드에서 작동합니다.
클라우드 데이터베이스 서비스가 진정한 IaaS 가상 컴퓨팅 환경인 경우 사용자 지정 애플리케이션 환경을 설치 및 실행하고, 운영 체제에 접근하고, 접근 권한 및 스토리지를 관리할 수 있습니다. 이 환경에서 SharePlex는 특별한 설정 요구 사항 없이도 로컬에 설치하는 것처럼 클라우드 서버에 직접 설치됩니다.
이 환경에서는 다음이 적용됩니다.
SharePlex는 IaaS 클라우드의 Oracle 소스 데이터베이스에서 캡처할 수 있습니다.
SharePlex는 IaaS 클라우드에서 지원되는 타겟 데이터베이스에 게시할 수 있습니다.
사용자는 이 설명서의 표준 설치 지침을 진행할 수 있습니다.
클라우드 데이터베이스가 실제 PaaS 환경에 설치된 경우 기본 운영 체제에 접근할 수 없으며 클라우드 배포 외부에 있는 서버에 SharePlex를 설치해야 합니다. 그런 다음, 원격 연결을 통해 타겟 데이터베이스와 상호작용하도록 SharePlex를 구성합니다.
SharePlex는 원격 캡처 및 원격 게시 기능을 사용하여 지원되는 소스에서 데이터를 캡처하고 PaaS 환경의 데이터베이스에 게시할 수 있습니다.
다음 방법 중 하나로 PaaS 소스 및 타겟에 대해 SharePlex를 설치할 수 있습니다.
원격 게시를 사용하면 온프레미스 프로덕션 소스 서버를 사용해 모든 SharePlex 복제 구성 요소를 실행할 수 있습니다. 이 설정에서는 소스 및 타겟 복제 프로세스(및 해당 큐)가 하나의 서버에 설치됩니다. SharePlex Post 프로세스는 원격 연결을 통해 타겟 클라우드 데이터베이스에 연결됩니다.
자세한 내용은 소스 시스템에서 PaaS 클라우드에 게시를 참조하십시오.
참고: 대용량 트랜잭션 환경에서 Post 큐에 데이터가 쌓이고 여러 Post 프로세스가 존재하면 프로덕션 시스템에 허용할 수 없는 오버헤드가 발생할 수 있습니다. 이 경우에는 중간 서버를 사용해야 합니다.
온프레미스 중간 서버를 사용하여 Import 및 Post 구성 요소(및 Post 큐)를 실행할 수 있습니다. Post는 원격 연결을 통해 클라우드 타겟에 연결됩니다. 이 방법을 사용하면 소스 서버에서 대부분의 복제 오버헤드가 제거됩니다. 자세한 내용은 중간 서버에서 PaaS 클라우드에 게시를 참조하십시오.
클라우드 데이터베이스가 실제 SaaS 환경에 호스팅된 경우 기본 운영 체제에 접근할 수 없으며 클라우드 배포 외부에 있는 서버에 SharePlex를 설치해야 합니다. 그런 다음, 원격 연결을 통해 소스 및 타겟 데이터베이스와 상호작용하도록 SharePlex를 구성합니다.
다음 방법 중 하나로 SaaS 타겟에 대해 SharePlex를 설치할 수 있습니다.
원격 캡처를 사용하면 온프레미스 또는 클라우드 VM 중간 서버를 활용하여 Capture 및 Export 프로세스를 실행하기 위해 SharePlex를 설치하고 구성할 수 있습니다. Capture는 소스 SaaS 데이터베이스에 대한 원격 연결을 설정하며 Export는 타겟 시스템에서 Import 및 Post와 통신합니다.
원격 Capture 및 원격 Post를 통해 온프레미스 또는 클라우드 VM 중간 서버를 사용하여 SharePlex를 설치하고 구성할 수 있습니다. Capture 및 Post 프로세스는 모두 동일한 서버에서 실행됩니다. Capture는 소스 SaaS 데이터베이스에 대한 원격 연결을 설정하고 Post는 타겟 SaaS 데이터베이스에 대한 원격 연결을 설정합니다.
© 2025 Quest Software Inc. ALL RIGHTS RESERVED. 이용 약관 개인정보 보호정책 Cookie Preference Center