-- 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 발생합니다.