이러한 매개변수는 SharePlex 큐의 속성을 제어합니다.

SP_QUE_MAX_QUEUES

이 매개변수는 sp_cop 인스턴스당 허용되는 최대 큐 수를 결정합니다. 기본적으로 각 Capture 및 Export 큐는 8MB의 공유 메모리를 사용하고 각 Post 큐는 32MB를 사용합니다. 시스템에 충분한 메모리가 있으면 이 매개변수의 값을 늘릴 수 있습니다. 시작 시 SharePlex는 활성 구성 파일의 큐 수에 필요한 공유 메모리 양을 표시합니다.

 

기본값: 25

유효한 값의 범위: 9~254

적용 시기: sp_cop이 재시작될 때

SP_QUE_POST_SHMSIZE

이 매개변수는 Post 큐의 특정 공유 메모리 크기를 결정합니다.

중요: 이 매개변수를 늘리면 시스템 설정에서 최대 공유 메모리 세그먼트 크기를 늘려야 할 수도 있습니다.

 

기본값: 32MB

유효한 값의 범위: 0보다 큰 정수

적용 시기: sp_cop이 재시작될 때

SP_QUE_Q_SHMSIZE

이 매개변수는 Capture 및 Export 큐의 특정 공유 메모리 크기를 결정합니다.

 

기본값: 8MB

유효한 값의 범위: 0보다 큰 정수, 최대값 없음

적용 시기: sp_cop이 재시작될 때

 

SP_QUE_SHMDBUF

이 매개변수는 SharePlex 프로세스가 한 번에 큐에서 읽거나 큐에 쓰는 정보의 양을 결정하는 공유 메모리 버퍼 크기를 제어합니다. 버퍼는 데이터의 신속하고 안전한 비동기 전송을 원활하게 하는 SharePlex 체크포인트 복구 프로세스의 일부입니다. 기본 설정은 최적의 값이므로 기술 지원 담당자의 안내나 문서화된 SharePlex 프로시저 없이 변경하면 안 됩니다.록 그러나 대부분의 트랜잭션이 큰 경우에는 이 매개변수를 변경할 수 있습니다. 초기 설정인 65536을 사용해 보십시오. 이 매개변수에 설정된 모든 값은 2의 거듭제곱이어야 합니다.

중요: 이 매개변수를 64k보다 큰 값으로 늘리려면 시스템 설정에서 최대 공유 메모리 세그먼트 크기를 늘려야 할 수도 있습니다.

 

기본값: 32,768바이트

유효한 값의 범위: 2의 거듭제곱인 양의 정수

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

SP_QUE_SYNC

SP_QUE_SYNC는 큐 데이터를 디스크에 작성한 내용이 반환되기 전에 디스크 미디어에 작성되었는지 확인하도록 큐 모듈에 지시합니다. 이는 Unix 및 Linux의 표준 디스크 쓰기 모델이 아닙니다.

기본 OS 디스크 I/O 프로시저에서 디스크 쓰기는 내부 OS 버퍼 캐시에 작성된 후 나중에 디스크에 작성됩니다. 이 작업은 디스크 쓰기 오버헤드를 분산하므로 프로세스는 데이터가 디스크에 작성될 때까지 기다릴 필요가 없습니다. 데이터 블록이 버퍼 캐시에 작성되면 데이터에 접근하는 애플리케이션은 버퍼 캐시에 기록된 데이터와 디스크에 작성된 데이터를 구별할 수 없습니다. Oracle COMMIT과 달리, 파일에 접근할 수 있는 모든 프로세스는 버퍼 캐시의 데이터에도 접근할 수 있습니다. 데이터 블록이 버퍼 캐시와 물리적 미디어에 작성되는 시간 사이에 시스템 충돌이 발생하면 미디어에 작성되지 않은 모든 데이터는 시스템 복구 시 손실될 위험이 있습니다.

SP_QUE_SYNC 매개변수는 다음과 같이 구현됩니다.

SP_QUE_SYNC=0

두 번째 단락에서 설명하는 OS 기본 사례는 SharePlex 큐 데이터에 사용되는 디스크 쓰기 알고리즘입니다.

SP_QUE_SYNC=1

