이러한 매개변수는 Oracle 타겟에 데이터를 적용할 때 SharePlex Post 프로세스에서 사용됩니다.
SP_OPO_CHANGE_ID_START_VALUE
이 매개변수는 변경 내역 타겟에 포함될 수 있는 changeid 메타데이터 컬럼의 시작 값을 설정하며 target 명령으로 설정됩니다. Changeid는 레코드를 고유하게 식별하고 중복을 방지하기 위해 SharePlex에 의해 생성됩니다.
기본값: 0(설정 꺼짐)
유효한 값의 범위: 0~9223372036854775807
적용 시기: Post가 재시작될 때
SP_OPO_COMMIT_REDUCE_MSGS
Post Enhanced Performance 기능의 커밋 감소 구성 요소에 대한 임계값을 설정합니다. 커밋 감소 기능을 사용하면 소규모 트랜잭션을 대규모 트랜잭션으로 결합하도록 Post를 구성할 수 있습니다. 이렇게 하면 처리해야 하는 커밋 및 승인 수가 줄어듭니다. 트랜잭션이 작을수록 성능 향상 수준이 커집니다.
지정된 메시지 수에 도달하면 Post가 커밋을 실행합니다. 트랜잭션 경계가 이 메시지 범위 내에 있는 트랜잭션의 커밋은 건너뛰고 해당 트랜잭션은 모두 하나의 트랜잭션으로 커밋됩니다. 커밋 감소는 기본적으로 활성화되어 있습니다. 커밋 감소를 비활성화하려면 이 매개변수를 값 1로 설정합니다.
매개변수 설정은 절대적인 임계값이 아닙니다. SharePlex는 서로 다른 결합된 트랜잭션 간에 트랜잭션을 분할하지 않습니다. 따라서 Post는 모든 작업과 그룹의 마지막 트랜잭션 커밋을 포함하기 위해 해당 임계값을 초과해야 할 수 있습니다.
기본값: 메시지 100개
유효한 값의 범위: 1 또는 양의 정수
적용 시기: Post가 재시작될 때
SP_OPO_CONNECTION_POOL
이 매개변수는 Post가 연결 풀을 사용하는 방법을 제어합니다.
연결 풀링이 활성화되고(기본값) 하위 큐에 Oracle에 대한 연결이 필요한 경우 커밋된 하위 큐를 찾으려고 시도합니다. 하위 큐 하나를 찾으면 Oracle에 대한 새 연결을 여는 대신 해당 연결을 사용합니다. 이를 통해 Post는 Oracle에 대한 더 적은 연결로 작동할 수 있습니다.
연결 풀링이 없으면 각 하위 큐는 Oracle에 대한 별도의 연결을 가지며 하위 큐가 커밋될 때까지 해당 연결을 몇 초(SP_OPO_IDLE_LOGOUT 매개변수로 결정) 동안 유지합니다.
이 매개변수를 설정하려면 다음을 수행합니다.
- SharePlex가 많은 수의 하위 큐와 함께 실행되는 경우 연결 풀링을 활성화하는 것이 도움이 될 수 있습니다.
- SharePlex가 빠르게 재사용되는 적은 수(20개 미만)의 하위 큐로 실행 중인 경우 풀링을 비활성화하고 연결을 이동하지 않는 것이 더 효율적일 수 있습니다.
기본값: 1(활성화)
유효한 값의 범위: 0 또는 1(플래그)
적용 시기: Post가 재시작될 때
SP_OPO_CONT_ON_ERR
이 매개변수는 수정 가능한 오류가 발생할 때 Post를 중지할지 여부를 제어합니다. 이 플래그가 기본값인 0으로 설정되면 모든 Oracle 및 SharePlex 오류에 대해 Post가 중지됩니다. 특정 SharePlex 또는 Oracle 오류가 있음에도 Post가 계속 게시를 수행하도록 하려면 variable-data 디렉토리의 data 하위 디렉토리에 있는 oramsglist 파일에 해당 오류를 나열하고 이 매개변수를 1로 설정합니다. 이 매개변수가 2로 설정되면 Post는 테이블 오류를 다른 오류와 동일하게 처리하며, 해당 오류가 oramsglist 파일에 나열되지 않는 한 중지합니다.
다음과 같은 오류가 있더라도 Post는 항상 매개변수 설정에 관계없이 계속 게시됩니다.
Post가 중지되지 않는 기본 오류
- 유니크 키 위반
- 작업이 중단됨
- 데이터가 없음
- 해당 테이블이 없음
- 유효하지 않은 번호
- 숫자 형식이 아닌 날짜
- 유효하지 않은 rowid
- 유효하지 않은 16진수
- not-null을 null로 업데이트할 수 없음
- 연도가 -4713에서 +9999 사이여야 함
- 체크 제약 조건을 위반함
- 패킷 기록기 장애*
- 시퀀스를 찾을 수 없음
- Oracle 내부 오류
*패킷 기록기 장애 및 nowait로 인해 사용량이 많은 리소스는 SP_OPO_RETRIES_MAX 매개변수(기본값 10)를 기반으로 재시도한 후 Poster가 종료됩니다.
오류가 발생해도 계속 수행되도록 Post를 구성하는 방법에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.
기본값: 0(모든 오류 발생 시 중지)
유효한 값의 범위: 0, 1, 2(플래그)
적용 시기: 즉시
SP_OPO_DEPENDENCY_CHECK
이 매개변수는 다음 기능을 제어합니다.
- Post Enhanced Performance 기능의 트랜잭션 동시성 구성 요소. Post의 성능을 조정하는 방법에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.
- 타겟 테이블에서 활성화된 ON DELETE CASCADE 제약 조건의 Post 처리(복제된 상위 삭제를 적용하고 복제된 단계화 삭제 무시)
이러한 기능을 지원하려면 다음을 수행합니다.
-
SP_OPO_DEPENDENCY_CHECK를 적절한 값으로 설정합니다.
- 커밋 감소 및 트랜잭션 동시성을 활성화하려면 이 매개변수를 1로 설정합니다. 이 기능을 사용하려면 소스에서 기본 키와 유니크 키에 대한 추가 로깅을 활성화해야 합니다.
- ON DELETE CASCADE를 활성화하려면 이 매개변수를 2로 설정합니다.
Note: ON DELETE CASCADE 기능은 2로 설정하면 활성화되는 Post Enhanced Performance 기능에 따라 달라집니다. SP_OPO_DEPENDENCY_CHECK 설정 외에도 소스에서 기본 키, 유니크 인덱스 컬럼 및 외래 키 컬럼의 로깅을 활성화해야 합니다.
- SP_OCT_REDUCED_KEY 매개변수를 0으로 설정하면 Post에서 사용할 수 있도록 필요한 모든 데이터를 타겟으로 보냅니다. SP_OCT_REDUCED_KEY 를 참조하십시오.
- SP_OPO_REDUCED_KEY 매개변수를 0, 1(기본값) 또는 2로 설정합니다. SP_OPO_REDUCED_KEY를 참조하십시오.
기본값: 0(설정 꺼짐)
유효한 값의 범위: 0, 1, 2(플래그)
적용 시기: Post가 재시작될 때
SP_OPO_DEPENDENCY_SIZE
이 매개변수는 Post Enhanced Performance 기능의 종속성 검사에 사용되는 메모리 크기를 설정합니다. 기본값이면 충분하지만 필요 시 늘릴 수 있습니다.
기본값: 7019
유효한 값의 범위: 유효한 메모리 값
적용 시기: Post가 재시작될 때
SP_OPO_DISABLE_OBJECT_NUM
이 매개변수는 Post가 소스 테이블의 객체 ID를 기반으로 복제된 DML 및 DDL 작업을 타겟에 게시하는 것을 방지합니다. 소스 테이블의 데이터가 유효하지 않거나 손상된 경우, 소스 테이블에 타겟에서 지원되지 않는 데이터 유형이 포함된 경우 또는 테이블에 대한 작업이 타겟 데이터베이스 반영되기를 원하지 않는 기타 이유로 이 매개변수를 설정할 수 있습니다.
하나 이상의 테이블에 대해 이 매개변수를 설정할 수 있습니다. 이는 데이터를 재동기화하고 구성 파일을 다시 활성화할 시간이 있을 때까지 소스 테이블의 타겟 테이블에 대한 추가 복제 활동을 방지합니다. Post 프로세스는 Post 큐에서 이러한 테이블에 대해 복제된 모든 메시지를 삭제하며 메시지는 큐에 누적되지 않습니다.
매개변수를 신중하게 사용하십시오. 매개변수가 활성화되고 소스 테이블에 대해 DDL 또는 DML이 실행되면 변경 사항이 게시되지 않으므로 타겟 데이터가 최신 상태가 되지 않습니다. 복제 구성 외부의 다른 테이블에 있는 외래 키와 같이 테이블에 종속성이 있는 경우 게시를 비활성화하면 종속성이 충족되지 않습니다.
이 매개변수는 기본적으로 비활성화되어 있습니다. 이를 활성화하려면 타겟 시스템에서 다음 명령을 실행합니다. 여기서 표시된 숫자는 게시에서 제외할 소스 테이블의 객체 ID입니다.
sp_ctrl(sysB)> set param SP_OPO_DISABLE_OBJECT_NUM 12345,67890
각 객체 ID를 쉼표로 구분하고 그 사이에 공백을 두지 마십시오. 항목 사이에 공백을 사용하려면 다음 예와 같이 전체 목록을 따옴표로 묶습니다.
sp_ctrl(sysB)> set param SP_OPO_DISABLE_OBJECT_NUM "498438, 1000, 497109"
잘못된 객체 ID는 무시됩니다.
타겟 테이블에 다시 게시를 시작할 준비가 되면 SP_OPO_DISABLE_OBJECT_NUM을 0으로 설정합니다.
기본값: 0(설정 꺼짐)
유효한 값의 범위: 쉼표로 구분된 유효한 Oracle 객체 ID 목록
적용 시기: 즉시
SP_OPO_HINTS_LIMIT
이 매개변수는 힌트 파일에 나열될 수 있는 최대 힌트 수(테이블/인덱스 조합)를 제어합니다. 정의된 인덱스가 있는 테이블에서 Post가 전체 테이블 검사를 수행하는 경우에만 힌트를 사용합니다. 힌트를 많이 사용하면 Post 처리 성능이 저하될 수 있습니다. 힌트 기능에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.
기본값: 힌트 100개
유효한 값의 범위: 양의 정수
적용 시기: Post가 재시작될 때
SP_OPO_LOG_CONFLICT
이 매개변수를 사용하면 성공적인 충돌 해결 프로시저에 대한 정보를 SHAREPLEX_CONF_LOG 테이블에 기록할 수 있습니다. 이 매개변수는 SharePlex에서 제공하는 준비된 루틴에만 적용됩니다.
-
1로 설정하면 SHAREPLEX_CONF_LOG 테이블에 대한 충돌 해결 로깅이 활성화됩니다.
참고: 1로 설정하면 SHAREPLEX_CONF_LOG 테이블의 EXISTING_TIMESTAMP 및 TARGET_ROWID 컬럼이(기존 데이터가 교체되지 않은 경우) 업데이트되지 않습니다.
-
2로 설정하면 추가 메타데이터에 대한 Post 쿼리를 사용하여 SHAREPLEX_CONF_LOG 테이블에 충돌 해결을 기록할 수 있습니다.
LeastRecentRecord 또는 MostRecentRecord 준비 루틴을 사용하면 Post는 기존 레코드의 타임스탬프 컬럼에 대해 타겟 데이터베이스를 쿼리합니다. 쿼리 결과는 SHAREPLEX_CONF_LOG 테이블의 EXISTING_TIMESTAMP 컬럼에 기록됩니다.
준비된 루틴의 경우 들어오는 레코드로 대체되지 않는 행에서 Post는 대체될 수 있는 기존 행의 TARGET_ROWID를 쿼리합니다. 준비되지 않은 경우 기존 행의 ROWID가 기록되지 않습니다.
참고: 2로 설정하면 쿼리 결과로 인해 Post 성능에 영향을 미칠 수 있습니다.
기본값: 0(비활성화)
유효한 값의 범위: 0, 1 또는 2
적용 시기: Post가 재시작될 때
SP_OPO_MAX_CDA
이 매개변수는 SQL 캐시 모듈용이며 세션이 동시에 열 수 있는 최대 커서 캐시 수를 제어합니다. 이 숫자는 v$parameter 뷰의 OPEN_CURSORS에 대한 Oracle 설정보다 작아야 합니다. SP_OPO_SQL_CACHE_DISABLE이 0(활성화)으로 설정된 경우에만 사용됩니다.
기본값: 50
유효한 값의 범위: 양의 정수
적용 시기: Post가 재시작될 때
SP_OPO_MAX_OEXN_TIME
이 매개변수는 타임키퍼 스레드가 기본적으로 교착 상태인 위치로 설정되고 다중 스레드 Post 프로세스가 강제로 종료되기 전에 SQL 스레드가 OCIStmtExecute() 호출에 사용할 수 있는 최대 기간(초)을 제어합니다.
기본값: 900[초]
유효한 값의 범위: 양의 정수
적용 시기: Post가 재시작될 때
SP_OPO_MAX_ROLLBACK_MESSAGES
이 매개변수는 부분 롤백을 위해 역방향 개수가 증가되는 최대 메시지 수입니다. 기본 스레드는 순방향으로 검사를 수행하고 역방향 메시지 수를 계산합니다. 역방향 개수가 이 매개변수에 설정된 최대 개수에 도달하면 기본 스레드가 롤백을 해결합니다. 롤백이 해결되면 기본 스레드가 메시지 전달을 재개합니다. 역방향 메시지가 더 있으면 기본 스레드는 하위 큐에서 다시 순방향으로 검사를 수행합니다. 그러면 동일한 프로시저를 사용하여 10,000개의 역방향 메시지가 있는 다음 그룹(매개변수 값이 10,000으로 설정된 경우)이 해결됩니다.
기본값: 메시지 10,000개
유효한 값의 범위: 11~1,000,000
적용 시기: Post가 재시작될 때
SP_OPO_NLS_CONVERSION
이 매개변수는 Oracle 소스와 Oracle 타겟 간의 캐릭터셋 변환을 제어합니다.
사용 중인 Oracle 캐릭터셋 내의 모든 문자를 SharePlex가 복제하도록 하려면 다음 중 하나가 충족되어야 합니다.
- 캐릭터셋은 소스와 타겟에서 동일합니다.
- 소스 데이터베이스 캐릭터셋은 타겟 데이터베이스 캐릭터셋의 하위 집합입니다(소스에 포함된 모든 문자는 타겟의 캐릭터셋에 있음).
SharePlex에 대해 테스트되고 지원되는 캐릭터셋은 다음과 같습니다.
US7ASCII
UTF8
WE8ISO8859P1
AL16UTF16
AL32UTF8
KO16KSC5601
기본적으로 SharePlex를 사용하면 Oracle 타겟 데이터베이스가 문자 변환을 수행할 수 있습니다. Post는 소스 데이터의 문자 인코딩을 Oracle에 알리고 Oracle은 필요한 변환을 수행합니다.
관련된 캐릭터셋에 따라 Oracle 변환으로 인해 데이터가 손실될 수 있습니다. 예를 들면 다음과 같습니다.
예 1: JA16SJIS 캐릭터셋에서 '쌀'에 대한 일본어 문자는 US7ASCII 캐릭터셋에 해당 기호가 없습니다. 이 기호를 US7ASCII 데이터베이스에 복제하려고 하면 Oracle은 이를 '?' 문자로 변환합니다.
예 2: Oracle에 따르면 WE8ISO8859P1 캐릭터셋은 US7ASCII 캐릭터셋의 상위 집합이므로 US7ASCII의 문자가 WE8ISO8859P1 타겟 데이터베이스에 변환되지 않은 상태로 게시된다고 가정하는 것이 논리적입니다. 이는 0x00에서 0x7F 범위의 문자에 해당됩니다. 그러나 Oracle은 0x80에서 0xFF 범위의 문자 중 최상위 비트를 제거합니다. 이 "변환"은 소스의 상위 집합인 캐릭터셋으로 복제하는 동안 데이터 손실을 초래할 수 있습니다.
참고: Oracle은 캐릭터셋이 동일한 경우 문자를 변환하지 않습니다. 따라서 WE8ISO8859P1 캐릭터셋이 있는 데이터베이스에 WE8ISO8859P1 데이터를 게시하면 Oracle 변환 프로세스가 무시됩니다.
변환하지 않고 데이터를 적용하려면 다음을 수행합니다.
변환과 함께 데이터를 적용하려면 SP_OPO_NLS_CONVERSION 매개변수를 1로 설정합니다.
참고: SharePlex는 소스 데이터베이스의 NLS_NCHAR_CHARACTERSET가 타겟 데이터베이스의 NLS_NCHAR_CHARACTERSET와 동일하지 않은 경우 항상 NVARCHAR 및 NCLOB 데이터를 변환합니다.
기본값: 1
유효한 값의 범위: 0 또는 1(플래그)
적용 시기: Post가 재시작될 때
SP_OPO_NLS_DEFAULT_COMPAT
이 매개변수는 Post가 문자 데이터(CHAR, VARCHAR)를 변환하는지 여부를 제어합니다. 기본적으로 변환은 수행되지 않습니다. 7로 설정하면 Post는 문자 데이터를 변환하지 않지만 CLOB 데이터를 변환합니다. compare/repair 명령은 변환이 없는 문자 데이터와 변환이 있는 CLOB 데이터를 비교/복원합니다. NCHAR 데이터의 복제는 영향을 받지 않습니다.
SP_OPO_NLS_DEFAULT_COMPAT는 SP_OPO_NLS_CONVERSION보다 우선합니다.
기본값: 0
유효한 값의 범위: 0 또는 7
적용 시기: Post가 재시작될 때
SP_OPO_OBJID_DEBUG
이 매개변수를 사용하면 Post에 하나의 특정 객체(예: 테이블)에 대한 디버깅이 가능합니다. SP_OPO_OBJID_DEBUG 매개변수는 일반적으로 동기화 중단 상태인 디버깅에 사용됩니다. SP_OPO_OBJID_DEBUG 매개변수를 사용하려면 타겟 시스템의 해당 값을 소스 데이터베이스의 객체에 대한 객체 ID 값으로 설정합니다.
기본값: 0
유효한 값의 범위: 0보다 크거나 같은 숫자
적용 시기: 즉시
SP_OPO_ONELINE_DEBUG
이 매개변수는 Post 프로세스에 대한 온라인 디버그 기능을 제어합니다.
온라인 디버그 기능을 사용하면 대량의 시스템 리소스를 소비하지 않고도 동기화 중단 오류에 대한 디버깅을 수행할 수 있습니다. 온라인 디버그는 데이터 스트림에서 동기화 중단 상태가 발생한 위치를 감지하기 위해 한 줄 정도의 정보를 기록합니다. 온라인 디버그가 문제를 일으키는 프로세스를 식별하면 해당 프로세스에 대해 정기적인 디버깅을 활성화할 수 있습니다.
이 매개변수를 활성화하려면 디버깅할 객체를 해당 객체 ID로 지정하고 각 객체를 쉼표로 구분합니다.
예는 다음과 같습니다.
sp_ctrl> set sp_opo_oneline_debug 230230, 351626
다음 항목이 기록됩니다.
- 작업 상태는 Dispatch(큐에서 읽기), ProcessMessage(SQL 코드 처리), Skipped(커밋 감소 기능이 활성화된 경우 커밋) 또는 ExecSQL(타겟에 적용)일 수 있습니다.
- SharePlex에서 사용하는 트랜잭션 식별자
- 영향을 받은 DML 또는 DDL 작업 유형
- 영향을 받은 소스 테이블의 객체 ID
- 영향을 받은 행의 행 식별자 (Oracle rowid)
- 작업이 발생한 시간(Oracle)
- 영향을 받은 작업의 로그 내 로그 시퀀스 번호 및 오프셋
- 트랜잭션에 대한 Oracle SCN
- 중복 작업을 방지하는 내부 SharePlex 코드
기본값: 비활성화
유효한 값의 범위: 객체 ID별로 나열되고 쉼표로 구분되는 객체 목록을 형성하는 문자열입니다.
적용 시기: 즉시
SP_OPO_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 관리 안내서를 참조하십시오.
동기화 중단 작업이 포함된 경우 전체 트랜잭션을 롤백하도록 Post를 구성하려면 SP_OPO_SAVE_OOS_TRANSACTION도 참조하십시오.
기본값: 0(동기화 중단 상태에서도 중지되지 않음)
유효한 값의 범위: 0 또는 1(플래그)
적용 시기: 즉시
SP_OPO_POSTER_DELAY
이 매개변수는 타겟 인스턴스에 레코드를 게시하기 전에 Post 프로세스가 지연되는 시간을 제어합니다. 일반적으로 Post는 소스 시스템과 타겟 시스템 간의 지연 시간을 최소화하기 위해 변경 사항을 즉시 적용하지만 최대 5일(7,200분) 동안 게시를 지연할 수 있습니다.
게시를 지연하면 소스 시스템에서 원치 않는 삭제 또는 객체 삭제로 인한 우발적인 손실로부터 데이터를 보호할 수 있습니다. 지연은 실수를 감지하고 실수가 복제되기 전에 타겟 인스턴스에서 데이터를 검색할 수 있는 충분한 시간을 제공합니다. "what-if" 분석을 실행하는 것은 이 매개변수의 기본값을 변경할 수 있는 또 다른 이유입니다. 타겟 데이터베이스가 제 시간에 뒤처지면 실제와 비교하여 예측 모델링을 검증할 수 있습니다.
SP_OPO_POSTER_DELAY로 인한 지연은 메시지가 리두 로그에 처음 나타나는 시간부터 측정됩니다.
이 매개변수를 사용할 때 고려해야 할 사항은 다음과 같습니다.
- 데이터가 데이터베이스에 적용될 때까지 지정된 시간 간격 동안 Post 큐에 데이터를 수집할 수 있는 충분한 디스크 공간이 있어야 합니다.
-
매개변수 설정에 따라 게시를 시작할 시기를 결정하기 위해 SharePlex는 타겟 시스템의 현재 타임스탬프를 레코드가 소스 시스템의 리두 로그에 입력되는 시간과 비교합니다. 이러한 시스템은 수천 마일 떨어진 서로 다른 위치에 있을 수 있습니다. 시간대 간의 차이를 고려하여 지연 시간에 추가합니다.
예를 들어 미국 캘리포니아주 로스앤젤레스와 호주 시드니 사이에는 18시간의 시차가 있습니다. 5시간 동안 게시를 지연하려면 원하는 5시간 지연과 18시간의 시차를 고려하여 SP_OPO_POSTER_DELAY를 23시간(1,380분)으로 설정해야 합니다. 또한 두 지역 간의 시차를 변경할 수 있는 일광 절약 시간을 위치가 준수하는지 여부도 고려합니다. 일광 절약 시간을 관찰하는 방식은 이를 사용하는 국가마다, 심지어 국가 내에서도 다릅니다.
- 예를 들어 소스 시스템이 시드니에 있고 타겟 시스템이 로스앤젤레스에 있는 경우, 시간을 거스르는 이 매개변수를 사용하지 마십시오. SharePlex의 경우 이는 각 시스템의 타임스탬프를 비교할 때 음의 시간 차이로 간주됩니다. 예를 들어 시드니의 4월 2일 오전 2시는 로스앤젤레스의 4월 1일 오전 8시입니다. 이 매개변수는 0보다 작은 설정이 허용되지 않습니다.
기본값: 0분
유효한 값의 범위: 0~7,200분
적용 시기: 즉시
SP_OPO_PRB_MISMATCH_SUSPEND
이 매개변수를 1로 설정하면 부분 롤백에 불일치가 있는 경우 Post가 중지됩니다. 이를 통해 Post가 처리를 재개하기 전에 문제를 조사하고 해결할 수 있습니다.
기본값: 0(설정 꺼짐)
유효한 값의 범위: 0 또는 1(플래그)
적용 시기: 즉시
SP_OPO_READRELEASE_INTERVAL
이 매개변수는 Post 읽기/해제 빈도를 제어합니다. 일반적으로 Post는 각 COMMIT을 수신한 후 읽기/해제를 수행합니다. 즉, 체크포인트 복구 프로세스의 일환으로 큐에서 해당 트랜잭션의 데이터를 제거합니다. 소규모 트랜잭션의 경우 타겟 시스템에 과도한 I/O가 발생하고 Post 속도가 저하됩니다. 대부분의 트랜잭션이 작은 경우 Post가 매 COMMIT 이후가 아닌 특정 수의 메시지 후에 읽기/해제되도록 이 매개변수를 설정할 수 있습니다.
읽기/해제 간격을 설정할 때 새 데이터가 커밋된 트랜잭션을 따르지 않는 경우(예: 해당 날짜의 마지막 트랜잭션이거나 더 이상 사용자 활동이 없는 경우) Post는 COMMIT을 처리하고 내부 SP_OPO_IDLE_LOGOUT 매개변수에 의해 제어되는 특정 시간을 대기합니다. 데이터가 도착하지 않으면 SP_OPO_READRELEASE_INTERVAL 간격이 충족되지 않더라도 Post는 읽기/해제를 수행합니다. Post 큐의 메시지 수가 0으로 줄어들어 Post가 큐의 모든 메시지 처리를 완료했음을 나타냅니다.
참고: Post 프로세스에는 여러 스레드가 있으므로 메시지 수는 큐 대신 각 스레드와 연결됩니다. 따라서 읽기/해제 간격이 예상보다 길어질 수 있으므로 기본값을 낮춰야 할 수도 있습니다.
기본값: 100
유효한 값의 범위: 양의 정수
적용 시기: 즉시
SP_OPO_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_OPO_RETRIES_MAX
이 매개변수는 Post 프로세스가 처음 실패한 SQL 문을 게시하려고 시도하는 횟수를 제어합니다.
Post는 다른 시도로 성공할 가능성이 있는 경우 실패한 특정 작업을 다시 시도합니다. Post가 다시 시도하는 주요 작업은 Post가 TRUNCATE를 적용해야 할 때 TNS 쓰기 실패, 연결 실패 또는 테이블 잠금입니다.
실패한 작업이 성공할 가능성을 높이려면 Post가 작업을 더 많이 시도하도록 SP_OPO_RETRIES_MAX 매개변수를 늘리면 됩니다. 동시에 SP_OPO_RETRY_DELAY_TIME 매개변수를 늘려서 시도 간 시간 간격을 늘립니다. 이는 잠금 또는 기타 차단 작업을 시도할 때 해결할 충분한 시간을 확보할 수 있습니다.
Post 프로세스가 오류(SP_SYS_SUSPEND_ON_ERROR=0) 발생 시 계속되도록 설정되거나 오류 메시지가 oramsglist 파일에 나열된 경우 Post는 큐의 다음 트랜잭션으로 이동합니다. 그 외 모든 경우에는 허용된 최대 시도 횟수에 도달한 후 Post가 중지됩니다.
중요: 이 매개변수를 줄이면 데이터가 큐에 누적되어 사용 가능한 디스크 공간을 초과할 수 있습니다.
기본값: 10회
유효한 값의 범위: 0 또는 양의 정수
적용 시기: 즉시
SP_OPO_SAVE_OOS_TRANSACTION
이 매개변수는 동기화 중단 작업이 포함된 경우 Post가 트랜잭션을 롤백하고 삭제할지 여부를 제어합니다. 이 기능은 SP_OPO_SAVE_OOS_TRANSACTION 매개변수로 제어됩니다.
이 매개변수를 사용하는 방법
이 매개변수가 1로 설정되고 트랜잭션에 동기화 중단 오류를 생성하는 작업이 포함된 경우 Post는 전체 트랜잭션을 삭제하고 해당 트랜잭션의 모든 작업을 SQL 파일에 저장합니다. 이 파일을 편집하여 실패한 SQL 문제를 복원한 다음, 파일을 실행하여 타겟 데이터베이스에 트랜잭션을 적용할 수 있습니다.
이 매개변수를 1로 설정하면 Post는 기본적으로 롤백된 트랜잭션을 따르는 유효한 트랜잭션을 계속 처리합니다. 이는 타겟 지연 시간을 방지하기 위한 것입니다. 트랜잭션 롤백 후 Post가 중지되도록 구성하려면 SP_OPO_OUT_OF_SYNC_SUSPEND 매개변수를 1로 설정합니다.
중요! 이 매개변수는 애플리케이션이 하나의 트랜잭션 내에서 모든 상호 의존적 변경을 수행한다는 것을 사용자가 알고 있는 경우에만 사용해야 합니다.
롤백되는 트랜잭션과 관련된 모든 테이블에는 다음 데이터 유형만 포함되어야 합니다.
- CHAR – US7ASCII
- VARCHAR – US7ASCII
- NUMBER
- DATE
- TIMESTAMP
- TIMESTAMP WITH TIME ZONE
- TIMESTAMP WITH LOCAL TIME ZONE
- INTERVAL
- ROWID
- RAW
- BINARY FLOAT
- BINARY DOUBLE
롤백된 각 트랜잭션에는 자체 SQL 파일이 있습니다. 파일 이름은 SCN_queue.sql입니다. 여기서,
- SCN은 트랜잭션의 커밋 SCN(System Change Number)입니다.
- queue는 트랜잭션이 포함된 Post 큐의 이름입니다.
파일 이름 예:
4346118046_postq1.sql
참고:
|
기본값: 0(설정 꺼짐)
유효한 값의 범위: 0 또는 1(플래그)
적용 시기: Post가 재시작될 때
SP_OPO_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_OPO_STOP_ON_DDL_ERR
이 매개변수는 DDL을 적용하는 중에 오류가 발생하는 경우 Post 프로세스를 중지할지 여부를 제어합니다. 기본값 1은 오류 발생 시 Post를 중지하도록 지시합니다. 오류는 일반적으로 DDL이 실행된 소스 구성 요소가 타겟 데이터베이스에 없음을 나타내며, 이는 후속 DML 변경도 실패할 가능성을 나타냅니다. Post를 중지하면 DML 장애를 방지하고 문제를 해결하여 데이터베이스 동기화를 유지할 수 있습니다.
기본값: 1(설정 켜짐)
유효한 값의 범위: 0 또는 1(플래그)
적용 시기: 즉시
SP_OPO_SUPPRESS_DELETE
이 매개변수는 Post가 DELETE 작업을 타겟에 적용할지 여부를 제어합니다. DELETE 작업을 금지하는 것은 소스 테이블에서 삭제되더라도 행이 중앙에 있어야 하는 데이터 웨어하우스와 같은 상황에서 적절할 수 있습니다. 구성 파일을 수정하거나 활성화하지 않고도 이 매개변수를 설정하거나 설정 해제할 수 있습니다. DELETES를 금지하려면 1로 설정합니다.
기본값: 0(설정 꺼짐)
유효한 값의 범위: 0 또는 1(플래그)
적용 시기: 프로세스를 재시작할 때
SP_OPO_SUPPRESSED_OOS를
이 매개변수는 소스에서 복제되는 변경 사항이 타겟 행에 이미 포함되어 있음을 감지한 경우 Post가 동기화 중단 메시지를 반환하는지 여부를 제어합니다. 이 조건이 충족되면 Post는 복제된 SQL을 삭제하고 이벤트 로그 또는 errlog.sql 로그 파일에 동기화 중단 메시지를 작성하지 않습니다.
이 매개변수는 다음과 같은 경우에 INSERT, UPDATE 및 DELETE 작업을 지원합니다.
- 복제된 INSERT의 모든 값(키 값 포함)이 타겟 행의 기존 값과 일치합니다.
- UPDATE의 키 값이 타겟 행과 일치하고, 해당 행의 기존 값은 소스에서 복제된 이후(변경) 값과 일치합니다.
참고: SharePlex 는 복제된 이후 값과 타겟 값이 일치하지 않는 경우 동기화 중단 메시지를 반환합니다.
- DELETE 작업의 타겟 행이 존재하지 않습니다.
기본적으로 이 매개변수는 활성화되어 있습니다. 그러나 Post에서 감지하지 못하는 동기화 중단 값이 있을 수 있으므로 compare 명령과 같이 모든 타겟 데이터를 확인하는 도구를 계속 사용해야 합니다.
기본값: 1
유효한 값의 범위: 0(비활성화) 또는 1
적용 시기: 즉시
SP_OPO_SYNC_LOG_FREQUENCY
이 매개변수는 Post가 동기화 중단 메시지를 이벤트 로그(variable-data 디렉토리의event_log 파일)에 기록하는 빈도를 제어합니다. Post가 동기화 중단 상태를 감지하면 동기화 중단 이벤트가 생성됩니다. 타겟 테이블이 동기화 중단 상태이고 이벤트 로그가 해당 메시지로 가득 차는 경우, 이 매개변수를 사용하여 이러한 메시지가 기록되는 빈도를 제어할 수 있습니다.
이 매개변수가 0보다 크면 Post는 첫 번째 동기화 중단 오류를 기록한 다음, 지정된 간격으로 동기화 중단 메시지만 기록합니다. Post는 동기화 중단 테이블이 재동기화될 때까지 유효한 데이터를 계속 게시합니다.
기본값: 1(모든 동기화 중단 메시지 기록)
유효한 값의 범위: 0보다 큰 정수
적용 시기: 즉시
SP_OPO_THREADS_MAX
이 매개변수는 여러 하위 큐를 처리할 때 SQL 스레드의 동작을 보기 위해 테스트하는 데 주로 사용됩니다. 최소 스레드 수는 4개이며, 이를 통해 Post 프로세스는 기본 스레드, 타임키퍼 스레드, 신호 대기자 스레드, 하나의 SQL 스레드를 생성할 수 있습니다.
기본값: 스레드 128개
유효한 값의 범위: 스레드 4개(최소)~1,024개(최대)
적용 시기: Post 프로세스가 재시작될 때
SP_OPO_TRACK_COMMITS
이 매개변수는 Post 프로세스가 커밋을 추적하는지 여부를 제어합니다. 1인 경우 Post는 모든 커밋에 대해 행을 삽입합니다.
기본값: 0(설정 꺼짐)
유효한 값의 범위: 0 또는 1(플래그)
적용 시기: Post 프로세스가 재시작될 때
SP_OPO_TRACK_OPERATIONS
이 매개변수는 변경 내역 타겟 데이터베이스를 유지할 때 Post에서 추적하는 DML을 제어합니다. 기본적으로 Post는 모든 DML 유형을 추적합니다. 예를 들어 삽입 및 업데이트만 추적되도록 Post를 구성하려면 매개변수를 I/U로 설정합니다.
기본값: I/U/D(삽입, 업데이트 및 삭제)
유효한 값의 범위: 슬래시(/)로 구분된 I, U 또는 D의 조합
적용 시기: Post 프로세스가 재시작될 때
SP_OPO_TRACK_PREIMAGE
이 매개변수는 Post 프로세스가 삽입 및 업데이트 이전 이미지나 삭제 이후 이미지를 추적하는지 여부를 제어합니다. 삽입을 위한 이전 이미지와 삭제를 위한 이후 이미지에는 키 값이 포함되며 다른 모든 컬럼은 null로 설정됩니다.
이 매개변수를 I, U, D로 설정하거나 슬래시로 구분된 값의 조합(예: I/U)으로 설정할 수 있습니다. 이 매개변수를 사용하면 Post는 지정된 유형의 각 작업에 대해 두 개의 행을 적용합니다. 하나는 이전 이미지의 컬럼 값을 갖고 다른 하나는 이후 이미지의 값을 갖습니다.
기본값: 설정 꺼짐
유효한 값의 범위: I, U, D
적용 시기: Post 프로세스가 재시작될 때
SP_OPO_TRUSTED_SOURCE
이 매개변수는 피어-투-피어 복제 환경에서 기본 데이터 세트로 간주되는 데이터를 포함하는 신뢰할 수 있는 소스 시스템을 지정합니다. 신뢰할 수 있는 호스트는 사용자 지정 충돌 해결 루틴에 사용될 수 있으며 SharePlex와 함께 제공되는 준비된 루틴 중 하나의 기초이기도 합니다. 충돌 해결 및 피어-투-피어 복제에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.
기본값: 없음
유효한 값의 범위: SharePlex 복제 환경의 유효한 호스트 이름
적용 시기: Post 프로세스가 재시작될 때
SP_OPO_UPDATE_SCN
이 매개변수는 Oracle SCN의 추적을 제어하고 고가용성 클러스터에서 작동할 때 SharePlex가 빠르게 복구할 수 있도록 합니다. 이 매개변수가 활성화되면 SharePlex는 내부 트랜잭션 테이블에서 SCN을 추적합니다. 이를 통해 SharePlex는 가장 낮게 적용된 트랜잭션을 활성화한 다음, 장애 조치가 있을 때 올바른 트랜잭션으로 조정할 수 있습니다.
참고: 이 매개변수를 활성화하면 Post Enhanced Performance 기능의 커밋 감소 기능이 비활성화됩니다. SCN을 추적할 때는 해당 기능이 지원되지 않습니다.
기본값: 0
유효한 값의 범위: 0(비활성화) 또는 1(활성화)
적용 시기: Post가 재시작될 때
SP_OPO_USE_VARNUM
이 매개변수는 Post가 varnum을 사용하여 타겟 데이터베이스에 숫자를 입력하도록 합니다. 이를 통해 비표준 고정밀 값을 데이터베이스의 숫자 컬럼에 입력할 수 있습니다.
기본값: 0(설정 꺼짐)
유효한 값의 범위: 0 또는 1(플래그)
적용 시기: Post가 재시작될 때
SP_OPO_WAIT_MSG_DELAY
이 매개변수는 Post가 오래되었거나 정지된 Oracle 세션을 종료하고 있음을 나타내는 메시지를 생성하기 전에 대기하는 시간을 제어합니다. 해당 메시지는 Post가 시작될 때 발생합니다.
기본값: 300초
유효한 값의 범위: 양의 정수, 최대 86,400
적용 시기: Post가 재시작될 때