OGG EXTRACT VALUES FROM REDO LOGs
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