Oracle GoldenGate Guide 1 - Oracle to Oracle 단방향 동기화

View Comments


Oracle to Oracle 단방향 동기화


OGG_Guide_v0.1.docx


# 본 가이드는 실습 위주로 작성되었으며 좀더 자세한 내용은 첨부된 문서파일에 있습니다.



동일한 Layout을 가진 Table의 Initial Load와 동기화





0 사전 준비

 - 단방향 동기화 테스트를 위해 두 개의 Oracle DB instance로 실습환경을 구성하였다.

           orcl -> source system

           ortest -> target system

 

0.1 Installation

0.1.1 Environment

 - Application : Oracle Database 11g, GoldenGate 11g

 

0.1.2 Install

 - ggsource ggtarget에 각각 GG의 압축을 풀어 설치한다.

 - Source system target system 모두 하위 디렉토리를 생성한다.

Shell> ./ggsci

GGSCI> CREATE SUBDIRS

 

0.2 Configuration

 - DML에 의해 변경된 데이터의 동기화를 위한 로그파일의 활성화

0.2.1 Supplement Log

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

 

0.2.2 Redo Log

SQL> ALTER SYSTEM SWITCH LOGFILE;

 




1 Prepare the Environment

1.1 Source 시스템 환경 준비

1.1.1 Source에서의 Manager process 구성

 - Source 시스템에 Manager parameter file을 만들고 사용할 포트를 설정한다

GGSCI> edit param mgr

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

port 6001


1.1.2 Source Table을 만들고 데이터를 적재한다.

 - GoldenGate 11g에 예제로 포함된 Tcustmer, Tcustord 두 개의 table로 실습을 진행하였다.

 

1.1.3 supplemental logging 추가

 - GGSCI Source DB에 접속 후 2개의 테이블에 대한 추가 로깅 설정

GGSCI> dblogin userid lovelybin, password ********

GGSCI> add trandata lovelybin.tcustmer

GGSCI> add trandata lovelybin.tcustord

 

  

1.2 Target 시스템 환경 구성

 

1.2.1 Target에서의 Manager process 구성

 

 - Manager가 사용할 Port 설정 

GGSCI> edit param mgr

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

port 6002

 

1.2.2 Table 생성

Target 시스템에 table 생성

- Target System Table만 생성하고 Data는 넣지 않는다.

 




2 Initial Data Load

 - 초기 데이터를 적재를 위한 장단점을 지닌 BackUp/Restore 또는 Export/Import와 같은 기술이 있다. 그 대신에 어플리케이션이 활성 상태일 동안 초기 데이터 적재를 수행하기 위해 GG를 사용할 것이다. 이번 장에서는 소스 테이블에서 데이터를 가져오기 위한 Extracting 사용과 타깃 시스템에 Replicat을 하기 위해 직접 데이터 전송을 보여준다

2.1 Initial Data Capture

2.1.1 extract 추가

 - 초기 데이터 capture를 위한 extract를 생성

GGSCI> add extract eini01, sourceistable

  

2.1.2 Parameter 설정


 GGSCI> edit param eini01

 --extract parameter

extract eini01

userid lovelybin, password ********

rmthost 210.108.181.24, mgrport 6002

rmttask replicat, group rini01

table lovelybin.tcustmer;

table lovelybin.tcustord;



2.2 Initial Data Delivery

2.2.1 Replicat 추가

 - Target system에 초기 데이터 로드를 위한 배치 작업을 추가한다.

GGSCI> add replicat rini01, specialrun


2.2.2 Parameter 설정

 * Target System이 바라볼 DB SETENV 명령을 통해 바꿔준다.

 GGSCI> edit param rini01

 --replicat parameter

replicat rini01

setenv (ORACLE_SID="ortest")

--Identical Table 

assumetargetdefs

userid lovelybin, password ********

discardfile ./dirrpt/rini01.dsc, purge

map lovelybin.*, target lovelybin.*;


2.2.3 초기 적재 process 실행

Source system에서 다음과 같이 실행한다.

