DoubleDBDeep

[OGG] Oracle GoldenGate 기본 개념 본문

ORACLE/OGG | ADG

[OGG] Oracle GoldenGate 기본 개념

DBCAMI 2025. 2. 25. 14:32

* 주관적 공부 내용으로 다른 내용이 있을 수 있음을 참고하세요 ..

 

 

개요 상세
개념 정리 Oracle Golden Gate
Architecture
데이터 추출방식
구성요소
디렉토리
1 Oracle Golden Gate

주요기능
  1. 복제 시간 단축 (Reducing Latency) : 실시간 로그를 기반으로 변경된 데이터를 캡쳐(CDC)하여 다른 데이터베이스에 동기화
  2. 일관성 유지 : commit된 트랜잭션만 이동
  3. 다양한 이기종 데이터베이스 및 릴리즈 지원
  4. 단순한 아키텍쳐와 구성/설정
  5. 다양한 동기화 모델 및 연계 방안 제공
  6. 안정성 및 성능 보장 : Direct Log Access + X-Stream 방식으로 구현
    • Direct Log Access : 데이터베이스의 Redo Log 파일에 직접 접근하여 데이터 추출 (빠르며 성능 저하가 낮음, GoldenGate Classic Mode, Coordinated Mode에 해당)
    • X-Stream : Oracle이 지원하는 로그 추출 및 적재 방식 (가장 빠른 추출 및 적재 성능 보장, Integrated Mode에 해당)
2 Architecture


  • Capture : 트랜잭션 로그에서 commit된 데이터만 추출
  • Trail : 추출된 데이터가 저장된 파일
  • Pump : 추출한 데이터를 Target Server에 배포
  • Route : Target 서버 전송 시 압축 및 암호화 처리
  • Delivery : 트랜잭션 적합성에 맞는 데이터를 적용
3 데이터 추출방식

  1. Classic Mode
    - 일반적으로 사용되는 방식으로 다양한 이기종 DBMS 지원
    - 엔진 자체에서 Transaction Log처리
    - Extract Process는 Source System의 Redo log file 또는 Archive log에서 데이터 변경 사항을 캡처함.
    - Classic Capture는 대부분의 Oracle Data Type을 완전히 지원함.
    - Multitenant Container Database는 사용할 수 없음.
    - Oracle GoldenGate 18c (18.1.0) 이후 deprecated 됨.

  2. Integrated Mode
    - Classic Mode보다 제약 사항이 적고 추출 성능이 좋음 (하나의 그룹에서 여러개의 apply server가 뜸)
    - Oracle Database만 사용 가능 (오라클 내부의 log mining 기술을 사용하기때문)
    - Oracle Database KernelX-Stream API를 이용해 Transaction Log 처리
    - Extract Process가 Log Mining Server와 직접 상호작용하여 LCR(Logical Change Records) 형태로 데이터 변경을 수신
    - Capture Process가 Database와 완전히 통합된 형태이기 때문에 RAC, ASM, TDE 등과 함께 작동하기 위한 추가 설정이 필요하지 않음
    - Table Fast Filtering
    - Multitenant container에서 추출이 가능한 유일한 모드로, 하나의 Integrated Extract가 여러 개의 PDB를 마이닝할 수 있음
    - compatibility가 11.2.0.4 이상으로 설정된 경우 DDL 캡처는 비동기적으로 수행되며 DDL트리거를 사용하지 않아도 됨.


    3. ADG Mode
    - Oracle Database만 사용 가능
    - Oracle Active Data GuardStandby Redo Log를 읽어 Classic Mode로 추출
    - ADD SCHEMATRANDATA
    - Minimal supplemental logging
    - DDL capture
    - standby db에서 extract paramer에 TRANLOGOPTIONS MINEFROMACTIVEDG 사용
    - - > 이 옵션은 v$database의 db_role 의 값이 primary냐 standby냐에 따라 extract를 adg모드로 작동하도록 하는 파라미터
    - Standby DB에 적용된 데이터만 추출
    - Primary databas랑 redo thread 수가 동일해야 함
    - extract 추가 후 인스턴스를 추가할 수 없음
    - DDL Trigger는 Primary에 적용
    - OGG 10gR2 이상에서 지원
    - DBLOGREADER 지원하지 않음

    4.
    Downstream Mode
    - Oracle Database만 사용 가능
    추출 대상 DB 서버가 아닌 다른 서버에서 엔진 운영
    - Oracle Database KernelX-Stream API를 이용해 Transaction Log 처리
    - source database redo log를 downstream mining database로 offload 할 수 있다.
    - online redo log가 다운스트림 db로 전송되면 extract를 통해 캡쳐되고 이걸 수행하려면 다운스트림 db에 standby redo log가 구성되어있어야 함.
    - 다운스트림 DB의 standby redo log를 전송하도록 구성할 수 있는 소스DB는 하나뿐임.
    - 이 소스 데이터베이스의 log_archive_dest_n 설정에는 "TEMPLATE" 절이 없어야 함.
    - ARCHIVE를 전송하는 소스DB는 TEMPLATE 절 있어야함
    - 다운스트림DB로 redo를 전송하는 각 소스 데이터베이스에는 고유한 dbid가 있어야 함 (select DBID from v$database)
    - FAL_SERVER='DOWNSTREAM MINING DATABASE TNSNAMES'

