본문 바로가기

Oracle GoldenGate2

ORACLE GoldenGate for MySQL 12.2.0.1.1

-- Source : ORACLE to Target : MySQL ( MariaDB )


-- Outline

-- 1. MariaDB 설치

-- 2. GoldenGate 설치

-- 3. 초기적재

-- 4. 동기화


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

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

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



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

-- 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


GGSCI > start mgr


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

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



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

-- OGG 접속 용 MySQL 계정 생성

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


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

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


mysql > grant all privileges on *.* to 'mysql'@'localhost' identified by 'mysql';

mysql > grant all privileges on *.* to 'mysql'@'???.???.???.???' identified by 'mysql';



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

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

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


GGSCI > dblogin sourcedb test@???.???.???.???:3306, userid mysql, password mysql


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



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

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

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


GGSCI > add checkpointtable test.GGS_CHECKPOINT


CHECKPOINTTABLE test.GGS_CHECKPOINT



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

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

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


GGSCI > EDIT PARAM REP_01


replicat rep_01

targetdb test@???.???.???.???:3306, userid maria, password maria


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 가 있는 경우 사용할 수 있음)