이러한 매개변수는 SharePlex Read 프로세스에서 사용됩니다.

SP_ORD_BATCH_ENABLE

이 매개변수는 일괄 처리 기능의 활성화를 제어합니다. 기본적으로 활성화되어 있습니다. 이 매개변수를 통해 Read 프로세스는 여러 개의 동일한 레코드를 단일 레코드 또는 배치로 결합하여 Post 프로세스에서 처리할 수 있습니다.

기본값: 1(설정 켜짐)

유효한 값의 범위: 0 또는 1(플래그)

적용 시기: 즉시

SP_ORD_BATCH_MAX

이 매개변수는 동시 배치 트랜잭션의 최대 수를 제어합니다.

 

기본값: 50(트랜잭션)

유효한 값의 범위: 5에서 250까지(포함)의 정수

적용 시기: Read가 재시작될 때

SP_ORD_BATCH_MATCH_MIN

이 매개변수는 배치를 처리하기 전에 일치하는 최소 작업 수를 제어합니다.

 

기본값: 2

유효한 값의 범위: 양의 정수

적용 시기: Read가 재시작될 때

SP_ORD_CDA_LIMIT

이 매개변수는 Read 프로세스의 각 로그인에 의해 캐시되는 커서 수를 제어합니다. 소스 시스템에서 복제가 Oracle 활동보다 뒤쳐지기 시작하면 해당 값을 늘려야 할 수도 있습니다. 복제에 테이블 수가 많은 경우 초기 설정으로 커서를 15개로 설정하는 것이 좋습니다.

 

기본값: 커서 5개

유효한 값의 범위: 양의 정수

적용 시기: Read가 재시작될 때

SP_ORD_DATE_MSG

Read 프로세스가 유효하지 않은 날짜 컬럼을 감지하면 Event 로그 및 Read 로그에 경고 메시지를 표시하도록 이 매개변수를 설정할 수 있습니다. 0으로 설정하면 매개변수가 비활성화되고, 1로 설정하면 활성화됩니다. Read에서 생성된 오류 메시지는 다음과 같습니다.

An oerr#1801 has occurred on record with rowid rowid, on object object_id. Rec skipped. It is usually caused by invalid column data of type DATE. Creating a unique index that doesn't include column of type DATE and reactivating same configuration may solve the problem.

 

기본값: 0(경고 메시지를 표시하지 않음)

유효한 값의 범위: 0 또는 1(플래그)

적용 시기: 즉시

SP_ORD_DELAY_RECORDS

Read 프로세스는 레코드를 일괄 처리합니다. 일괄 처리 크기는 Capture 큐의 레코드 수에 따라 달라집니다. 레코드 수가 많은 경우 Read는 이 매개변수의 값을 무시하고 배치는 가능한 한 작게 유지됩니다. Read가 Capture와 보조를 맞추는 경우 일괄 처리 크기는 대략 이 매개변수로 설정한 값입니다.

SharePlex가 이벤트 로그에 rollback segment too old 메시지를 생성하는 경우 이 매개변수를 낮게 설정하십시오. 이 매개변수는 데이터를 더 빠르게 전달하도록 SharePlex에 지시합니다. 이 매개변수는 최소 지연 시간만 허용될 수 있는 경우에 사용됩니다.

중요: 레코드 수를 줄이면 SharePlex가 수행해야 하는 I/O가 증가하여 시스템 오버헤드가 증가하므로 이 매개변수를 주의해서 사용하십시오. 또한 SharePlex 프로세스 간의 원활한 상호작용에 부정적인 영향을 미칠 수도 있습니다.

 

기본값: 레코드 200개

유효한 값의 범위: 양의 정수

적용 시기: 즉시

SP_ORD_FIRST_FIND

이 매개변수는 Read 프로세스가 컬럼 조건을 확인하여 복제된 행 변경 사항이 이를 충족하는지 여부를 결정하는 방법을 제어합니다.

  • 기본값 1에서 행 변경이 컬럼 조건을 충족하는 경우 SharePlex는 해당 행 변경이 컬럼 조건도 충족하는지 확인하기 위해 다른 컬럼 조건을 확인하지 않습니다.
  • 값이 0이면 SharePlex는 컬럼 조건이 충족되는 모든 타겟 시스템으로 데이터를 보냅니다.

수평 파티셔닝에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.

 

기본값: 1(설정 켜짐)

유효한 값의 범위: 0 또는 1(플래그)

적용 시기: Read가 재시작될 때

SP_ORD_HP_HASH

