== OGG GLOBALS 파일 설정(Genaral) ======================================================================
#> ./ggsci
GGSCI> EDIT PARAM ./GLOBALS
해당 명령어를 이용하여 OGG 설치 디렉토리의 GLOBALS 파일을 편집하여
저장 할 수 있다
GGSCHEMA OGG -- DB내에 이용할 스키마명
CHECKPOINTTABLE OGG.GGSCHKPT -- DB내에 사용할 체크포인트 테이블명
SYSLOG NONE -- SYS로그 여부
-- SYSLOG 때문에 사용하던 기능이었는데 12cR3 부터는 필요 없어짐으로 있어도 되고 없어도 되는 설정임
== OGG Manager Process 설정 및 기동
#> ./ggsci -- ggsci 툴 이용하여 OGG 연결
GGSCI> EDIT PARAM MGR --
해당 명령어를 이용하여 OGG 설치 디렉토리내 dirprm 디렉토리 밑에 mgr.prm파일을
편집하여 저장 할 수 있다.
-- mgr.prm 파일내용(Source)
PORT 9010
-- mgr.prm 파일내용(Target)
PORT 9010
위와 같이 OGG에서 사용할 수 있는 TCP/IP Port 를 지정한뒤에 파일을 저장한다
GGSCI> START MGR -- Manger Process 기동
GGSCI> info ALL -- 체크
GGSCI> info MGR -- 체크
== 테이블 데이터 동기화를 위한 Supplemental Logging 설정(Source) ================================================================
#> ./ggsci
GGSCI> dblogin userid [OGG Schema]
ex) dblogin userid ogg
passwod : ogg
GGSCI> INFO TRANDATA [owner].[table_name] -- 테이블 Supplemental Logging 설정 여부 확인
ex) INFO TRANDATA APP.TCUSTMER
GGSCI> ADD TRANDATA [owner].[table_name] -- 해당 테이블 Supplemental Logging 설정
ex) ADD TRANDATA APP.TCUSTMER
반드시 PK가 있어야 함 없을시 Warning 에러 발생
GGSCI> INFO TRANDATA [owner].[table_name] -- 테이블 Supplemental Logging 설정 여부 확인
== Checkpoint 테이블 생성(Target) Source에는 필요없음.
#> ./ggsci
GGSCI> dblogin userid [OGG Schema]
ex) dblogin userid ogg
passwod : imsi00
GGSCI> ADD CHECKPOINTTABLE
== Extract Process 생성 및 기동(Source) ====================================================================
OGG에서 가장 중요한 Extrac 즉 Oline Redo/Archive LOG를 읽어서 변경 데이터를
추출하는 Process
#> ./ggsci
GGSCI> EDIT PARAM [EXTRACT_NAME]
ex) EDIT PARAM ext01
해당 명령어를 이용하여 OGG 설치 디렉토리내 dirprm 디렉토리 밑에 ext01.prm파일을
편집하여 저장 할 수 있다.
############################################################################################
-- ext01.prm 파일 내용 작성하여 설정
--# Extract Name
extract ext02
--# DB Information
UserID ogg, Password ogg
TRANLOGOPTIONS INTEGRATEDPARAMS(max_sga_size 2048, parallelism 2, _LOGMINER_READ_BUFFERS 256)
TRANLOGOPTIONS BUFSIZE 10000000
TRANLOGOPTIONS _READAHEADCOUNT 64
_TRAILOUTBUFFERSIZE 1048576
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
--# Management Discard File
DiscardFile ./dirout/ext02.dec, append, megabytes 50
DisCardRollover at 00:01
--# Report File
ReportCount Every 1 Records
ReportRollover at 00:01
--# Trail (Ext)
ExtTrail ./dirdat/et
--# Table List
TABLE GRN.*;
TABLE PRD.*;
############################################################################################
-- Extract Process 등록
위에서 등록한 내용을 토대로 OGG에 Extract 등록
GGSCI> INFO ALL -- 기존 정보 확인
GGSCI> dblogin userid ogg -- ogg 스키마로 DB접속
Password : ogg
GGSCI> ADD EXTRACT [extract name], TRANLOG, BEGIN NOW -- EXT01 이름으로 EXTRACT Process 등록
ex)ADD EXTRACT EXT01, TRANLOG, BEGIN NOW -- EXT01 이름으로 EXTRACT Process 등록
GGSCI> ADD EXTTRAIL ./[extrail 경로], EXTRACT [extract name], MEGEBYTES [file size] -- Trail 파일 경로, EXTRACE 파일명, 파일 사이즈 지정
ex)ADD EXTTRAIL ./dirdat/ex, EXTRACT ext01, MEGEBYTES 50
GGSCI> INFO ALL -- 추가된 EXTRACT Process 확인
GGSCI> INFO [extract name] -- EXTRACT PROCESS 상세 확인
ex) INFO EXT01
-- integrated 모드
GGSCI> ADD EXTRACT TEST_EXT INTEGRATED TRANLOG, BEGIN now
-- Extract Process 삭제
잘못된 Extract Process 등록시 삭제
#> ./ggsci
GGSCI> DELETE [extract name]
ex) DELETE EXT01
-- Extract Process 시작
GGSCI> Start [extract name] -- EXTRACT Process 기동
ex) START EXT01
GGSCI> VEIW REPORT [extract name] -- 기동 상태 및 에러 확인
ex) VEIW REPORT EXT01
GGSCI> INFO [extract name] -- EXTRACT PROCESS 상세 확인
ex) INFO EXT01
-- Extract 디비에 등록
REGISTER EXTRACT TOT_EXT DATABASE
-- intgrated 모드
ADD EXTRACT TOT_EXT INTEGRATED TRANLOG, BEGIN now
== PUMP Process 생성 및 기동(Source) ========================================================================
OGG에서 변경데이터를 전송하는 역할을 하는 PUMP Procss
#> ./ggsci
GGSCI> EDIT PARAM [PUMP_NAME]
ex) EDIT PARAM pmp01
해당 명령어를 이용하여 OGG 설치 디렉토리내 dirprm 디렉토리 밑에 pmp01.prm파일을
편집하여 저장 할 수 있다.
############################################################################################
-- pmp01.prm 파일 내용 작성하여 설정
--# Pump Name
extract pmp05
--# Mode
PassThru
EOFDELAYCSECS 30
FLUSHCSECS 30
--# Target Information
RmtHost 192.168.24.11, MGRPORT 9020
--# Trail (Rmt)
RmtTrail ./dirdat/ek
--# Report File
ReportCount Every 1 Records
--ReportCount EVERY 1 HOURS, RATE
ReportRollover at 00:01
DISCARDFILE ./dirout/psdb01.dsc, APPEND, MEGABYTES 2000
--# Table List
TABLE APP.*;
############################################################################################
-- Pump Process 등록
위에서 등록한 내용을 토대로 OGG에 PUMP 등록
GGSCI> ADD EXTRACT [pump name], exttrailsource [extrail 경로] -- EXT01 이름으로 EXTRACT Process 등록
ex)ADD EXTRACT pmp01, exttrailsource ./dirdat/ex -- EXT01 이름으로 EXTRACT Process 등록
GGSCI> ADD RMTTRAIL ./[extrail 경로], EXTRACT [pump name], MEGEBYTES [file size] -- Trail 파일 경로, EXTRACE 파일명, 파일 사이즈 지정
ex)ADD RMTTRAIL ./dirdat/ex, EXTRACT pmp01, MEGABYTES 50
GGSCI> INFO ALL -- 추가된 EXTRACT Process 확인
GGSCI> INFO [pump name] -- EXTRACT PROCESS 상세 확인
ex) INFO pump01
-- Pump Process 삭제
잘못된 Pump Process 등록시 삭제
#> ./ggsci
GGSCI> DELETE [pump name]
ex) DELETE pump01
-- Pump Process 시작
GGSCI> Start [Pump name] -- EXTRACT Process 기동
ex) START pmp01
GGSCI> VEIW REPORT [Pump name] -- 기동 상태 및 에러 확인
ex) VEIW REPORT pmp01
GGSCI> INFO [Pump name] -- EXTRACT PROCESS 상세 확인
ex) INFO pmp01
== REPLICAT Process 생성 및 기동(TARGET) ===============================================================================================================================================================
Source 시스템의 변경데이터를 Extract/Pump를 받은 변경데이터를 Target DB에 반영하는
REPLICAT Process
#> ./ggsci
GGSCI> EDIT PARAM [REPLICAT_NAME]
ex) EDIT PARAM rep01
해당 명령어를 이용하여 OGG 설치 디렉토리내 dirprm 디렉토리 밑에 rep01.prm파일을
편집하여 저장 할 수 있다.
############################################################################################
-- rep01.prm 파일 내용 작성하여 설정
--# Replicat Name
Replicat rep05
--# DB Information
USERID ogg, Password "ogg!"
--# Management Discard File
DiscardFile ./dirout/rep05.dec, append, megabytes 200
DisCardRollover at 00:01
--# Report File
ReportCount Every 1 Records
--ReportCount EVERY 1 HOURS, RATE
ReportRollover at 00:01
--# Auto Mapping Column
AssumeTargetDefs
--# defgen file
--#SOURCEDEFS /apps/oggdev/ogg123/dirdef/record.def
--# Table List
map APP.*, target ETT.* ;
MAP GRN.TESTFROM, TARGET ODS.TESTTO&
COLMAP
(
USEDEFAULTS,
ODS_LUPD_DT=@DATENOW(),
RGCS_PHYC_DEL_YN=@CASE(@GETENV('GGHEADER', 'OPTYPE'),'DELETE','Y','N')
);
--ALLOWNOOPUPDATES
Updatedeletes
OVERRIDEDUPS
############################################################################################
-- REPILICAT Process 등록
위에서 등록한 내용을 토대로 OGG에 REPLICAT 등록
GGSCI> ADD REPLICAT [REPLICAT_NAME], exttrail [extrail 경로] -- REP01 이름으로 REPLICAT Process 등록
ex)ADD REPLICAT rep01, exttrail ./dirdat/ex -- REP01 이름으로 REPLICAT Process 등록
GGSCI> INFO ALL -- 추가된 REPLICAT Process 확인
GGSCI> INFO [REPLICAT name] -- REPLICAT PROCESS 상세 확인
ex) INFO REP01
-- REPLICAT Process 삭제
잘못된 REPLICAT Process 등록시 삭제
#> ./ggsci
GGSCI> DELETE [REPLICAT name]
ex) DELETE REP01
-- REPLICAT Process 시작
GGSCI> Start [REPLICAT name] -- EXTRACT Process 기동
ex) START pmp01
GGSCI> VEIW REPORT [REPLICAT name] -- 기동 상태 및 에러 확인
ex) VEIW REPORT pmp01
GGSCI> INFO [REPLICAT name] -- EXTRACT PROCESS 상세 확인
ex) INFO pmp01
-- REPLICAT 반영 건수 확인
GGSCI> STATS [REPLICAT_NAME]
===========================================================================
Colmap 사용하기
-- TARGET EXT05 내용
--# Table List
TABLE APP.TCUSTMER;
TABLE APP.TCUSTORD,
token(tk_rowid = @getenv('ORARECORD','ROWID'),
tk_commit_ts=@getenv('GGHEADER','COMMITTIMESTAMP'));
-- REPLICAT REP05 내용
--# Table List
MAP APP.TCUSTMER, TARGET ETT.TCUSTMER;
MAP APP.TCUSTORD, TARGET ETT.TCUSTORD &
COLMAP
(USEDEFAULTS, row_id=@token('tk_rowid'), commit_ts=@token('tk_commit_ts')),
keycols(row_id);
impdp test/test schemas=ODS directory=EXPDP1 logfile=ODS_TABLE_IMPDP.log job_name=ODS_TABLE_IMPDP content=metadata_only parallel=8 NETWORK_LINK=testdb
평소에는 [SCHMA].[*]로 전부 선택해서 사용 할 수있으나
만약 콜맵을 이요하여 변경내용만 추가해서 저장하거나 하는경우 반드시 명시해줘야함.
테스트 문서에는 " 더블쿼테이션으로 되어있으나 실제 테스트에는 '' 싱글 쿼테이션을 사용해야함
-- trail 파일 자동삭제 설정
mgr.prm파일에 작성할것
PURGEOLDEXTRACTS ./dirdat/*, usecheckpoints, minkeepdays 7
*/
-- Replicat 프로세스 초기화
ALTER REPLICAT [프로세스명] BEGIN NOW
-- 스키마 단위로 supplemental log 설정
GGSCI> ADD SCHEMATRANDATA [스키마명]
-- replicat 초기화
ALTER recplicat TEST_R01, BEGIN NOW
-- SCN 이용한 REPLICAT 프로세스 시작
start recplicat TEST_R01, aftercsn
start replicat [PROCESS NAME] aftercsn [SCN number] -- 반드시 aftercsn 옵션을 써서 수행해야 함.
-- datenow TIMESTAMP 추가
ODS_LUPD_TS=@DATE('YYYY-MM-DD HH:MI:SS.FFFFFF', 'JTS', @GETENV('JULIANTIMESTAMP')), &
ODS_LUPD_TS=@DATENOW(), &
-- 현재 SCN 확인 및 aftercsn 적용 방법
-- 현재 SCN 확인(SOURCE)
SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER CURRENT_SCN
FROM DUAL;
CURRENT_SCN
------------
6041742631
-- timestamp 로 scn 확인
select timestamp_to_scn(TO_TIMESTAMP('20180411 14:00:29.988800','YYYYMMDD HH24:MI:SS.FF6'))
from dual
-- scn 으로 timestamp 확인
select scn_to_timestamp(6041841798)
from dual
-- 위에서 확인한 SCN 시점 데이터만 export (source)
expdp test/test dumpfile=test.dmp LOGFILE test.LOG schemas=test_user flashback_scn=6041742631
-- 확인한 SCN 시점 데이터만 import (target)
impdp test/test dumpfile=test.dmp LOGFILE test_imp.LOG schemas=test_user
-- 해당 시점이후 시점에서 동기화포인트 찾으면서 프로세스 스타트 (target)
START replicat test_rep, aftercsn 6041742631
[출처] OGG 프로세스 설정|작성자 경진
'ORACLE > 이중화(HA)' 카테고리의 다른 글
[OGG] COLMATCH (0) | 2024.01.20 |
---|---|
[OGG] FILTER 데이터 선택 (0) | 2024.01.20 |
OGG 12c 설치 구성 (0) | 2019.10.18 |
integrated extract 구성 (0) | 2019.10.18 |
parallel replicat (0) | 2019.10.18 |