본문 바로가기

Oracle GoldenGate2

ORACLE GoldenGate for PostgreSQL 12.2.0.1.0 설치

-- Source : ORACLE to Target : PostgreSQL


-- Outline

-- 1. PostgreSQL 설치

-- 2. GoldenGate 설치

-- 3. 초기적재

-- 4. 동기화


------------------------------------------------------------------

-- Goldengate for PostgreSQL 바이너리 파일을 위치 / 압축해제

------------------------------------------------------------------



------------------------------------------------------------------

-- OGG 에 접속 및 최초 디렉토리 구성

------------------------------------------------------------------


# ggsci


GGSCI > create subdirs


-- MGR 구성을 진행합니다.


GGSCI > view param mgr


port 7809

PURGEOLDEXTRACTS ./dirdat/* , USECHECKPOINTS, MINKEEPHOURS 48


DOWNREPORTMINUTES 30    

LAGREPORTMINUTES 5

LAGINFOMINUTES 10

LAGCRITICALMINUTES 60    

SYSLOG NONE


------------------------------------------------------------------

-- GLOBALS 구성 및 매니저 프로세스 기동

------------------------------------------------------------------


GGSCI > view param ./GLOBALS


CHECKPOINTTABLE test.GGS_CHECKPOINT


GGSCI > start mgr


-- 이 과정까지 진행되면 source 의 trail file 을 전송 받을 환경 구성이 완료 된 것입니다.

-- 실제 Source 에 pump 를 구성하여 trail file 전송이 이상없이 되는지 확인해 봅니다.



------------------------------------------------------------------

-- OGG 접속 용 PostgreSQL 계정 생성

------------------------------------------------------------------


-- PostgreSQL 에 OGG 가 접속할 수 있도록 계정을 생성합니다.

-- 원활한 진행을 위해 권한을 과도하게 주었기에, 추후 권한 축소에 대한 고민이 필요합니다.


postgresql=# create database test encoding='EUC_KR' lc_ctype='ko_KR.euckr' lc_collate='ko_KR.euckr' template='template0' ;


postgresql=# create schema test;


postgresql=# create user test superuser password 'test';



-- user 접속 권한을 통제하는 config 입니다.

-- 원활한 진행을 위해 권한을 과도하게 주었습니다.


# vi pg_hba.conf


host    all     all     0.0.0.0/0               trust

host    all     all     ::1/128                 trust



------------------------------------------------------------------

-- OGG 에서 PostgreSQL 에 접속이 가능한지 테스트 합니다.

------------------------------------------------------------------


-- odbc 설치


# yum install postgresql-odbc.x86_64



-- odbc 셋팅


-- user profile 에 추가


export ODBCINI=/data/ggt/dirprm/odbc.ini


-- vi odbc.ini


[ODBC Data Sources] 

GG_Postgres=DataDirect 9.5.4 PostgreSQL Wire Protocol 


[ODBC] 

IANAAppCodePage=106 

InstallDir=/data/ggt 


[GG_Postgres] 

Driver=/data/ggt/lib/GGpsql25.so

Description=DataDirect 9.5.4 PostgreSQL Wire Protocol 

Servername=localhost

Servertype=postgres

Database=test

HostName=???.???.???.???

PortNumber=5432 

LogonID=test

Password=test



# isql -v GG_Postgres test test


위 연결 성공이 선행되지 않으면 OGG 상에서 DBLOGIN 시에도 에러가 발생합니다.




GGSCI > dblogin sourcedb GG_Postgres userid test, password test


이 부분을 성공하지 못 하면 이후 replicat 구성 시 에러가 발생합니다.



------------------------------------------------------------------

-- 체크포인트 테이블을 생성합니다.

------------------------------------------------------------------


GGSCI > add checkpointtable test.GGS_CHECKPOINT


CHECKPOINTTABLE test.GGS_CHECKPOINT



------------------------------------------------------------------

-- REPLICAT 구성을 진행합니다.

------------------------------------------------------------------


GGSCI > EDIT PARAM REP_01


replicat rep_01

targetdb GG_Postgres userid test, password test


SOURCEDEFS ./dirprm/table.def

 

SQLEXEC "SET NAMES euckr"


discardfile ./dirout/rep_01.dsc,append


map (SCHEMA).(TABLE_NAME)     , target (SCHEMA).(TABLE_NAME)     ; 


GGSCI > add replicat rep_01, exttrail ./dirdat/kk, extseqno 0, extrba 0


-- 초기 적재 과정은 생략합니다.

-- 주의 사항으로 초기 적재 시 INDEX 가 없으면 MAPPING ERROR 가 발생합니다.



------------------------------------------------------------------

-- 초기적재

------------------------------------------------------------------


-- 이기종 DBMS 로의 데이터 이관입니다.

-- 가장 편한 방법은 OGG 자체에서 제공하는 초기적재를 이용하는 방법입니다.

-- 해당 방법은 테이블 전체 데이터를 읽어 trail file 로 기록합니다.

-- 여기서는 상세를 언급하지 않습니다.


------------------------------------------------------------------

-- 초기적재 후 변경 분 적용

------------------------------------------------------------------


GGSCI > start rep_01


-- 초기 적재의 시점이 소스->타겟 trail 파일 전송 시점보다 느립니다. ( LONG-TX 확인 필요함 )

-- 최근의 스냅샷을 만들어놓고 이후의 변경분을 중첩 적용하는 식으로 처리합니다. 

-- (pk index 가 있는 경우 사용할 수 있음)