Oracle GoldenGate
Data Foundation 사업부
유광일
Agenda
What is Oracle GoldenGate?
Architecture Components Installation
Administration
Trouble Shooting
Agenda
What is Oracle GoldenGate?
Architecture Components Installation
Administration
Trouble Shooting
What is Oracle GoldenGate?
Oracle GoldenGate History
1995, Eric Fish, Todd Davidson GoldenGate Software Inc.
Oracle acquired goldengate in 2009
What is Oracle GoldenGate?
OGG(Oracle GoldenGate)는 Source System의 Database Redo/Archive Log에 접근해,
변경 된 데이터만 추출하여 Target System Database에 데이터를 동기화 하는 CDC 솔루션 입니다.
Source Database
Target
Database
What is Oracle GoldenGate?
CDC Technology
Change Data Capture 변경 데이터를 복제하여 데이터를 동기화 하는 기술입니다.
유형 개요 특징
Trigger 방식
대상 테이블에 Trigger 를 적용 DML 발생시 로그 테이블에 기록하여 변경 데이터 추출
Trigger를 생성해야 함
데이터베이스 성능 저하
Timestamp 방식
테이블에 Timestamp 컬럼 추가 Timestamp 컬럼 기준으로 변경 데이터 추출 DB Pooling으로 데이터베이스 성능 저하발생
Log Miner 방식
Oracle Utility를 이용하여 변경 데이터 추출 데이터 추출의 심각한 성능 저하 유발Direct Log Access 방식
데이터베이스 Redo Log 파일 직접 접근 파일 포맷을 분석하여 직접 변경 데이터 추출
빠른 추출 방식
데이터베이스 성능 저하 낮음
Kernel (X-Stream) 방식
Oracle 차세대 로그 추출 및 적재 방식 빠른 성능과 안정성을 보장하며, Oracle Database에 대해서는 최적의 기술임
가장 빠른 추출 성능과 안정성 보장
Oracle GoldenGate 만 지원 가능
Agenda
What is Oracle GoldenGate?
Architecture
Components Installation
Administration
Trouble Shooting
Architecture
OGG 기본 Architecture는 매우 단순한 구조 입니다.
실시간으로 Source System으로 부터 변경 데이터를 추출하여 데이터를 적재하는 방식으로 추출/전송/적재 모듈의 역할에 맞는 Architecture로 복제 시간과 자원 절약이 가능 합니다.
Route: Target 에 데이터 전송 시 압축과 암호화 (옵션) 처리 Extract (Process): 트랜잭션 로그 파일을 읽어서 Commit 된 데이터를 추출하여 Trail 파일에 저장
Trail files (File): 추출된 변경 데이터가 저장되어 있는 OGG 전용 파일
Replicat (Process): 변경 데이터 적재 Pump (Process): Trail 파일의 데이터를 N개의 Target 으로 전송
Target Database
Pump
소스 Database 타겟 Database
Trail
Files Trail
Files
Oracle GoldenGate Oracle GoldenGate
TCP/IP BI-Directional
Extract
CollectorMGR MGR
Replicat SQL
Source System에 성능 저하가 거의 없으며, 다양한 종류의 Source/Target System을 지원 합니다.
필요에 따라 유연한 구성이 가능하고 다양한 시스템 중단과 장애 시에도 데이터 정합성을 보장 합니다.
Unidirectional
Query Offloading
Zero-Downtime Migration
Broadcast
Data Distribution Integration/Consolidation Data Warehouse
Peer-to-Peer
Load Balancing Multi-Master
Bi-Directional
Hot Standby or Active-Active for HA
BPM CEP
Data Distribution via Messaging
Architecture
Agenda
What is Oracle GoldenGate?
Architecture
Components
Installation
Administration
Trouble Shooting
Components
크게 6가지의 Component로 구성 됩니다.
Data Pump (전송) Extract
(추출)
Replicat (적재)
Trail or Extract Files (Binary)
Checkpoint
Manager
Components
Manager
Extract, Replicat 프로세스를 제어하는 process 입니다.
하나의 Manager는 다수의 Extract, Replicat을 관장 합니다.
• First Start Process
- OGG Process 중 가장 먼저 실행 되어야 하는 process
• Feature
- OGG 프로세스 기동(Extract, Replicat) - Dynamic Start (자동 시작)
- 프로세스들의 포트 관리 - Trail 관리
- Event, Error, Threshold 리포트 생성
Replicat Extract (적재)
(추출)
Manager
Components
Extract
OGG의 추출(Capture)을 담당하고 있는 process 입니다.
• Source System Database의 Transaction Log를 읽어 Commit 된 데이터를 “Trail” 이라는 OGG 전용 Binary File을 생성하고 기록합니다.
• Extract 구성 방식
- Classic Mode
- Integrated Mode (for ORACLE)
• 하나의 Source Database에 여러 개의 Extract Group을 설정이 가능
Pump
소스 Database 타겟 Database
Trail
Files Trail
Files
Oracle GoldenGate Oracle GoldenGate
TCP/IP BI-Directional
Extract
CollectorMGR MGR
Replicat SQL
Capture Mode (1)
• Classic Capture
- OGG의 일반적인 Capture 방식
- Redo log와 Archive Log를 읽어 들여 Source Database의 변경 분을 추출 - 복잡한 데이터 타입을 제외한 대부분의 데이터 타입을 지원
- Multitenant Container Database를 제외한 대부분의 Oracle Database는 지원함
- Compatibility 11.0.0.0. 이하에서 UDT, VARRAY, NOLOGGING LOB, TDE, SECUREFILE LOB 등을 지원함
Components
Extract
Oracle
Multitenant Container Database
Data Types
Long Varchar, xml.. compression, HCC, XA
Capture Mode (2)
• Integrated Capture
- OGG 11.2.1.0.1, Oracle 11.2.0.3 이상에 동작 함 (Patch 13560925가 필요함) - 별도의 Logmining Server에서 LCR 형태로 변경분을 전달 받음
- Classic Capture 보다 더 많은 Data Type을 지원 - 추가 적인 설정 없이 RAC, ASM, TDE를 지원
- Multiple Pluggable Database, Multitenant Container Database를 지원 - 11.2.0.4 이후 부터는 별도의 DDL 복제 Trigger 설정 없이 DDL 복제를 지원
Components
Extract
Oracle
Multitenant Container Database Data Types
Long Varchar, xml.. compression, HCC, XA
Components
Pump Extract
Extract(추출) Process가 생성한 Trail을 읽어 Target System으로 전송하는 역할을 하는 Process 입니다.
• Optional하게 구성되는 Process
- 구성하지 않을 경우, Extract process가 Trail File 추출 + Target System으로 직접 전송하는 작업 추가
- Pump Extract를 구성함으로써 Storage 설정을 더 유연하게 하며 Extract(추출) Process를 TCP/IP 활동으로 부터 분리 시킴.
- OGG에서는 구성하는 것을 권장 함 - Data Filtering, Mapping, Conversion
• 구성하는 이유
- 네트워크 및 Target System 유실 방지 - 데이터 Filtering, 가공
- 다중 Source System의 데이터를 Target System에 통합 할 경우 - 하나의 Source System 데이터를 다중 Target System에 분산 할 경우
Pump
소스 Database 타겟 Database
Trail
Files Trail
Files
Oracle GoldenGate Oracle GoldenGate
TCP/IP BI-Directional
Extract
CollectorMGR MGR
Replicat SQL
Components
Replicat Process
Source System으로 부터 전송 받은 Trail을 읽어, Target Database에 DML 또는 DDL을 적용하는 Target System에서 기동 되는 Process 입니다.
• Replicat 구성 방식
- Classic
- Coordinated
- Integrated (for ORACLE) - Parallel
Pump
소스 Database 타겟 Database
Trail
Files Trail
Files
Oracle GoldenGate Oracle GoldenGate
TCP/IP BI-Directional
Extract
CollectorMGR MGR
Replicat SQL
Replicat Mode (1)
• Classic Replicat
: 전통적인 구성방식으로 Data를 Serial하게 적용 합니다.
1) Source System에서 전달받은 Trail을 읽음 2) Data Filtering, Mapping, Conversion 수행
3) DML과 DDL을 Source Database와 같이 Commit 된 순서대로 SQL문을 생성 4) Oracle Call Interface를 통하여 Target에 SQL 적용
Components
Replicat Process
Replicat Mode (2)
• Coordinated Replicat
: OGG Version 12.1 이후에 등장한 mode로 multi-threads 기반으로 Data를 Parallel 하게 적용 할 수 있습니다.
1) Source System에서 전달받은 Trail을 읽음 2) Data Filtering, Mapping, Conversion 수행
3) DML과 DDL을 Source Database와 같이 Commit 된 순서대로 SQL문을 생성 4) Oracle Call Interface를 통하여 Target에 SQL 적용
Components
Replicat Process
Replicat Mode (3.1)
• Integrated Replicat
: Oracle Database 11.2.0.4 이상에서만 사용 될 수 있는 Mode로, ‘Lightweight Streaming API’를 사용하여 XStream에서 변경 분을 처리 합니다.
1) Source System에서 전달받은 Trail을 읽음 2) Data Filtering, Mapping, Conversion 수행
3) Commit 된 순서대로 LCR 형태로 구조화 하고 DDL은 Replicat에서 직접 적용 4) Inbound Server로 전송 된 후 data를 Target Database에 적용 함
Components
Replicat Process
Replicat Mode (3.2)
• Integrated Replicat
: Integrated 모드에서 지원되지 않는 Datatype 또는 Operation이 요청되면 자동으로 OCI를 사용하여 ‘DIRECT MODE’로 적용 합니다.
• Case in using Direct Mode
1) DDL operation 2) Sequence Operation
3) SQLEXEC parameter within a TABLE or MAP parameter 4) EVENTACTIONS processing
• Requirements
1) Extract parameter ‘LOGALLSUPCOLS’ 설정
2) Database, Schema Level Supplemental Logging 설정 3) Database parameter STREAM_POOL_SIZE 설정
Components
Replicat Process
DML
Direct Mode
DML DDL
Intergrated Mode Intergrated Mode
Replicat Mode (4)
• Parallel Replicat
: OGG 12cR3에서 처음 소개 된 기능으로 Integrated의 parallel한 적재방식의 장점과 종속성 계산, 병렬 처리 등을 Database 엔진을 사용하지 않고 외부에서 처리함으로써 Database에 추가적인 부담을 주지 않고 Parallel한 Data 적재 방식을 제공 합니다.
1) Trail File을 Mapper가 Read하여 Record를 매핑 2) Mapper는 record를 Master에게 전달
3) Master가 데이터를 수신하면 트랜잭션을 단일 Stream으로 정렬하고 스케쥴링하여 Applier에게 전달 4) Applier는 Target Database에 데이터를 적재
Components
Replicat Process
Components
Trail or Extract files
Source System Database의 변경사항을 지속적으로 복제하기 위하여 변경 된 데이터를 디스크에 File 형태로 임시로 저장합니다.
• Trail File
- EXTTRAIL : 추출 전용 Extract - RMTTRAIL : Pump Extract
• Creation and Maintenance
- 기본적으로 Oracle GoldenGate 설치경로의 Sub directory 인 ‘dirdat’ 경로에 저장 됨
- ‘ADD EXTTRAIL’(Extract), ‘ADD RMTTRAIL(Pump Extract)’ Command에 의해서 알파벳 2글자로 명명하여 Trail을 생성 - ‘GLOBALS’ Parameter file을 통해 6자리 또는 9자리로 시퀀스 넘버를 설정이 가능함.
- Sequence Number가 999999999 까지 도달하면 다시 000000000 부터 덮어쓰기 시작
- Manager Parameter ‘PURGEOLDEXTRSACTS’ 를 이용하여 주기적으로 Trail을 삭제 할 수 있음
Pump
소스 Database 타겟 Database
TRAIL EXT RMT
TRAIL
Oracle GoldenGate Oracle GoldenGate
Extract
CollectorReplicat
MGR
Components
Checkpoints
유사시 복구를 위해 Process의 현재 Read, Write 위치를 기록 합니다.
Extract에 의해 어디까지 Capture 됐는지, Replicat에 의해 어디까지 적용 됐는지 기록 합니다.
Commit Ordered So urce Trail
Commit Ordered Ta rget Trail Source Database
Target Database Begin, TX 1
Insert, TX 1 Begin, TX 2
Update, TX 1 Update, TX 2
Commit, TX 2 Begin, TX 3
Update, TX 3
Begin, TX 4 Commit, TX 3
Delete, TX 4
Begin, TX 2 Update, TX 2 Commit, TX 2 Begin, TX 3 Update, TX 3 Commit, TX 3
Begin, TX 2 Update, TX 2 Commit, TX 2 Start of Oldest Open (Uncommitted) Transaction
Current Read Position
Capture Checkpoint
Current Write Position
Current Read Position
Pump Checkpoint
Current Write Position
Current Read Position
Apply Checkpoint