이러한 매개변수는 Open Target(non-Oracle) 타겟에 데이터를 적용할 때 SharePlex Post 프로세스에서 사용됩니다.

SP_OPX_BATCH_ENABLE

동일한 작업의 여러 트랜잭션을 적용할 때 성능을 최대화하기 위해 Post 프로세스에서는 트랜잭션을 그룹화하고 배치로 적용할 수 있습니다. SP_OPX_BATCH_ENABLE 매개변수는 이 기능을 제어하며 기본적으로 활성화됩니다. SP_OPX_MAX_BATCH_MBYTES는 배치의 최대 크기를 제어합니다.

기본값: 1(활성화)

유효한 값의 범위: 0 또는 1

적용 시기: 즉시

SP_OPX_COMMIT_REDUCE_MSGS

Post Enhanced Performance 기능의 커밋 감소 구성 요소에 대한 임계값을 설정합니다. 커밋 감소 기능을 사용하면 소규모 트랜잭션을 대규모 트랜잭션으로 결합하도록 Post를 구성할 수 있습니다. 이렇게 하면 처리해야 하는 커밋 및 승인 수가 줄어듭니다. 트랜잭션이 작을수록 성능 향상 수준이 커집니다.

지정된 메시지 수에 도달하면 Post가 커밋을 실행합니다. 트랜잭션 경계가 이 메시지 범위 내에 있는 트랜잭션의 커밋은 건너뛰고 해당 트랜잭션은 모두 하나의 트랜잭션으로 커밋됩니다. 커밋 감소는 기본적으로 활성화되어 있습니다. 커밋 감소를 비활성화하려면 이 매개변수를 값 1로 설정합니다.

매개변수 설정은 절대적인 임계값이 아닙니다. SharePlex는 서로 다른 결합된 트랜잭션 간에 트랜잭션을 분할하지 않습니다. 따라서 Post는 모든 작업과 그룹의 마지막 트랜잭션 커밋을 포함하기 위해 해당 임계값을 초과해야 할 수 있습니다.

 

기본값: 메시지 100개

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

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

SP_OPX_CONT_ON_ERR

이 매개변수는 특정 ODBC 오류가 발생할 때 Post가 중지되는지 여부를 제어합니다. 이 플래그가 기본값인 0으로 설정되면 모든 ODBC 오류에 대해 Post가 중지됩니다. 특정 오류를 무시하고 처리를 계속하도록 Post를 구성하려면 데이터베이스에 따라 다음 파일 중 하나에 해당 오류를 나열한 다음, SP_OPX_CONT_ON_ERR을 1로 설정합니다.

hanamsglist

mysqlmsglist

postgresmsglist

sqlservermsglist

sybasemsglist

tdmsglist

이 파일은 variable-data 디렉토리의 data 하위 디렉토리에 있습니다. 이 파일을 구성하는 방법에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.

무시한 각 오류에 대해 Post는 SharePlex errlog.sql 파일에 오류를 기록한 후 게시를 재개합니다. Post가 파일에 지정되지 않은 오류를 수신하면 프로세스가 중지됩니다.

 

기본값: 0(모든 오류 발생 시 중지)

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

적용 시기: 즉시

SP_OPX_DISABLE_OBJECT_NUM

이 매개변수는 Post가 소스 테이블의 객체 ID를 기반으로 복제된 DML 및 DDL 작업을 타겟에 게시하는 것을 방지합니다. 소스 테이블의 데이터가 유효하지 않거나 손상된 경우, 소스 테이블에 타겟에서 지원되지 않는 데이터 유형이 포함된 경우 또는 테이블에 대한 작업이 타겟 데이터베이스 반영되기를 원하지 않는 기타 이유로 이 매개변수를 설정할 수 있습니다.

