1.Oracle Golden Gate

1-1 Architecture

  • Manager Process
  • OGG 전체의 Process들에 대한 제어 및 모니터링 지원

       

  • EXTRACT Process
  • 데이터에 대한 변경된 사항에 대하여(Redo/Archive Log로 부터 Commit된 Transaction) Read하여 Source Trail에 변경 정보 저장

       

  • REPLICAT Process
  • Target Trail을 Read하여 주어진 Mapping Rule 조건에 맞게 Target DB에 DML, DDL 수행(SQL문 생성), SQL 생성시 Parameter 파일의 Mapping 정보를 참조
  • 생성된 SQL과 Target Trail의 데이터를 결합하여 SQL문 완성

       

  • Source/Target Trail
  • Capture된 변경정보 데이터를 저장하는 File(et00000 등)

   

1-2 OGG Directory 구성

   

Directory 명

역할

설치 시

자동생성

/dirchk

OGG Process의 Checkpoint가 기록되는 File 저장

O

/dirdat

Extract가 Capture한 Data 변경분을 저장하는 Trail File 생성

O

/dirdef

OGG 적용대상 Table들의 Definition

O

/diroby

OGG 구성을 위한 작업 File 저장

  

/dirout

OGG Process 운영 시 발생하는 오류 원인 및 오류 record 내용이 기록되는 Discard File 저장

O

/dirpcs

OGG process의 PID 기록되는 File 저장

O

/dirprm

OGG Process 적용테이블의 Mapping 방식 및 추가 설정 Option들을 지정하는 File 생성

O

/dirrpt

OGG Process 처리내역 및 오류 시 원인 저장

O

   

1-3 OGG 구성 방안

   

  • 다양한 형태의 구축방안이 있지만 이번 OGG TEST에서는 단방향 형태(DML,DDL지원)로 구축

       

2.OGG Installation

- Environment(Vmwere)

구분

Host IP

OS Version

oracle SID

DB Version

DB Schema

기타

Source

192.168.22.3

GNU /LINUX

orcl

Oracle 11.2.0.3

OGGMGR

  SCOTT

유저 사용

Target

192.168.22.10

GNU /LINUX

orcl

Oracle 11.2.0.3

OGGMGR

SCOTT

유저 사용  

   

2-1 사전 준비사항 1 (Source / Target)

SQL> create tablespace ggs_data datafile '/oradata/orcl/ggs_data01.dbf' size 200m;

   

SQL> create user oggmgr identified by oracle

default tablespace ggs_data

temporary tablespace temp;

 

grant connect, resource to oggmgr;

grant select any dictionary, select any table to oggmgr;

grant create table to oggmgr;

grant flashback any table to oggmgr;

grant execute on dbms_flashback to oggmgr;

grant execute on utl_file to oggmgr;

grant create any table to oggmgr;

grant insert any table to oggmgr;

grant update any table to oggmgr;

grant delete any table to oggmgr;

grant drop any table to oggmgr;

   

2-2 OGG S/W Installation(Source / Target)

[다운로드]

http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html

  • Source(Oracle 유저)

    $ Mkdir /OGG

    $ unzip ogg112101_fbo_ggs_Linux_x86_ora11g_32bit

    $ tar xvf fbo_ggs_Linux_x86_ora11g_32bit.tar

  • Target(Oracle 유저

    $ Mkdir /OGG

    $ unzip ogg112101_fbo_ggs_Linux_x86_ora11g_32bit

    $ tar xvf fbo_ggs_Linux_x86_ora11g_32bit.tar

  • OGG Installation(Source / Target)

    $./ggsci

    GGSCI (ocp.mycorpdomain.com) 1> create subdirs

   

2-3 사전 준비사항 2(Source)

  • Archivelog mode

       

    SQL> ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE SCOPE=SPFILE;

       

    -- LOG_ARCHIVE_DEST 파라미터 변경

    SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/arch' SCOPE=SPFILE;

     

    -- LOG_ARCHIVE_FORMAT 파라미터 변경

    SQL> ALTER SYSTEM SET log_archive_format='ora_%s_%t_%r.arc' SCOPE=SPFILE;

       

    SQL> SHUTDOWN IMMEDIATE

       

    SQL> STARTUP MOUNT

       

    -- 아카이브 로그 확성화                

    SQL>ALTER DATABASE ARCHIVELOG;

       

    SQL> ALTER DATABASE OPEN;

      

  • Supplemental logging

       

    SQL> alter database add supplemental log data;

      

  • Support DDL

       

    SQL> alter system set recyclebin=off scope=spfile;

       

    -GoldenGate는 Oracle 9i 이후 버전에 대하여 DDL을 지원한다. 그 이전 버전에서는 DDL이 지원되지 않는다. 아래의 objects에 대해서 2 MB 이내의 모든 DDL operation을 지원한다.

       

    -DDL replication을 수행하기 위해서는 반드시 Oracle recycle bin이 'OFF'로 설정되어야 한다. Recycle bin이 활성화되어 있을 경우, GoldenGate의 DDL tigger session이 내포된 recycle bin에 의해 tigger 실패를 야기할 수 있는 DDL operation를 받을 수 있게 된다.

       

    -Oracle 기본 schema에 대해서는 DDL은 무시된다.

   

2-4 사전 준비사항 3 (Source / Target)

  • OGG Run Scripts

    $sqlplus "/as sysdba"
     

    SQL> @/OGG/marker_setup.sql 

       

    Enter GoldenGate schema name: OGGMGR

    ….

       

    SQL> @/OGG/ddl_setup.sql 

    Enter GoldenGate schema name: OGGMGR

    …..

       

    SQL> @/OGG/role_setup.sql 

    Enter GoldenGate schema name: OGGMGR

    …..

       

    SQL> grant ggs_ggsuser_role to OGGMGR

     Grant succeeded.

    SQL>@/OGG/ddl_enable

       

    Trigger altered.

       

    SQL>@/OGG/ddl_pin OGGMGR

  • Additional logging(Table Level / Schema Level)

       

    $./ggsci

    GGSCI (ocp.mycorpdomain.com) 1> dblogin userid oggmgr, password oracle

    Successfully logged into database.

       

    -- Trandata 추가

    GGSCI (ocp.mycorpdomain.com) 2> add trandata scott.*

       

    (Add trandata scott.emp / add trandata scott.*)

       

    -- 추가된 Trandata 확인

    GGSCI (ocp.mycorpdomain.com) 3> info trandata scott.*

       

    Logging of supplemental redo log data is enabled for table SCOTT.BONUS.

       

    Columns supplementally logged for table SCOTT.BONUS: ENAME, JOB, SAL, COMM.

       

    Logging of supplemental redo log data is enabled for table SCOTT.DEPT.

       

    Columns supplementally logged for table SCOTT.DEPT: DEPTNO.

       

    Logging of supplemental redo log data is enabled for table SCOTT.EMP.

       

    Columns supplementally logged for table SCOTT.EMP: EMPNO.

       

    Logging of supplemental redo log data is enabled for table SCOTT.SALGRADE.

       

    Columns supplementally logged for table SCOTT.SALGRADE: GRADE, LOSAL, HISAL.

      

   

[참고자료]

http://h391106.tistory.com/277

http://gssdba.wordpress.com/category/oracle-golden-gate/

http://mwguru.tistory.com/21

http://setijoagus.wordpress.com/2010/03/27/install-oracle-goldengate-2/

http://gavinsoorma.com/2010/02/oracle-goldengate-tutorial-6-configuring-data-pump-process/

http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html

   

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,