SP_QUE_SYNC를 1 로 설정하면 각 큐 데이터와 헤더 파일을 열 때 O_SYNC 플래그가 설정됩니다. 이 플래그는 데이터가 디스크에 성공적으로 작성될 때까지 쓰기 호출을 반환하지 않도록 OS에 지시합니다. 동기화 플래그("normal" I/O)가 없으면 파일 데이터에 공간이 할당되지만 시스템 충돌, 클러스터 장애 조치 또는 OS 실행을 중지시키는 기타 심각한 문제로 인해 파일 데이터가 작성되지 않을 수 있습니다.

SP_QUE_SYNC=2(SharePlex 기본 설정)

SP_QUE_SYNC 매개변수를 2로 설정하면 O_SYNC 플래그가 켜지지 않습니다. 대신 큐 쓰기 COMMIT이 호출될 때까지 일반 쓰기가 수행됩니다. 쓰기 COMMIT의 일부로 큐 모듈은 각 큐 데이터 파일과 큐 헤더 파일에서 시스템 호출 fsync를 실행합니다. 이 모듈은 쓰기 COMMIT에 의해 나중에 다시 작성될 수 있는 데이터에 대한 중복 동기화 작업을 제거합니다.

SP_QUE_SYNC 설정의 영향

SP_QUE_SYNC를 반환하기 전에 디스크 쓰기를 완료하는 값으로 설정하면 SharePlex 성능에 영향을 미칠 수 있으며 SharePlex 프로세스가 아닌 경우 I/O 처리량이 약간 증가할 수 있습니다. 오버헤드의 양은 큐의 데이터 양, 파일 시스템 유형, 사용 중인 디스크 드라이브 및 디스크 컨트롤러 유형에 따라 다릅니다.

SP_QUE_SYNC가 수행하지 않는 작업

SP_QUE_SYNC 매개변수가 수행하지 않는 기능은 많습니다. 가장 일반적인 문제는 다음과 같습니다.

  • SP_QUE_SYNC는 공유 메모리와 디스크 중에서 선택하지 않습니다. 또한 디스크에 쓰기로 결정한 시기에도 영향을 주지 않습니다. 이 매개변수는 반환 전에 물리적 디스크에 대한 디스크 쓰기가 완료되었음을 보장하도록 OS에 지시할 뿐입니다.
  • “하위 큐 부족” 오류가 방지되지 않습니다.
  • "디스크 공간 부족" 오류가 해결되지 않습니다. 파일 데이터용 공간은 물리적 미디어에 대한 쓰기 또는 동기화가 수행되기 전에 할당됩니다. 공간 부족 오류가 발생하는 경우 동기화가 수행되기 전에 발생합니다. 데이터 손실 가능성이 있지만 여유 공간이 확보되면 큐를 사용할 수 있습니다.
  • "공유 메모리 부족" 오류 또는 "가상 메모리 부족" 오류를 유발하거나 방지하지 않습니다. 공유 메모리 손실을 나타내는 메시지는 큐 모듈의 요구 페이징 시스템 오류일 가능성이 높습니다. "가상 메모리 부족" 오류가 발생하면 OS 매개변수에서 데이터 세그먼트 제한을 확인합니다. 일반적인 제한이나 예상되는 제한이 충분하지 않은 경우 기술 지원에 문의하십시오.

클러스터에서 SP_QUE_SYNC 사용

클러스터에서는 클러스터의 기본 노드(공유 variable-data 디렉토리가 마운트되는 노드)와 동일한 복제 환경의 일부인 클러스터 외부의 각 소스 및 타겟 시스템에 SP_QUE_SYNC를 설정합니다.

 

기본값: 2

유효한 값의 범위: 0~2

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

SP_QUE_USE_SUBQUE_INDEX

이 매개변수는 큐 성능을 향상시킵니다. 소스의 동시성이 높은 경우 Post 큐에는 각각 트랜잭션 세션을 나타내는 수많은 하위 큐가 포함될 수 있습니다. 이로 인해 Post 프로세스의 성능이 저하될 수 있습니다. 이 매개변수는 향상된 인덱싱을 사용하여 하위 큐 구조에 접근하도록 SharePlex에 지시합니다. 이 매개변수가 활성화된 모든 Post 큐에 대해 "Subqueue index enabled queuename" 메시지가 이벤트 로그에 기록됩니다.

이 매개변수는 VARRAY를 지원하지 않습니다. VARRAY를 복제 중이고 이 매개변수가 활성화된 경우 매개변수는 무시됩니다.

 

기본값: 0

유효한 값의 범위: 0(비활성화) 또는 1(활성화)

적용 시기SharePlex가 재시작될 때