하나 이상의 테이블에 대해 이 매개변수를 설정할 수 있습니다. 이는 데이터를 재동기화하고 구성 파일을 다시 활성화할 시간이 있을 때까지 소스 테이블의 타겟 테이블에 대한 추가 복제 활동을 방지합니다. Post 프로세스는 Post 큐에서 이러한 테이블에 대해 복제된 모든 메시지를 삭제하며 메시지는 큐에 누적되지 않습니다.

매개변수를 신중하게 사용하십시오. 매개변수가 활성화되고 소스 테이블에 대해 DDL 또는 DML이 실행되면 변경 사항이 게시되지 않으므로 타겟 데이터가 최신 상태가 되지 않습니다. 복제 구성 외부의 다른 테이블에 있는 외래 키와 같이 테이블에 종속성이 있는 경우 게시를 비활성화하면 종속성이 충족되지 않습니다.

이 매개변수는 기본적으로 비활성화되어 있습니다. 이를 활성화하려면 타겟 시스템에서 다음 명령을 실행합니다. 여기서 표시된 숫자는 게시에서 제외할 소스 테이블의 객체 ID입니다.

sp_ctrl(sysB)> set param SP_OPX_DISABLE_OBJECT_NUM 12345,67890

각 객체 ID를 쉼표로 구분하고 그 사이에 공백을 두지 마십시오. 항목 사이에 공백을 사용하려면 다음 예와 같이 전체 목록을 따옴표로 묶습니다.

sp_ctrl(sysB)> set param SP_OPX_DISABLE_OBJECT_NUM "498438, 1000, 497109"

잘못된 객체 ID는 무시됩니다.

타겟 테이블에 다시 게시를 시작할 준비가 되면 SP_OPX_DISABLE_OBJECT_NUM을 0으로 설정합니다.

 

기본값: 0(설정 꺼짐)

유효한 값의 범위: 쉼표로 구분된 유효한 객체 ID 목록

적용 시기: 즉시

SP_OPX_MAX_BATCH_MBYTES

이 매개변수는 일괄 처리된 DML 작업의 최대 크기를 제어합니다. SQL 작업을 타겟에 적용할 때 성능을 최대화하기 위해 Post 프로세스는 더 작은 복제 작업을 하나의 더 큰 일괄 처리 작업으로 그룹화합니다. 작업이 동일하고 SQL이 유사한 경우 Post는 복제 작업을 그룹화합니다. Post는 SP_OPX_MAX_BATCH_MBYTES에 지정된 배치 크기에 도달할 때까지 배치에 작업(일치하는 기준 포함)을 계속 추가합니다.

SP_OPX_BATCH_ENABLE 매개변수는 이 기능을 활성화합니다(기본적으로 활성화됨).

기본값: 1MB

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

적용 시기: 즉시

SP_OPX_MSGS_IN_MEMORY

이 매개변수는 Post 프로세스에서 사용하는 메모리 양을 제어합니다. Open Target Post 프로세스는 내부 큐를 사용하여 트랜잭션 데이터를 임시로 저장합니다. 이 매개변수는 이 내부 큐가 사용하는 최대 메모리 양을 제어합니다.

 

기본값: 기본 메시지 5,000개

유효한 값의 범위: 정수, 최대값 없음

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

SP_OPX_NLS_CONVERSION

이 매개변수는 Oracle 소스와 Oracle이 아닌 타겟 간의 캐릭터셋 변환을 제어합니다.

Open Target(non-Oracle) 타겟에 복제할 때 SharePlex는 Oracle 유니코드 캐릭터셋 및 US7ASCII 캐릭터셋으로부터의 복제를 지원합니다. SharePlex는 유니코드 캐릭터셋으로 Open Target에 데이터를 게시하므로 소스 데이터가 유니코드 또는 US7ASCII인 경우 타겟에서 변환이 필요하지 않습니다.

