다중 프로세스 그룹 사용
일반적으로 데이터베이스에서 효율적으로 캡처하려면 하나의 Extract 그룹만 필요합니다. 그러나 리두(트랜잭션) 값이나 데이터 및 작업 유형에 따라 하나 이상의 Extract 그룹을 구성에 추가해야 할 수 있습니다.
마찬가지로 조정 모드에서 Replicat를 사용하는 경우 타겟 데이터베이스에 데이터를 적용하려면 보통 하나의 Replicat 그룹만 필요합니다. 그러나 조정 모드에서 Replicat를 사용하는 경우에도 여러 Replicat 그룹을 사용해야 할 수 있습니다. 클래식 모드에서 Replicat를 사용 중이고 애플리케이션에서 높은 트랜잭션 볼륨을 생성하는 경우 병렬 Replicat 그룹을 사용해야 할 수 있습니다.
각 Oracle GoldenGate 구성 요소인 Extract, Trail, DISTPATH 및 Replicat는 독립 모듈이므로 요구 사항에 맞는 방식으로 결합할 수 있습니다. 여러 트레일과 병렬 Extract 및 Replicat 프로세스를 사용하여 대규모 트랜잭션 볼륨을 처리하고, 성능을 개선하고, 병목 현상을 없애고, 대기 시간을 줄이거나, 특정 데이터의 처리를 격리할 수 있습니다.
다음 다이어그램은 처리 속도 향상 및 네트워크 대역폭 문제 극복을 위해 Oracle GoldenGate를 구성할 수 있는 몇 가지 방법을 보여줍니다.