GGSCI> START EXTRACT EINI01

 GGSCI> VIEW REPORT EINI01


 



3 Change Data Capture

 - 로그 기반의 Oracle 데이터 Capture의 경우, Capture Process Oracle Redo log 또는 Archive log에서 직접 변경 데이터를 capture하고, GoldenGate remote trails인 큐에 변경 사항을 저장하도록 구성된다.

3.1 change capture 구성

 - 변경된 데이터 감지를 위한 Capture Process를 구성한다

3.1.1 Extra Group 추가

GGSCI> ADD EXTRACT EORA01, TRANLOG, BEGIN NOW, THREADS 1

 

 - 추가된 Extract Group을 확인한다.

GGSCI> info eora01



3.1.2 Extract Parameter 설정

 GGSCI> edit param eora01

 --extract group parameter

extract eora01

userid lovelybin, password ********

rmthost 210.108.181.24, mgrport 6002

rmttrail ./dirdat/01

table lovelybin.tcustmer;

table lovelybin.tcustord;


3.1.3 Trail 정의

 - 변경될 데이터를 Target System을 저장하기 위한 Trail을 추가한다.

ADD RMTTRAIL ./dirdat/01, EXTRACT EORA01, MEGABYTES 5

 

 - 생성된 Trail의 정보

INFO RMTTRAIL *

 

3.1.4 Capture Process 구동

START EXTRACT EORA01

 

3.2 Change Delivery 구성

 - 변경된 데이터를 감지하여 Target System으로 전달하기 위한 설정을 한다.

3.2.1 Checkpoint table 설정

 - 변경된 데이터를 어디까지 읽어 들였는지 확인하기 위하여 Checkpoint table을 설정한다.

 - Target System Checkpoint table을 추가하기 위해 GLOBAL Parameter 파일을 설정한다.

GGSCI> EDIT PARAMS ./GLOBALS

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

        checkpointtable lovelybin.ggschkpt

 

 - Target System DB에 접속해 Replicat Checkpoint table을 생성한다.

GGSCI> DBLOGIN USERID ggtarget1, PASSWORD welcome1

GGSCI> ADD CHECKPOINTTABLE

 

3.2.2 Replicat Group 추가

Target System Replicat Group을 추가한다. Source에서 설정한 Trail과 동일한 파일명으로 한다.

GGSCI> ADD REPLICAT RORA01, EXTTRAIL ./dirdat/01

 

3.2.3 Replicat Parameter 설정

GGSCI> EDIT PRARAM RORA01

 --replicat parameter

replicat rora01

setenv (ORACLE_SID="ortest")

--Identical Table 

assumetargetdefs

userid lovelybin, password ********

discardfile ./dirrpt/rini01.dsc, purge

map lovelybin.tcustmer, target lovelybin.tcustmer;

map lovelybin.tcustord, target lovelybin.tcustord;

3.2.4 Replicat Process 구동

START REPLICAT RORA01

 

GGSCI> INFO REPLICAT RORA01

 

 


 



4 Generate Activity and Verify Results

 

4.1 Generate Database Operation

4.1.1 Execute DML

 - GoldenGate 예제로 있는 스크립트를 통해 Source DB의 내용을 변경한다.

 

4.2 Verify change capture and delivery

4.2.1 Result of Source System

Tcustmer

Tcustord

 

 - Target System으로 변경 데이터 전송

GGSCI> SEND EXTRACT EORA01, REPORT

GGSCI> VIEW REPORT EORA01

 

4.2.2 Result of Target System

 - Log 파일을 통한 변경 확인

GGSCI> SEND REPLICAT RORA01, REPORT

GGSCI> VIEW REPORT RORA01

 

 - DB Link를 통한 변경 데이터 확인

SQL> (select * from tcustmer minus select * from tcustmer@ortest_link)

  2  UNION ALL

  3  (select * from tcustmer@ortest_link minus select * from tcustmer);

 

no rows selected

 

 



# 실습에 관한 좀 더 자세한 사진은 첨부문서에 있습니다.




Comments (+add yours?)

Tracbacks (+view to the desc.)