이 매개변수는 수평 파티셔닝에 사용되는 해시 테이블의 슬롯 수를 제어합니다. 기본적으로 이 매개변수는 메모리 사용량을 최소화하기 위해 16개의 슬롯으로 설정됩니다(사용량은 삽입이 포함된 모든 트랜잭션에 대한 슬롯 수 x 32바이트임). 사용자 시스템이 수평으로 파티셔닝된 테이블에서 업데이트(동일한 트랜잭션에서)에 이어 많은 삽입 작업을 수행하는 경우 SharePlex는 이 해시 테이블을 많이 사용하므로 성능을 위해 이 값을 늘려야 할 수 있습니다. 또한 사용자 시스템에 수평 파티셔닝이 있는 테이블에 삽입이 포함된 긴 트랜잭션이 많이 있는 경우 이 매개변수의 값을 늘려야 할 수도 있습니다.

 

기본값: 슬롯 16개

유효한 값의 범위: 양의 정수

적용 시기: Read가 재시작될 때

SP_ORD_HP_IN_SYNC

이 매개변수는 컬럼 조건의 열 값이 변경되어 행이 더 이상 조건을 충족하지 않는 경우 데이터가 제대로 복제되도록 하기 위해 수평으로 파티셔닝된 복제에 사용됩니다.

SharePlex를 사용하면 다음 사항을 자동으로 수정할 수 있습니다.

  • 행이 해당 행에 대해 생성된 조건과는 다른 컬럼 조건을 충족하게 하여 변경 사항을 다른 위치로 보내는 UPDATE 작업. 예를 들어 region 컬럼의 값을 WEST로 변경하는 컬럼 조건이 region=East인 행에 대한 UPDATE 작업이 있습니다. 해당 행에 대한 원래 INSERT 문이 원래 위치(동부 지역)에 복제되어 Post가 업데이트를 시도할 때 행이 새 위치(서부 지역)에 존재하지 않기 때문에 이러한 작업은 실패합니다.
  • 복제되지 않아야 하는 경우 행이 컬럼 조건을 충족하고 복제되도록 하는 UPDATE 작업. region 컬럼이 HEADQUARTERS 값(행이 복제되지 않음)에서 WEST 값으로 업데이트되는 경우를 예로 들 수 있습니다. 해당 행(본사 시스템으로)에 대한 원래의 INSERT 문이 서부 지역 시스템에 복제되지 않았기 때문에 이러한 작업은 실패하게 됩니다. 따라서 Post가 업데이트를 수행할 수 없습니다.

  • 행이 더 이상 컬럼 조건을 충족하지 못하는 UPDATE 작업. region 컬럼이 WEST 값에서 HEADQUARTERS 값으로 업데이트되는 경우를 예로 들 수 있습니다. 원래의 INSERT 문은 서부 지역의 시스템에 복제되었지만 새 값이 컬럼 조건을 충족하지 않기 때문에 새 값에 대한 업데이트가 복제되지 않습니다(본사 데이터는 공유되지 않음). 이제 행이 동기화 중단 상태이지만 오류는 없습니다.

이 매개변수가 활성화되면 SharePlex는 UPDATE로 인해 이전 조건이 발생한 행을 자동으로 수정합니다. SharePlex는 UPDATE를 DELETE로 변환하고 필요한 경우 INSERT로 변환합니다.

UPDATE 문(일반적으로 변경된 컬럼과 키만 사용함)을 INSERT 문으로 변환하려면 SharePlex에 모든 컬럼에 대한 값이 필요합니다. SP_ORD_HP_IN_SYNC를 활성화하면 수평으로 파티셔닝된 복제를 사용하여 테이블에 대한 UPDATE가 있을 때 행의 모든 컬럼을 Post 프로세스로 보내도록 SharePlex에 지시하므로 INSERT가 구성될 수 있습니다.

구성을 활성화하기 전에 소스 시스템에서 이 매개변수를 설정합니다. 복제가 활성화된 경우 매개변수를 설정한 다음, SharePlex가 객체 캐시를 다시 빌드할 수 있도록 구성을 재활성화합니다.

수평으로 파티셔닝된 복제를 사용하는 테이블에 대한 컬럼 조건의 컬럼이 절대 변경되지 않는다는 것을 알고 있는 경우, 이 매개변수를 사용하면 처리 오버헤드가 발생하므로 이 매개변수를 0으로 설정해 두십시오.

이 매개변수는 두 매개변수의 동작을 재정의하므로 SP_OCT_REDUCED_KEY 및 SP_OPO_REDUCED_KEY [값: 1 또는 2]와 호환되지 않습니다.

 

