병렬 복제 정보

Parallel Replicat는 성능 향상을 위해 병렬로 트랜잭션을 적용하는 Replicat의 또 다른 변형입니다.

통합 Replicat와 유사하게 트랜잭션 간 종속성을 고려합니다. 종속성 계산, 매핑 및 적용의 병렬화가 데이터베이스 외부에서 수행되므로 다른 서버로 오프로드할 수 있습니다. 트랜잭션 무결성은 이 프로세스에서 유지 관리됩니다. 또한 parallel Replicat는 큰 트랜잭션을 조각으로 분할하고 병렬로 적용하여 큰 트랜잭션의 병렬 적용을 지원합니다.

Parallel Replicat는 통합 및 비통합 두 가지 모드를 지원합니다. Oracle AI Database만 통합 모드에서 병렬 Replicat를 지원합니다.

병렬 Replicat를 사용하려면 기본값인 다음 값이 있는지 확인해야 합니다.

통합 병렬 Replicat를 사용하면 Replicat가 인바운드 서버로 LCR을 전송하여 데이터를 대상 데이터베이스에 적용하고 일반 병렬 Replicat에서 Oracle GoldenGate는 LCR을 데이터베이스에 직접 SQL 문으로 적용합니다(다른 비통합 Replicats의 작동 방식과 유사). 주: OLTP 작업 로드에 대한 최상의 성능을 얻으려면 비통합 모드의 병렬 Replicat가 권장됩니다.

병렬 Replicat의 구성 요소는 다음과 같습니다.

병렬 Replicat의 이점

다음은 병렬 Replicat 사용 시의 이점입니다.

병렬 복제 구조

병렬 복제 프로세스는 통합 모드에서 Oracle AI Database 내에서 사용할 수 있는 적용 처리 기능을 활용합니다. 단일 Replicat 구성 내에서 적용 서버로 알려진 다중 인바운드 서버 하위 프로세스는 원래 트랜잭션 원자성을 유지하면서 트랜잭션을 병렬로 적용합니다.

다음 아키텍처 다이어그램은 비통합 병렬 Replicat에 대한 추적 파일에서 대상 데이터베이스로 병렬 복제의 다양한 프로세스를 통한 변경 레코드의 플로우를 보여 줍니다.

다음은 para_rep_arch.png에 대한 설명입니다.

다음은 위에서 설명한 구조 다이어그램에 대한 설명입니다.

병렬 Replicat에 대한 기본 매개변수

다음 표에서는 기본 병렬 Replicat 매개변수와 해당 설명을 나열합니다.

매개변수 설명

MAP_PARALLELISM

매퍼 수를 구성합니다. 추적 파일을 읽는 데 사용되는 스레드 수를 제어합니다. 최소값은 1, 최대값은 100, 기본값은 2입니다.

APPLY_PARALLELISM

이상치 수를 구성합니다. 변경 사항을 적용하는 데 사용되는 Target Database의 연결 수를 제어합니다. 기본값은 4입니다.

MIN_APPLY_PARALLELISM

MAX_APPLY_PARALLELISM

Apply 병렬화는 자동 튜닝됩니다. 최소값과 최대값을 설정하여 Replicat가 자동으로 병렬화를 조정하는 범위를 정의할 수 있습니다. 기본값이 없습니다. APPLY_PARALLELISM와 동시에 사용하지 마십시오.

SPLIT_TRANS_RECS

대형 트랜잭션을 지정된 크기의 조각으로 나누어 병렬로 적용하도록 지정합니다. 조각 간의 종속성은 계속 유지됩니다. 기본적으로 사용 안함으로 설정됩니다.

COMMIT_SERIALIZATION

커밋 FULL 직렬화 모드를 활성화하여 트랜잭션이 트레일 순서대로 커밋되도록 합니다.

고급 매개변수

LOOK_AHEAD_TRANSACTIONS

트랜잭션을 일괄 처리할 때 스케줄러가 얼마나 앞서가는지를 제어합니다. 기본값은 10000입니다.

CHUNK_SIZE

병렬 Replicat에서 트랜잭션 크기를 크게 고려할 수 있는 트랜잭션 크기를 제어합니다. 병렬 Replicat가 이 크기보다 큰 트랜잭션을 발견하면 직렬화되어 성능이 저하됩니다. 그러나 이 값을 늘리면 병렬 Replicat에서 사용하는 메모리 양도 늘어납니다.

예제 매개변수 파일

REPLICAT repe USERID ggadmin, password ***
MAP_PARALLELISM 3
MIN_APPLY_PARALLELISM 2
MAX_APPLY_PARALLELISM 10
SPLIT_TRANS_RECS 60000
MAP *.*, TARGET *.*;