본문 바로가기

Oracle GoldenGate2

OGG 를 이용한 초기적재

-- OGG 를 이용한 초기적재


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

-- INIT LOAD EXTRACT

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


extract initext


userid (USER), password (PASSWORD)

extfile ./dirdat/it, MAXFILES 100, MEGABYTES 1000, PURGE


TABLE (SCHEMA).(TABLE_NAME)       ;




GGSCI > add ext initext, sourceistable


GGSCI > info all tasks


GGSCI > START INITEXT



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

-- INIT PUMP

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


EXTRACT INITPUMP

PASSTHRU

RMTHOST ???.???.???.???, MGRPORT 7809

RMTTRAIL ./dirdat/it


report at 23:59

reportrollover at 00:00

statoptions, reportfetch, reportdetail, resetreportstats

FLUSHCSECS 30

EOFDELAYCSECS 30

REPORTCOUNT EVERY 10 MINUTES, RATE


TABLE (SCHEMA).(TABLE_NAME)       ;



GGSCI > add ext INITPUMP, exttrailsource ./dirdat/it, extseqno 0, extrba 0

GGSCI > add rmttrail ./dirdat/it, ext INITPUMP, megabytes 1000


-- 추출했던 트레일 파일 전송이 완료 된 걸 확인하고 삭제


GGSCI > INFO INITPUMP


GGSCI > DELETE INITPUMP


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

-- Initial Replicat

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


GGSCI > dblogin sourcedb (user)@???.???.???.???:3306, userid maria, password maria


-- MySQL 의 경우


GGSCI > EDIT PARAM INITREP


replicat INITREP

targetdb (user)@???.???.???.???:3306, userid maria, password maria


SOURCEDEFS ./dirprm/table.def

 

SQLEXEC "SET NAMES euckr"


discardfile ./dirout/initrep.dsc,append


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



GGSCI > add replicat initrep, exttrail ./dirdat/it, extseqno 0, extrba 0



-- PostgreSQL 의 경우


replicat INITREP

targetdb GG_Postgres userid tmall, password tmall


SOURCEDEFS ./dirprm/table.def

 

SQLEXEC "set client_encoding=euckr"


replacebadchar space


discardfile ./dirout/initrep.dsc,append


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



GGSCI > add replicat initrep, exttrail ./dirdat/it, extseqno 0, extrba 0



< 특이사항 >


- character 표현 범위의 문제로 초기 적재 시 에러가 발생하는 경우가 있는데 

replacebadchar space 

위 옵션을 사용해 회피합니다.

- 초기 적재 시 target 이 되는 테이블에는 index ( pk ) 가 반드시 있어야 합니다.

없는 경우 replicat 기동 시 mapping error 발생합니다.