기본값: 0(설정 꺼짐)

유효한 값의 범위: 0 또는 1(플래그)

적용 시기: Read가 재시작될 때

SP_ORD_LDA_ARRAY_SIZE

이 매개변수는 읽기 일관성을 위해 데이터베이스에 대한 로그인 수를 제어합니다. Read 프로세스 속도가 느려지면 이 매개변수의 값을 늘려보십시오. 최대 설정은 init_ora 파일의 MAX_PROCESSES 매개변수에 의해 결정됩니다.

 

기본값: 로그인 5번

유효한 값의 범위: 양의 정수

적용 시기: Read가 재시작될 때

SP_ORD_ONELINE_DEBUG

이 매개변수는 Read 프로세스에 대한 온라인 디버그 기능을 제어합니다.

온라인 디버그 기능을 사용하면 대량의 시스템 리소스를 소비하지 않고도 동기화 중단 오류에 대한 디버깅을 수행할 수 있습니다. 온라인 디버그는 데이터 스트림에서 동기화 중단 상태가 발생한 위치를 감지하기 위해 한 줄 정도의 정보를 기록합니다. 온라인 디버그가 문제를 일으키는 프로세스를 식별하면 해당 프로세스에 대해 정기적인 디버깅을 활성화할 수 있습니다.

이 매개변수를 활성화하려면 디버깅할 객체를 해당 객체 ID로 지정하고 각 객체를 쉼표로 구분합니다. 예는 다음과 같습니다.

sp_ctrl> set sp_ord_oneline_debug 230230, 351626

다음 항목이 기록됩니다.

  • 작업 상태는 Dispatch(큐에서 읽기), processMessage(SQL 코드 처리) 또는 ExecSQL(타겟에 적용)일 수 있습니다.
  • SharePlex에서 사용하는 트랜잭션 식별자
  • 영향을 받은 DML 또는 DDL 작업 유형
  • 타겟 테이블의 소유자 및 이름
  • 영향을 받은 소스 테이블의 객체 ID
  • 영향을 받은 행의 행 식별자 (Oracle rowid)
  • 작업이 발생한 시간(Oracle)
  • 영향을 받은 작업의 로그 내 로그 시퀀스 번호 및 오프셋
  • 트랜잭션에 대한 Oracle SCN
  • 중복 작업을 방지하는 내부 SharePlex 코드
  • 라우팅 정보

참고: 행이 여러 타겟으로 라우팅되는 경우 각 타겟에 대해 이 정보가 반복됩니다.

기본값: 비활성화

유효한 값의 범위: 객체 ID별로 나열되고 쉼표로 구분되는 객체 목록을 형성하는 문자열입니다.

적용 시기: 즉시

SP_ORD_MSGS_CK_FREQ 및 SP_ORD_RCM_SKIP_RATIO

이러한 매개변수는 함께 작동하므로 그 중 하나가 기본값인 0으로 설정되고 다른 매개변수는 0이 아닌 숫자로 설정되면 작동하지 않습니다. 두 매개변수 모두 실행된 쿼리당 디스크 가져오기 비율을 확인하여 Read 프로세스에서 쿼리를 처리하는 데 너무 많은 시간이 소요되고 있음을 감지하는 자동화 프로세스를 지원합니다. Read가 이 결정을 내리면 기존의 읽기 일관성 뷰를 제거하고 새 뷰로 대체합니다.

ORD_MSGS_CK_FREQ 매개변수는 Read 프로세스가 비율을 초과했는지 확인하는 빈도입니다. 예를 들어 이 매개변수를 100으로 설정하면 Read 프로세스는 100개의 쿼리마다 비율이 계속 양호한지 확인합니다. 권장 설정은 쿼리 1,000개입니다.

ORD_RCM_SKIP_RATIO 매개변수는 도달 시 읽기 일관성 뷰가 대체되는 숫자(실행된 쿼리에 대한 디스크 가져오기 비율)를 지정합니다. 가장 중요한 설정은 1입니다. 이는 실행된 쿼리 1개당 하나의 디스크 가져오기를 의미합니다. 권장 설정은 2입니다.

이러한 매개변수의 설정을 끄려면 해당 매개변수 중 하나를 0으로 설정합니다. 그러면 다른 매개변수가 비활성화됩니다.

 

기본값:

SP_ORD_MSGS_CK_FREQ: 10,000

SP_ORD_RCM_SKIP_RATIO: 2

유효한 값의 범위:

SP_ORD_MSGS_CK_FREQ: 0~100,000