그러나 다음 사항이 true인 경우 타겟에서 변환이 필요합니다.

  • 소스 데이터의 캐릭터셋이 Oracle 유니코드 또는 US7ASCII가 아닌 경우, 타겟에 게시하기 위해 유니코드로 변환을 수행하려면 타겟에 Oracle 클라이언트를 설치해야 합니다.
  • 데이터가 유니코드 이외의 캐릭터셋으로 타겟 데이터베이스에 게시되어야 하는 경우 타겟에 Oracle 클라이언트를 설치하여 변환을 수행하고 타겟 명령을 사용하여 Post가 사용할 타겟 캐릭터셋을 식별해야 합니다.
  • LOB 데이터를 복제하는 경우 소스 캐릭터셋이 무엇인지에 관계없이 변환이 필요합니다.

Linux에서 Oracle 클라이언트를 사용하여 변환을 수행하려면 다음을 수행합니다.

  1. 타겟 시스템에 Oracle 관리자 클라이언트를 설치합니다. 클라이언트는 관리자 설치 유형이어야 합니다. Instant Client 및 Runtime 설치 유형은 지원되지 않습니다.
  2. ORACLE_HOME을 클라이언트 설치로 설정합니다. ORACLE_SID를 별칭이나 존재하지 않는 SID로 설정합니다. SharePlex는 이를 사용하지 않으므로 데이터베이스가 실행 중일 필요가 없습니다.
  3. 운영 체제에 맞는 Linux/Unix 설치 프로그램을 사용하여 SharePlex 합니다.
  4. SP_OPX_NLS_CONVERSION 매개변수가 기본값인 1로 설정되어 있어야 합니다.

변환 없이 유니코드 및 US7ASCII 데이터를 적용하려면 다음을 수행합니다.

소스 데이터가 유니코드 또는 US7ASCII이고 LOB 데이터를 복제하지 않는 경우 변환이나 Oracle 클라이언트가 필요하지 않습니다. SP_OPX_NLS_CONVERSION 매개변수를 0으로 설정하여 변환을 비활성화한 후 실행 중인 경우 Post를 재시작합니다.

 

기본값: 1

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

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

SP_OPX_ONELINE_DEBUG

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

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

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

예는 다음과 같습니다.

sp_ctrl> set sp_opo_oneline_debug 230230, 351626

다음 항목이 기록됩니다.

  • 작업 상태는 프로세스(큐에서 읽기), 건너뛰기(커밋 감소 기능이 활성화된 경우 커밋) 또는 적용됨(타겟에 적용)일 수 있습니다.
  • SharePlex에서 사용하는 트랜잭션 식별자
  • 영향을 받은 DML 또는 DDL 작업 유형
  • 영향을 받은 소스 테이블의 객체 ID
  • 영향을 받은 행의 행 식별자 (Oracle rowid)
  • 작업이 발생한 시간(Oracle)
  • 영향을 받은 작업의 로그 내 로그 시퀀스 번호 및 오프셋
  • 트랜잭션에 대한 Oracle SCN
  • 중복 작업을 방지하는 내부 SharePlex 코드

 

기본값: 비활성화

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

적용 시기: 즉시

SP_OPX_ONELINE_DEBUG_COLUMNS

이 매개변수는 SP_OPX_ONELINE_DEBUG가 활성화될 때 컬럼 값이 기록되는지 여부를 제어합니다. 이는 동기화 중단 상태를 진단하는 데 유용합니다. 온라인 디버그가 활성화될 때 지정된 객체에 대한 컬럼 값을 기록하려면 SP_OPX_ONELINE_DEBUG_COLUMNS를 1로 설정합니다.

기본값: 0(비활성화)

유효한 값의 범위: 0 또는 1

적용 시기: 즉시

SP_OPX_OUT_OF_SYNC_SUSPEND

이 매개변수는 다음을 기반으로 동기화 중단 상태가 발생할 때 SharePlex가 수행하는 작업을 제어합니다.

  • INSERT: 행이 이미 존재하므로 고유 제약 조건 위반 오류가 발생합니다.
  • UPDATE 및 DELETE: 행이 데이터베이스에 없습니다.