4 구성요소

Manager
  1. Oracle GoldenGate의 제어 프로세스로, 추출 및 복제가 실행되는 동안 반드시 실행 중이어야 함
  2. 프로세스의 시작 및 중지, Trail 및 로그 파일, Report를 관리
Extract(Capture)
  1. 트랜잭션 로그에서 commit된 데이터를 추출하는 Capture Process
  2. Source Server에서 실행되며, 데이터를 Trail File에 저장
  3. DML, DDL 모두 추출 가능
Source Trail (EXTRACT TRAIL)
  1. Extract Process가 추출한 데이터를 Queue형태로 저장하는 파일
  2. 데이터 암호화 가능, 파일 크기 조정 가능 (최대 2GB, 지정 크기 도달 시 자동으로 새 파일 생성)
Data Pump
  1. Extract Process의 또 다른 유형
  2. TCP/IP network를 통해 Target Server로 보내는데 사용되는 2Extract Process
Collector
  1. Target Server의 백그라운드에서 실행되는 Process
  2. TCP/IP network를 통해 Source ServerData Pump Process가 전송한 데이터를 Remote Trail에 저장
  3. 필요에 따라 Manager Process에 의해 자동 시작됨
Remote Trail
  1. Target Server에 생성되는 파일 (Source Trail과 유사 형태)
Replicat
  1. Target Server에서 실행되어 변경사항을 적용하는 Process
  2. 데이터 정합성 유지를 위해 Trail File에 기록된 순서대로 변경사항을 적용
  3. 단일, 다중 Process로 적용 가능
  4. 데이터 필터링 및 변환 구성 가능
5 디렉토리

BR
BRExtract Checkpoint 기능의 구성요소로,  Extract를 재시작할 때 빠른 recover를 가능하게 하기 위해
특정 간격으로 디스크에 장기 실행 중인 open 트랜잭션을 caching
BRINTERVAL Parameter로 간격을 제어할 수 있음
Cache된 데이터를 사용하는 각 트랜잭션에 대한 디스크 공간은 default 64KB

cfg
ogg 구성하는데 사용되는 property XML 파일

dirchk
Extract, Replicat Process에 의해 생성되는 체크포인트 파일이 저장되며 current read write 위치를 저장함
데이터 정합성/결함성 등이 포함되어있음

dircrd
자격증명저장 파일

dirdat
Trail File 저장

dirdef
이기종 동기화 환경에서 사용되는 source, targe의 데이터 정의를 포함하기 위해 defgen으로 생성된 파일의 기본 위치

dirdmp
.trace, dump file 포함 , Classic Mode에서만 사용됨

dirjar
ogg 모니터링을 지원하는 java 실행파일

dirpcs
프로세스가 실행되는 동안에만 생성되는 상태파일로 프로그램 이름, 프로세스 이름, 포트번호, 프로세스 ID 가 포함됨

dirprm
ogg parameter file 저장 위치

dirrpt
ogg 프로세스들이 생성한 보고서 파일의 기본 위치로 처리실행과 관련된 통계정보 파일이 저장

dirsql
ogg 교육 스크립트와 사용자 생성 sql 스크립트 위치

dirtmp
총 트랜잭션 데이터가 cachemgr 파라미터에서 설정된 값을 초과하면 Extract는 임시 파일의 캐시데이터를 쓰기 시작하는데,
cachemgr은 파일시스템의 모든 공간을 사용할 수 있다고 가정함.
이 디렉토리는 트랜잭션 크기가 큰 경우 빨리 채워질 수 있기 때문에 I/O 경합이나 디스크 관련 Extract Abended 방지를위해 공간 확보 필요
CACHEDIRECOTRYdirtmp의 경로를 변경가능.

dirwlt
ogg wallet file
Non-Supported Oracle Data Types
+12:00 and -12:00를 벗어난  time offset
아래 타입으로 단일컬럼 구성된 테이블
UDT, LOB, XMLType(OGGXMLLOB로 인식), 32KB 보다 큰 VARCHAR2(MAX)
PK Unique Constraint,Unique Index를 가진 Scala columns 가 없는 LOB, UDT, XML, XMLType 컬럼을 가진 테이블
PKXML속성으로 구성된 테이블
32K보다 큰 XMLType update
CFILE,OPAQUE 포함하는 UDT
BINARY/Unprintable 문자를 포함한 CHAR, VARCHAR 속성을 가진 UDT
RMTTASK paramete를 사용하는 UDT
Nested Table UDTs with Char, NVARCHAR2, NCLOB
다른 UDT 일부인 Nested Table columns/attributes
등등.. 버전에따른 문서 참조

 

 

 

728x90