STEP4 Oracle Golden Gate를 사용하여 로컬 제작 환경 사용

4494 단어 GoldenGateoracle19c
의 목적
다음과 같은 Oracle Golden Gate 환경을 로컬에서 구축합니다.

STEP1.oracle Database CUI 설치
STEP2.oracle Golden Gate 설치
STEP3. Oracle Golden Gate 설정
STEP4 Oracle Golden Gate 사용 (본문)
오라클 골든 게이트를 사용하려면
1. 서비스 시작 등
2. Golden Gate 프로세스 시작
3. 테스트표 작성
4. 테스트 수행
1. 서비스 시작 등(원본과 타겟 모두 실행)
Listener와 Oracle 인스턴스가 가상 환경을 시작할 때 시작하는 설정이 없으면 가상 환경을 시작할 때마다 시작해야 합니다.
이 작업은 소스 및 대상 가상 환경에서 수행됩니다.
가상 환경에 진입
# ソース側
vagrant ssh myora1
# ターゲット側
vagrant ssh myora2
소스 및 대상 가상 환경에서 실행
# ユーザ変更
$ sudo su - oracle

# Listener起動
$ lsnrctl start LISTENER

# Oracleインスタンス 起動
$ sql / as sysdba
SQL> startup

# PDB open
SQL> alter pluggable database all open;
SQL> exit
2. Golden Gate 프로세스 시작
먼저 대상(myora2)의 프로세스를 시작합니다.
그렇지 않으면 원본 프로그램을 시작할 때 연결이 실패합니다.
대상 측면(myora2)
# ggsci 起動
$ /gg/ggsci

# Manager 起動
GGSCI (myora2) x> start manager
Manager started.

# Replicat 起動
GGSCI (myora2) x> start repli2

Sending START request to MANAGER ...
REPLICAT REPLI2 starting

# 起動プロセス確認
GGSCI (myora2) x> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    RUNNING     REPLI2      00:00:00      00:00:06

# 終了
GGSCI (myora1) x> exit
다음에 원본 프로그램 (myora1) 을 시작합니다.
소스 옆(myora1)
# ggsci 起動
$ /gg/ggsci

# Manager 起動
GGSCI (myora1) x> start manager
Manager started.

# Capture 起動
GGSCI (myora1) x> start capture1

Sending START request to MANAGER ...
EXTRACT CAPTURE1 starting

# Pump 起動
GGSCI (myora1) x> start pump1

Sending START request to MANAGER ...
EXTRACT PUMP1 starting

# 起動プロセス確認
GGSCI (myora1) x> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     CAPTURE1    00:00:00      00:00:02
EXTRACT     RUNNING     PUMP1       00:00:00      00:00:00

# 終了
GGSCI (myora1) x> exit
3. 테스트표 작성
원본 (myora1) 과 목표 (myora2) 에서 테스트용 표를 만듭니다.
원극측(myora1)과 목표측(myora2) 둘
# Oracle PDB ログイン
$ sql c##gguser/oracle@//localhost:1521/ORCLPDB1

SQL> CREATE TABLE TABLE_X (COL_A NUMBER, COL_B VARCHAR(382), COL_C NUMBER, COL_D DATE);

Table created.

SQL> DESC TABLE_X;

Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
COL_A                                              NUMBER
COL_B                                              VARCHAR2(382)
COL_C                                              NUMBER
COL_D                                              DATE

SQL> exit
4. 테스트 수행
소스 테이블에 레코드를 삽입합니다.
소스 옆(myora1)
# Oracle PDB ログイン
$ sql c##gguser/oracle@//localhost:1521/ORCLPDB1

SQL> INSERT INTO TABLE_X (COL_A, COL_B, COL_C, COL_D) VALUES (10000, '10000-abc-1', 1, sysdate);

SQL> commit;

SQL> SELECT * from TABLE_X;
  COL_A COL_B           COL_C COL_D
  10000 10000-abc-1         1 xx-SEP-21
원본 파일에 기록을 삽입했습니다.
그럼 목표 쪽을 확인해 볼게요.
대상 측면(myora2)
# Oracle PDB ログイン
$ sql c##gguser/oracle@//localhost:1521/ORCLPDB1

SQL> SELECT * from TABLE_X;
  COL_A COL_B           COL_C COL_D
  10000 10000-abc-1         1 xx-SEP-21
같은 기록이 퍼지고 있는 것을 확인했다.
1대의 로컬 환경에서 시작된 2대의 가상 환경 사이를 동기화 처리하면 10초 정도에 전파된다.
다음은 그 기록을 삭제해 보자.
소스 옆(myora1)
SQL> DELETE FROM TABLE_X WHERE COL_A = 10000;

1 row deleted.

SQL> commit;

Commit complete.


SQL> SELECT * from TABLE_X;

no rows selected
목표를 확인해 보자.
대상 측면(myora2)
SQL> select * from table_x;

no rows selected
이(가) 삭제되었습니다.
기록의 삽입과 삭제 처리에 관하여 원본→목표 전파를 확인하였다.
지금까지 Oracle DB와 Oracle Golden Gate를 로컬 환경에 설치하여 실제 데이터 업데이트가 전파된 사실을 확인했습니다.
현지 환경이지만 기본적인 설정과 동작을 이해할 수 있다.
Oracle Golden Gate(라이센스료는 비싸지만...)는 백업용 DB 등 실시간 복제를 원하는 조건에 유력한 후보로 꼽힌다.

좋은 웹페이지 즐겨찾기