Oracle GoldenGate 12.2 プロセス作成方法

ここでは Oracle GoldenGate (OGG) 12.2 のプロセス作成方法を紹介します。

f:id:detectivetangsan:20170704023257j:plain

OGG 12.2 のインストール方法はこちらを参照ください。

 

本手順で紹介するOGGプロセス構成は以下になります。

[ソース]
Captureプロセス(Classic) * 1
DataPumpプロセス * 1

[ターゲット]

Replicat(Classic) * 1

※同一環境にOGGを導入しスキーマ間でデータ連携を行う構成としています。

通常は、ソース/ターゲット環境は分かれている構成がほとんどですので、適宜読み替えて実施ください。

事前準備

  1.  ソース/ターゲット環境のTNS設定
    ソース/ターゲット環境の $ORACLE_HOME/network/admin/tnsnames.ora ファイルの内容にOGGで連携する環境の情報を追記します。
    [oracle@node1 ~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
    //////////////////////////////////////
    ORCL11G =
    (DESCRIPTION =
      (ADDRESS=(PROTOCOL=TCP)(HOST=node1.oracle11g.j)(PORT=1521))
      (CONNECT_DATA=(SERVICE_NAME=orcl11g))
    )
    //////////////////////////////////////

     

  2. DBのロギング設定
    ソース側の環境に対してサプリメンタルロギングの設定を行います。
[oracle@node1 ~]$ sqlplus / as sysdba
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

データベースが変更されました。

 

  1. OGGの有効化
    DB 11.2.0.4 の場合、ソース/ターゲット環境でOGGのパラメータを有効化します。
[oracle@node1 ~]$ sqlplus / as sysdba
SQL> alter system set enable_goldengate_replication = true;

システムが変更されました。

 

  1. ソース/ターゲット環境でOGG専用スキーマの作成
    ソース/ターゲット環境でOGG専用スキーマの作成を作成します。
    本手順ではDBA権限を付与していますが、より詳細な権限設定をしたい場合はマニュアルを参照して必要な権限のみを設定してください。
    http://docs.oracle.com/cd/E35586_01/doc.1121/b70206.pdf
[oracle@node1 ~]$ sqlplus / as sysdba
SQL> create user ogg_user identified by welcome1;

ユーザーが作成されました。

SQL> grant DBA to ogg_user;

権限付与が成功しました。

 

  1. ソース/ターゲット環境でテストスキーマの作成
    ソース/ターゲット環境でデータ連携のテストスキーマを作成します。
    本手順では、同一環境でデータ連携を行うため、複数のテストスキーマを作成しています。
[oracle@node1 ~]$ sqlplus / as sysdba
SQL> create user test01 identified by welcome1;

ユーザーが作成されました。

SQL> grant DBA to test01;

権限付与が成功しました。

SQL> create user test02 identified by welcome1;

ユーザーが作成されました。

SQL> grant DBA to test02;

権限付与が成功しました。

 

  1. ソース/ターゲット環境でテストテーブルの作成
    ソース/ターゲット環境でデータ連携のテストテーブルを作成します。
[oracle@node1 ~]$ sqlplus / as sysdba
SQL> create table test01.sample01 (empno number(4),name varchar2(10),age number(3),deptno number(4),constraint PK1 primary key(empno));

表が作成されました。

SQL> create table test02.sample01 (empno number(4),name varchar2(10),age number(3),deptno number(4),constraint PK1 primary key(empno));

表が作成されました。

 

OGGプロセスの作成

  1. ソース環境でManagerプロセスの設定
    ソース環境のMaganerプロセスの設定を行います。
    OGG 12.2 ではインストール時にOGGが使用するポート番号が設定されています。ここではパラメータを変更する必要はありません。
[oracle@node1 ~]$ cd /u01/app/ogg122src/
[oracle@node1 ogg122src]$ ./ggsci
GGSCI (node1.oracle11g.jp) 1> edit param mgr
//////////////////////////////////////
PORT 7809
//////////////////////////////////////

 

  1. ターゲット環境でManagerプロセスの設定
    ターゲット環境のMaganerプロセスの設定を行います。
    OGG 12.2 ではインストール時にOGGが使用するポート番号が設定されています。
    ここでは、DYNAMICPORTLIST というパラメータを追記します。ターゲット環境がTrailファイルを受信する際に使用するポート番号のリストを設定します。
[oracle@node1 ~]$ cd /u01/app/ogg122tgt
[oracle@node1 ogg122tgt]$ ./ggsci
GGSCI (node1.oracle11g.jp) 1> edit param mgr
//////////////////////////////////////
PORT 7810
DYNAMICPORTLIST 7811-7820
//////////////////////////////////////

 

  1. ソース環境で表レベルのサプリメンタルログを有効化
[oracle@node1 ~]$ cd /u01/app/ogg122src
[oracle@node1 ogg122src]$ ./ggsci
GGSCI (node1.oracle11g.jp) 1> dblogin userid ogg_user password welcome1
Successfully logged into database.

GGSCI (node1.oracle11g.jp as ogg_user@orcl11g) 2> ADD TRANDATA test01.sample01

Logging of supplemental redo data enabled for table TEST01.SAMPLE01.
TRANDATA for scheduling columns has been added on table 'TEST01.SAMPLE01'.
TRANDATA for instantiation CSN has been added on table 'TEST01.SAMPLE01'.

 

  1. ソース環境でCaptureプロセスの作成
    ここではCaptureプロセス名を「CAP01」としてパラメータを作成します。
[oracle@node1 ~]$ cd /u01/app/ogg122src
[oracle@node1 ogg122src]$ ./ggsci
GGSCI (node1.oracle11g.jp) 1> edit param CAP01
//////////////////////////////////////
EXTRACT CAP01
USERID ogg_user, PASSWORD welcome1
EXTTRAIL ./dirdat/lt
TABLE test01.sample01;
//////////////////////////////////////

 

  1. ソース環境でCaptureプロセスの追加
    作成したCaptureプロセスの追加を行います。
[oracle@node1 ~]$ cd /u01/app/ogg122src
[oracle@node1 ogg122src]$ ./ggsci
GGSCI (node1.oracle11g.jp) 1> ADD EXTRACT CAP01, TRANLOG, BEGIN NOW
EXTRACT added.

 

  1. ソース環境のCaptureプロセスにローカルTrailファイルの追加
    追加したCaptureプロセスにローカルTarilファイルの追加を行います。
[oracle@node1 ~]$ cd /u01/app/ogg122src
[oracle@node1 ogg122src]$ ./ggsci
GGSCI (node1.oracle11g.jp) 2> ADD EXTTRAIL ./dirdat/lt, EXTRACT CAP01
EXTTRAIL added.

 

  1. ソース環境でDataPumpプロセスの作成
    ここではDataPumpプロセス名を「DP01」としてパラメータを作成します。
[oracle@node1 ~]$ cd /u01/app/ogg122src
[oracle@node1 ogg122src]$ ./ggsci
GGSCI (node1.oracle11g.jp) 1> edit param DP01
//////////////////////////////////////
EXTRACT DP01
PASSTHRU
RMTHOST node1.oracle11g.jp, MGRPORT 7810
RMTTRAIL /u01/app/ogg122tgt/dirdat/rt
TABLE test01.*;
//////////////////////////////////////

 

  1. ソース環境でDataPumpプロセスの追加
    作成したDataPumpプロセスの追加を行います。
[oracle@node1 ~]$ cd /u01/app/ogg122src
[oracle@node1 ogg122src]$ ./ggsci
GGSCI (node1.oracle11g.jp) 1> ADD EXTRACT DP01, EXTTRAILSOURCE ./dirdat/lt
EXTRACT added.

 

  1. ソース環境のDataPumpプロセスにリモートTrailファイルの追加
    追加したDataPumpプロセスにリモートTarilファイルの追加を行います。
[oracle@node1 ~]$ cd /u01/app/ogg122src
[oracle@node1 ogg122src]$ ./ggsci
GGSCI (node1.oracle11g.jp) 2> ADD RMTTRAIL /u01/app/ogg122tgt/dirdat/rt, EXTRACT DP01
RMTTRAIL added.

 

  1. ターゲット環境でGLOBALSファイルの作成
    ターゲット環境でGLOBALSファイルを作成します。OGGのデータ連携に必要なCHECKPOINTテーブル作成に必要なパラメータを指定します。
[oracle@node1 ~]$ cd /u01/app/ogg122tgt
[oracle@node1 ogg122src]$ ./ggsci
GGSCI (node1.oracle11g.jp) 1> EDIT PARAMS ./GLOBALS
//////////////////////////////////////
CHECKPOINTTABLE ogg_user.ggs_ckpt
//////////////////////////////////////

 

  1. ターゲット環境でCHECKPOINTTABLEの作成
    ターゲット環境でCHECKPOINTTABLEを作成します。
[oracle@node1 ~]$ cd /u01/app/ogg122tgt
[oracle@node1 ogg122src]$ ./ggsci
GGSCI (node1.oracle11g.jp) 1> dblogin userid ogg_user password welcome1
Successfully logged into database.

GGSCI (node1.oracle11g.jp as ogg_user@orcl11g) 2> ADD CHECKPOINTTABLE

No checkpoint table specified. Using GLOBALS specification (ogg_user.ggs_ckpt)...

Successfully created checkpoint table ogg_user.ggs_ckpt.

 

  1. ターゲット環境でReplicatプロセスの作成
    ここではReplicatプロセス名を「REP01」としてパラメータを作成します。
[oracle@node1 ~]$ cd /u01/app/ogg122tgt
[oracle@node1 ogg122tgt]$ ./ggsci
GGSCI (node1.oracle11g.jp) 1> edit param REP01
//////////////////////////////////////
REPLICAT REP01
USERID ogg_user, PASSWORD welcome1
ASSUMETARGETDEFS
MAP test01.sample01, TARGET test02.sample01;
//////////////////////////////////////

 

  1. ターゲット環境でReplicatプロセスの追加
    作成したReplicatプロセスの追加を行います。
[oracle@node1 ~]$ cd /u01/app/ogg122tgt
[oracle@node1 ogg122tgt]$ ./ggsci
GGSCI (node1.oracle11g.jp) 1> dblogin userid ogg_user password welcome1
Successfully logged into database.

GGSCI (node1.oracle11g.jp as ogg_user@orcl11g) 2> ADD REPLICAT REP01, EXTTRAIL ./dirdat/rt
REPLICAT added.

 

  1. ソース/ターゲット環境でManagerプロセスの再起動
    ソース/ターゲット環境でManagerプロセスを再起動します。インストール時点ではManagerプロセスは起動されていますが、パラメータの変更を行っているため、再起動を行います。
GGSCI (node1.oracle11g.jp) 1> stop mgr!

Sending STOP request to MANAGER ...
Request processed.
Manager stopped.


GGSCI (node1.oracle11g.jp) 2> start mgr
Manager started.

 

  1. ソース環境でCaptureプロセスの起動
    ソース環境でCaptureプロセスを起動します。
GGSCI (node1.oracle11g.jp) 1> start extract CAP01

Sending START request to MANAGER ...
EXTRACT CAP01 starting

 

  1. ソース環境でDataPumpプロセスの起動
    ソース環境でDataPumpプロセスを起動します。
GGSCI (node1.oracle11g.jp) 1> start extract DP01

Sending START request to MANAGER ...
EXTRACT DP01 starting

 

  1. ソース環境でOGGプロセスの起動確認
    ソース環境でOGGプロセスの起動状態を確認します。
GGSCI (node1.oracle11g.jp) 1> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     CAP01       00:00:00      00:00:00
EXTRACT     RUNNING     DP01        00:00:00      00:00:01

 

  1. ターゲット環境でReplicatプロセスの起動
    ターゲット環境でReplicatプロセスを起動します。
GGSCI (node1.oracle11g.jp) 1> start replicat REP01

Sending START request to MANAGER ...
REPLICAT REP01 starting

 

  1. ターゲット環境でOGGプロセスの起動確認
    ターゲット環境でOGGプロセスの起動状態を確認します。
GGSCI (node1.oracle11g.jp) 1> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    RUNNING     REP01       00:00:00      00:00:06

 

OGG動作確認

  1. ソース環境でテストデータをINSERT
[oracle@node1 ~]$ sqlplus / as sysdba
SQL> insert into test01.sample01 values(0001,'user01',20,0001);

1行が作成されました。

SQL> commit;

コミットが完了しました。

SQL> select * from test01.sample01;

     EMPNO NAME                                  AGE     DEPTNO
---------- ------------------------------ ---------- ----------
         1 user01                                 20          1

 

  1. ターゲット環境でデータを確認
[oracle@node1 ~]$ sqlplus / as sysdba
SQL> select * from test02.sample01;

     EMPNO NAME                                  AGE     DEPTNO
---------- ------------------------------ ---------- ----------
         1 user01                                 20          1

 

テスト データの連携が出来ている事が確認できました。

 

これでOGG 12.2のプロセス作成は完了です。

お疲れ様でした!


スポンサードリンク