본문 바로가기

Oracle GoldenGate2

OGG EXTRACT VALUES FROM REDO LOGs

OGG EXTRACT VALUES FROM REDO LOGs

 

Date

Ver

Etc.

12.07.03

v1.0

 

 

 

 

 

 

 

 

 

1.    EXTRACTOR of OGG

이 글은 OGG extract (데이터 추출) 을 어느 위치 (redo archived log ?) 에서 하는가에 대해 알아 본 글이다.

 

l  P(nn) 표시는 내용을 발췌한 페이지다.

Classic capture mode (Oracle 11.2.0.3.0 이전 버전) 에서  Extract process redo logs 를 직접 엑세스 하는데, 이를 수행하는 주체는 Online, Archived log 에 읽기가 가능한 OS 유저여야 한다. (P7)

 

capture mode 에 따른 지원되는 데이터 타입 (P9) 에 따르면 Date Datetime 컬럼을 포함하는 Scalar columns 에 대해

-      Classic capture : redo 로그로부터 캡쳐

-      Integrated Capture : redo 로그로부터 캡쳐

 

위와 같이 Redo Log 에 대한 직접 엑세스가 언급되어 있다.

추가로 문서상의 Architecture 그림으로부터도 알 수 있다. (P41)

 



 

위 그림을 보면 Extract 가 엑세스 하는 대상이 Oracle Redo / Archive Logs 라 되어 있다.

 

2.    Practice

문장과 그림을 통해 Redo 로그에 엑세스 할 수 있다는 사실을 알았다.

그럼 실제 Archived 되기 전의 Redo 로그로부터 추출 된 데이터를 가지고 적용하는지 확인해 보겠다.

 

source, target 양측의 OGG 가 정상 상태임을 확인

l  소스측

 

GGSCI (test1) 1> info all

 

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

 

MANAGER     RUNNING

EXTRACT     RUNNING     EPUMP       00:00:00      00:00:05

EXTRACT     RUNNING     EREDO       00:00:00      00:00:05

 

l  타겟측

GGSCI (test2) 1> info all

 

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

 

MANAGER     RUNNING

REPLICAT    RUNNING     REPA        00:00:00      00:00:05

REPLICAT    RUNNING     REPC        00:00:00      00:00:09

 

소스의 현재 log sequence 76 이다.

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /u01/app/oracle/oradata/ogg1/arc

Oldest online log sequence     74

Next log sequence to archive   76

Current log sequence           76

 

비어있는 테이블 test.id1 에 데이터를 Insert commit 하였다.

SQL> insert into test.id1

  2  select level from dual connect by level < 11;

 

10 rows created.

 

SQL> commit;

 

Commit complete.

 

Archive log list ‘Current log sequence 76 으로 동일하다.

 

타겟에서 count 한 결과 데이터가 전송됨을 확인하였다.

SQL> select count(*) from test.id1;

 

  COUNT(*)

----------

        10

 

3.    References

A.     Oracle Goldengate Oracle Installation and Setup Guide 11g Release 2