값 0(기본값)

트랜잭션에 동기화 중단 작업이 포함된 경우 기본 게시 동작은 트랜잭션의 다른 유효한 작업을 계속 처리하여 지연 시간을 최소화하고 타겟을 가능한 한 최신 상태로 유지하는 것입니다. 지연 시간은 소스 트랜잭션이 발생하는 시점과 타겟에 적용되는 시점 사이의 시간입니다. 비정상적으로 높은 트랜잭션 볼륨이나 네트워크 트래픽 중단 등 다양한 요인이 복제 지연 시간에 영향을 미칩니다.

Post는 동기화 중단 작업에 대한 SQL 문과 데이터를 ID_errlog.sql 로그 파일에 기록합니다. 여기서, ID는 데이터베이스 식별자입니다. 이 파일은 타겟 시스템에 있는 variable-data 디렉토리의 log 하위 디렉토리에 있습니다.

값 1

값이 1이면 동기화 중단 상태가 발생할 때 게시를 중지하도록 Post에 지시합니다. Post는 동기화 중단 작업에 대한 SQL 문 및 데이터를 ID_errlog.sql 로그 파일에 기록한 후 중지합니다.

이 매개변수 값을 1로 설정한 경우 복제 프로세스의 상태를 자주 확인하십시오. Post를 중지하면 소스 데이터베이스와 타겟 데이터베이스 사이에 지연 시간이 발생하고 복제 큐에 데이터가 누적되어 사용 가능한 디스크 공간을 초과할 수 있습니다. SharePlex는 복제 상태를 확인하기 위한 여러 sp_ctrl 명령을 제공하고 무인 SharePlex 모니터링을 위한 도구를 제공합니다. SharePlex 모니터링 방법에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.

 

기본값: 0(동기화 중단 상태에서도 중지되지 않음)

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

적용 시기: 즉시

SP_OPX_READRELEASE_INTERVAL

Post가 transactional 스타일로 JMS 서버에 게시하도록 구성된 경우 이 매개변수를 사용합니다(target 명령의 session_transacted 속성의 지시에 따라 모든 메시지를 실행한 후가 아니라 간격을 두고 JMS 커밋 실행).

이 매개변수는 Post가 큐에서 트랜잭션 데이터를 제거하는 빈도인 읽기/해제 간격을 제어합니다.

 

기본값: 1,000

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

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

SP_OPX_REDUCED_KEY

이 매개변수는 Post WHERE 절의 내용을 제어합니다. Post는 WHERE 절을 사용하여 소스에서 복제된 UPDATE를 통해 변경되어야 하는 타겟의 행을 찾습니다. SharePlex 기능에 따라 Post WHERE 절에 사용되는 데이터가 더 많거나 적을 수도 있습니다.

  • 0으로 설정되면 이 매개변수는 Capture가 전송하는 모든 데이터의 WHERE 절을 구성하도록 Post에 지시합니다. Capture가 전송하는 데이터는 SP_CAP_REDUCED_KEY 매개변수의 설정에 따라 달라집니다. WHERE 절에 키 값과 LONG 또는 LOB 이외의 모든 컬럼이 포함되도록 하려면 두 매개변수를 모두 0으로 설정합니다.

    중요! 피어-투-피어 구성에서는 0으로 설정해야 합니다.

  • 1로 설정되면 이 매개변수는 키 값과 변경된 컬럼의 이전 값을 사용하여 WHERE 절을 빌드하도록 Post에 지시합니다. 이 설정을 사용하면 Post가 WHERE 절을 구성할 때 변경된 컬럼의 전후 비교를 수행할 수 있으므로 복제 성능과 타겟 데이터 무결성 간의 균형이 잘 맞습니다. 이 설정을 사용하려면 SP_CAP_REDUCED_KEY 매개변수를 0 또는 1로 설정해야 합니다. SharePlex가 이전 값과 이후 값을 사용하는 방법에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.
  • 2로 설정된 경우 이 매개변수는 키 컬럼만 있는 WHERE 절을 빌드하도록 Post에 지시합니다. 이 설정을 사용하면 게시 성능을 최대화할 수 있습니다. 이 설정에서는 변경된 컬럼의 전후 비교가 생략되기 때문에 프로세스나 사용자가 SharePlex를 제외한 타겟 데이터를 변경할 수 없도록 해야 합니다. 또한 compare 명령을 사용하여 정기적인 무결성 검증을 수행하는 것이 좋습니다.

    참고: 수평으로 파티셔닝된 복제에서 SP_OPX_REDUCED_KEY 매개변수를 2로 설정하면 Poster는 UPDATE 절에 추가된 컬럼의 이전 데이터와 키를 사용하여 WHERE 절을 준비합니다.