이미지 레이블은 다음을 의미합니다.
-
A: 병렬 추출은 로드를 나눕니다. 예를 들어, 스키마별로 또는 패치(fetch)를 생성하는 테이블을 분리합니다.
-
B: 로컬 추적이 있는 Extract는 필터링, 변환 및 네트워크 허위 허용 한도에 사용할 수 있습니다.
-
C: 여러 DISTPATHS가 TCP/IP 처리량을 사용으로 설정하기 위해 프로세스당 네트워크 대역폭 제한을 해결합니다.
TABLE매개변수 문을 서로 나눕니다. -
D: 병렬 복제는 데이터베이스에 대한 처리량을 늘립니다. 모든 추적은 하나 이상의 Replicats에서 읽을 수 있습니다.
MAP문을 서로 나눕니다.
다중 프로세스 그룹 사용 지침
여러 처리 그룹을 구성하기 전에 다음 지침을 검토하여 구성에서 예상 결과를 생성하고 데이터 무결성을 유지 관리하는지 확인하십시오.
데이터 무결성 유지 관리
모든 작업 로드를 여러 그룹으로 분할할 수 있는 것은 아니며 원래 트랜잭션 원자성을 그대로 유지할 수 있습니다. 한 그룹의 객체가 다른 그룹의 객체(트랜잭션 또는 기타)에 종속될지 여부를 결정해야 합니다. 예를 들어, 작업 로드가 Primary Key를 일상적으로 갱신하는 테이블은 이러한 방식으로 쉽게 분할할 수 없습니다. 이 모드에서는 DDL 복제(데이터베이스에 대해 지원되는 경우)를 수행할 수 없으며, 특정 레코드에 대한 작업을 기반으로 하는 일부 SQLEXEC 또는 EVENTACTIONS 기능을 사용할 수도 없습니다.
테이블에 외래 키 종속성이 없거나 기본 키에 대한 갱신이 없는 경우 여러 프로세스를 사용할 수 있습니다. 데이터 무결성을 보장하기 위해 관련 DML을 동일한 프로세스 스트림에 함께 유지합니다.
그룹 수
시스템에서 실행할 수 있는 동시 Extract 및 Replicat 프로세스 그룹 수는 사용 가능한 시스템 메모리 양에 따라 달라집니다. 각 Extract 및 일반 Replicat 프로세스에는 트랜잭션 크기 및 동시 트랜잭션 수에 따라 약 25-55MB 이상의 메모리가 필요합니다. Oracle GoldenGate 명령 인터페이스는 Oracle GoldenGate의 인스턴스당 최대 5,000개의 동시 Extract 및 Replicat 그룹을 지원합니다(결합). 지원되는 레벨에서 모든 그룹은 명령을(예: INFO 및 STATUS 명령) 사용하여 전체적으로 제어하고 확인될 수 있습니다.
지원되는 레벨 이외에는 그룹 정보가 표시되지 않으며 오류가 발생할 수 있습니다. Oracle GoldenGate는 환경이 효과적으로 관리되도록 기본적으로 레벨인 100 이하에서 Extract 및 Replicat 그룹(결합)의 수를 유지할 것을 권장합니다. 최대 그룹 수는 MAXGROUPS 매개변수로 제어되며 기본값은 1000입니다.
Windows Server 환경의 경우 실행할 수 있는 프로세스 그룹 수는 '비대화식' Windows 데스크탑 힙 메모리 설정에 긴밀하게 결합됩니다. Windows 데스크탑 힙의 기본 설정은 매우 적은 수의 프로세스 그룹을 실행하기에 충분할 수 있지만, 더 많은 양의 프로세스 그룹에 접근하기 때문에 60 이상입니다. 레지스트리에 있는 SharedSection 필드의 비대화식 값입니다. 이 값은 Microsoft(Windows 데스크탑 힙 메모리)의 정보를 기반으로 하거나 Oracle GoldenGate 홈 수를 늘리고 원하는 프로세스 그룹의 총 수를 해당 홈에 분산합니다. 주: Windows 데스크탑 힙 메모리 수정에 대한 자세한 내용은 다음 Oracle Knowledge Base 문서(문서 ID 2056225.1)를 참조하십시오.
메모리
실행될 각 Oracle GoldenGate Extract 및 Replicat 프로세스에 대해 시스템에 충분한 스왑 공간이 있어야 합니다. 필요한 스왑 공간을 확인하려면 다음 명령을 사용합니다.
-
하나의 Extract 또는 Replicat를 시작합니다.
-
관리 클라이언트를 실행합니다.
-
보고서 파일을 보고
PROCESS VM AVAIL FROM OS (min)행을 찾습니다. -
필요한 경우 다음 전체 기가바이트로 값을 반올림합니다. 예를 들어, 1.76GB를 2GB로 반올림합니다.
-
이 값에 실행할 Extract 및 Replicat 프로세스 수를 곱합니다. 결과는 필요한 스왑 공간의 최대 크기입니다.
메모리 관리 방법에 대한 자세한 내용은 Oracle GoldenGate용 매개변수 및 함수 참조의 CACHEMGR 매개변수를 참조하십시오.
처리 집약적 테이블 분리
여러 프로세스 그룹을 사용하여 정상적인 처리를 방해하고 대기 시간이 대상에 구축되도록 하는 특정 종류의 테이블을 지원할 수 있습니다. 예:
-
열의 데이터 유형, 파라미터 사양 때문에 또는 SQL 프로시저를 수행하기 위해 Extract가 데이터베이스에서 패치(fetch)를 수행해야 할 수도 있습니다. 데이터베이스에서 데이터를 패치(fetch)해야 하는 경우 Extract의 성능에 영향을 줍니다. Extract 매개변수 파일에
STATOPTIONS REPORTFETCH매개변수를 포함하는 경우STATS EXTRACT명령에서 인출 통계를 가져올 수 있습니다. 그런 다음 트랜잭션 무결성을 유지 관리할 수 있다고 가정하여 해당 테이블을 고유한 Extract 그룹으로 분리할 수 있습니다. -
클래식 모드에서 Replicat 프로세스는 일반 SQL을 사용하여 한 번에 하나씩 작업을 적용하는 단일 스레드 프로세스이므로 성능 병목 현상의 원인이 될 수 있습니다.
BATCHSQL가 사용으로 설정된 경우에도(Parameters and Functions Reference for Oracle GoldenGate 참조) Replicat는 대규모 또는 장기 실행 트랜잭션이 있는 테이블, 대량, 매우 많은 수의 열이 변경되는 테이블 및 LOB 데이터를 처리하는 데 더 오래 걸릴 수 있습니다. 그런 다음 트랜잭션 무결성을 유지 관리할 수 있다고 가정하여 해당 테이블을 자체 Replicat 그룹으로 분리할 수 있습니다.