SP_ORD_RCM_SKIP_RATIO: 0~1,000(5보다 크게 설정하지 않는 것이 좋음)

적용 시기: 프로세스를 재시작할 때

SP_ORD_RMSG_LIMIT

이 매개변수는 Read 프로세스가 Capture 큐에서 메시지를 읽고 키 값을 결정할 때 수행하는 체크포인트 빈도를 제어합니다. 체크포인트는 Capture 큐를 캐시 파일에 저장하고, 나가는 큐 메시지를 커밋하고(Export 큐로 전달됨) Export 큐에서 이미 수신한 Capture 큐의 보유 레코드에 대해 읽기 해제(삭제)를 수행합니다.

이 매개변수의 값이 높을수록 체크포인트가 트리거되기 전에 더 많은 레코드가 메모리에 보관됩니다. 값이 매우 높으면 시스템의 I/O가 줄어들고 처리 속도가 빨라집니다. 하지만 메모리 사용량이 늘어나고 복구 시간이 길어지면 예상치 못한 문제로 인해 Read 프로세스가 중지됩니다. 값이 낮으면 I/O가 증가하여 복구 속도는 증가하지만 처리 속도는 감소합니다.

기본값인 100,000개의 레코드는 속도 요구와 메모리 보존 및 프로세스 복구 간의 합리적인 균형을 설정해야 하지만 처리 요구 사항에 맞게 이 매개변수를 조정할 수 있습니다. 조정 옵션의 범위는 모든 레코드 후 체크포인트부터 시스템과 메모리가 수용할 수 있는 만큼의 레코드를 보유하는 것까지 다양합니다.

 

기본값: 레코드 100,000개

유효한 값의 범위: 시스템 제한 사항 내의 양의 정수

적용 시기: 즉시

SP_ORD_ROLLBACK_TXNS_MAX

이 매개변수는 트랜잭션이 완전히 롤백되었음을 나타내는 트랜잭션 캐시에 판독기가 보관할 항목 수를 제한합니다.

 

기본값: 레코드 5,000개

유효한 값의 범위: 시스템 제한 사항 내의 양의 정수

적용 시기: 프로세스를 재시작할 때

SP_ORD_SEND_DDL_TO_FIRST

이 매개변수는 여러 Post 큐가 사용 중이고 복제 구성(SP_OCT_REPLICATE_ALL_DDL=1)에 없는 객체에 대해 DDL을 복제하는 경우 Post 성능을 향상시키는 데 도움이 됩니다.

이 매개변수는 복제 구성에 없는 객체에 대한 DDL을 특정 Post 큐로 보내도록 Import에 지시합니다. 일반적으로 복제 구성의 객체와 관련되지 않은 DDL은 사용 가능한 모든 큐로 보낼 수 있습니다. 이 DDL의 양이 많으면 복제 중인 객체의 DML을 차단하여 데이터 지연 시간이 증가할 수 있습니다.

이 DDL은 복제 중인 객체와 연관되어 있지 않기 때문에 해당 객체와 관련된 어떤 순서로도 적용될 필요가 없습니다. 전용 큐를 통해 독립적으로 라우팅하면 복제된 데이터 및 관련 DDL을 처리하기 위해 다른 큐를 확보할 수 있습니다.

이 매개변수를 활성화하는 경우 복제되지 않는 객체에 대한 DDL을 처리할 Post 큐를 지정해야 합니다. 이 사양은 다음과 같이 구성 파일의 "Datasource:o.SID" 줄 뒤 첫 번째 줄에 배치되어야 합니다(!는 실제 객체 사양을 대체하는 자리 표시자임).

Datasource: o.dbprod

#Route for non-replication DDL

! sysmm:queddl1@o.dbprep

#The rest of the configuration entries

SCOTT.EMP SCOTT.EMP sysmm:que1@o.dbrep

SCOTT.FOO SCOTT.FOO sysmm:que2@o.dbrep

이러한 방식으로 명시적으로 지정하지 않으면 DDL은 나열된 첫 번째 경로로 라우팅됩니다. 예를 들어 다음 구성 파일에서 복제 중인 객체와 연결되지 않은 모든 DDL은 sysmm:que1@o.dbrep로 전송됩니다.

Datasource: o.dbprod

SCOTT.EMP SCOTT.EMP sysmm:que1@o.dbrep

SCOTT.FOO SCOTT.FOO sysmm:que2@o.dbrep

 

기본값: 1(설정 켜짐)

유효한 값의 범위: 0 또는 1(플래그)

적용 시기: 즉시