SP_CAP_REDUCED_KEY도 참조하십시오.

기본값: 0

유효한 값의 범위: 0, 1, 2

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

SP_OPX_SQL_CACHE_DISABLE

이 매개변수는 SQL 캐시 기능을 활성화하거나 비활성화합니다. 기본적으로 SQL 캐시는 설정이 켜져 있으며 이 매개변수는 0으로 설정됩니다. 1로 설정하면 SQL 캐시가 비활성화됩니다. 3으로 설정하면 일괄 작업에 대해 SQL 캐시가 비활성화되어 Post에서 사용하는 메모리 양이 줄어듭니다. (2로 설정하는 것은 불가능합니다.)

SQL 캐싱을 비활성화하면 SharePlex는 이벤트 로그에 SQL Cache disabled 메시지를 표시합니다.

SQL 캐시에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.

 

기본값: 0(설정 켜짐)

유효한 값의 범위: 0, 1 또는 3

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

SP_OPX_STOP_ON_DDL_ERR

이 매개변수는 DDL을 적용하는 중에 오류가 발생하는 경우 Post 프로세스를 중지할지 여부를 제어합니다. 기본값 1은 오류 발생 시 Post를 중지하도록 지시합니다. 오류는 일반적으로 DDL이 실행된 소스 구성 요소가 타겟 데이터베이스에 없음을 나타내며, 이는 후속 DML 변경도 실패할 가능성을 나타냅니다. Post를 중지하면 DML 장애를 방지하고 문제를 해결하여 데이터베이스 동기화를 유지할 수 있습니다.

 

기본값: 1(설정 켜짐)

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

적용 시기: 즉시

SP_OPX_THREADS

이 매개변수는 Post Enhanced Performance 기능의 트랜잭션 동시성 구성 요소를 제어합니다. 2 이상의 값으로 설정하면 Post는 지정된 스레드 수(동시 작업)로 실행됩니다.

이 매개변수는 SQL Server 및 PostgreSQL 데이터베이스를 지원합니다. 일반적으로 시스템 프로세서의 코어 수로 설정해야 합니다.

Post의 성능을 조정하는 방법에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.

 

기본값: 스레드 1개(비활성화)

유효한 값의 범위: Max_connection 값 미만

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

SP_OPX_TRUSTED_SOURCE

이 매개변수는 피어-투-피어 복제 환경에서 기본 데이터 세트로 간주되는 데이터를 포함하는 신뢰할 수 있는 소스 시스템을 지정합니다. 이 매개변수는 SharePlex에서 제공하는 준비된 충돌 해결 루틴에서 사용됩니다. SP_OPX_TRUSTED_SOURCE 매개변수는 두 서버 모두에서 동일한 값으로 설정되어야 합니다. 충돌 해결 및 피어-투-피어 복제에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.

기본값: 없음

유효한 값의 범위: SharePlex 복제 환경의 유효한 호스트 이름

적용 시기: Post 프로세스가 재시작될 때