GoldenGate布教活動④　～GoldenGateプロセスの構成～

このエントリは [Oracle Database or GoldenGate Advent Calendar 2018](https://adventar.org/calendars/3525?fbclid=IwAR0WNOjiILDk6FXneWgWUdihG0un3xH3GObR1WfBfVEZG5x_LxySBIHBSU0) Day 9 の記事です！

今回のエントリでは [OracleR Fusion Middleware Oracle DatabaseのためのOracle GoldenGateの使用](https://docs.oracle.com/cd/E92689_01/gg-winux/GGODB/toc.htm)にそって、Extract(Capture,Datapump)プロセスとReplicatプロセスを構成していきたいと思います

#GoldenGateプロセスの構成

![oracle_config.png](https://qiita-image-store.s3.amazonaws.com/0/60220/5aa1c9ff-e49e-323a-6b05-3d385b21ae55.png)


##１．統合Capture

###１－１．適用モードの選択

参考：[4 「キャプチャおよび適用モードの選択」](https://docs.oracle.com/cd/E92689_01/gg-winux/GGODB/choosing-capture-and-apply-modes.htm#GUID-46EEC8E7-F1A3-41F6-ABEE-706B48DC338F)
統合Captureについて、下記の図の通りデータベース・ログマイング・サーバーから論理変更レコード(LCR)という形式でデータの変更を受け取り、Trailファイルを作成します

![integratedcapture.png](https://qiita-image-store.s3.amazonaws.com/0/60220/9e26b523-1777-2ff2-eea1-5862cd20f7c3.png)

このデータベース・ログマイニング・サーバーの構成について、下記の４つのモードが存在します
①ローカル・デプロイ
②ダウンストリーム・デプロイ
③ダウンストリームOracle Archive Data Guardデプロイ
④ダウンストリーム・ソースレスExtractデプロイ

####①ローカル・デプロイ
変更を取得するソース・データベースの中にマイニング・データベース(ログマイニング・サーバー)を構築します
このモードが最も一般的な構成であり、特別なデータベース設定は不要です

####②ダウンストリーム・デプロイ
ソース・データベースとマイニング・データベースを異なるデータベースに分離する方式です
ソース・データベースからマイニング・データベースへREDOログやアーカイブログを伝奏して、マイニング・データベースからキュアプチャするような動作になります
キャプチャのオーバーヘッドや変換によるオーべーヘッド、またソース・データベースへの変更を極小化する場合などにこの方式を選択します

####③ダウンストリームOracle Archive Data Guardデプロイ
フェッチが必要なデータについてActive Data GuardのスタンバイDBから変更を取得する方式です
FETCHUSERIDまたはFETCHUSERIDALIASパラメータを使用してフェッチ処理をADGスタンバイDBにオフロードすることができます
統合ExtractはADGスタンバイDBで稼動することができないため、プライマリDBで稼動する必要があります

####④ダウンストリーム・ソースレスExtractデプロイ
ソース・データベースのREDOが11.2.0.4以上と制約がありますが、ダウンストリーム構成のメリットに加えて、ソース・データベースとGoldenGateプロセスの依存関係を切り離すことができるため、Extractに影響を与えることなくソース・データベースの起動/停止が行えます

今回は①ローカル・デプロイ構成を選択して、プロセスを構成していきたいと思います

###１－２．統合Captureの構成

####パラメータの選定

参考：[6 統合モードでのキャプチャの構成 ](https://docs.oracle.com/cd/E92689_01/gg-winux/GGODB/configuring-capture-integrated-mode.htm#GUID-74E23910-A441-4939-BDFD-FE0B2EE9783F)

上記に記載の「表6-1 統合キャプチャ・モードでのプライマリExtractの基本的なパラメータ」から、最低限必要なパラメータを選定して構成していきたいと思います

※．()内は今回設定するかどうか ◯設定する ×設定しない
・　(◯)EXTRACT
こちらは必須パラメータなので必ず設定します
統合Captureのプロセス名を定義します
・USERIDALIAS
こちらはデータベース・ログインにて資格証明ストアを利用してログインする場合に設定します
今回は不要です
・(×)LOGALLSUPCOLS
競合解決及び解決に必要な列をTrailファイルに書き込むためのパラメータです
双方向構成の場合を除いて設定不要です
また12.3ではデフォルトでLAGALLSUPCOLSが有効化されています
参考：[LOGALLSUPCOLS](https://docs.oracle.com/cd/E92689_01/gg-winux/GWURF/logallsupcols.htm#GUID-F5A57FAA-20DE-4C36-AB37-BACEE4571A04)

・(×)UPDATERECORDFORMAT COMPACT
UPDATE操作の変更前変更後の情報をTrailファイルに書きこむためのパラメータです
このパラメータがないと動作しないわけではありませんが、UPDATERECORDFORMAT COMPACTがベスト・プラクティスであり、Replicatプロセスのパフォーマンスを大幅に改善します
なお、本パラメータも12.3ではデフォルトでUPDATERECORDFORMAT COMPACTになっています
参考：[UPDATERECORDFORMAT](https://docs.oracle.com/cd/E92689_01/gg-winux/GWURF/updaterecordformat.htm#GUID-9E3E2D2B-2578-4549-8A81-9F0EFBD7DD82)

・(×)TRANLOGOPTIONS MININGUSERALIAS alias
こちらはダウンストリーム構成でマイニング・データベースをソース・データベースと分離する場合に使用します
ダウンストリーム・マイニングデータベースにログインする接続情報を指定します
MININGUSERALIASを使用することで、資格証明ストアを使用したログインも可能になります

・(×)TRANLOGOPTIONS [INTEGRATEDPARAMS (parameter[, ...])]
統合Capture用のパラメータになります
代表的なもので言えば MAX_SGA_SIZE、PARALLELISM といった性能に関係するパラメータを指定します
またダウンストリーム構成の場合に手、リアルタイムのキャプチャを行う場合については、DOWNSTREAM_REAL_TIME_MINEを設定することにより可能になります
今回は詳細なチューニングまで実施しないため設定しません

・(×)TRANLOGOPTIONS CHECKPOINTRETENTIONTIME days
こちらはチェックポイントの保持期間です。
デフォルトの値で問題ありませんが、下記のような事象が報告されていますので本番環境で統合Captureを使用する際は明示的に指定するようにしましょう

[TranlogOptions IntegratedParams を使用すると、CHECKPOINT_RETENTION_TIME がゼロに設定される (ORA-1281) (Doc ID 2390251.1)](https://support.oracle.com/knowledge/Middleware/2390251_1.html)
内容：アラートログに下記が出力される
ORA-1281 during checkpoint retention check

・(×)DDL include_clause
DDL伝播を行う場合に設定します
今回はDDL伝播までしませんので設定は不要です

・(×)ENCRYPTTRAIL algorithm
Trailファイルの暗号化を行います
こちらも今回は暗号化しないので不要です

・(◯)EXTTRAIL pathname
Captureプロセスが出力するTrailファイルの出力先を指定します
こちらは必須のため設定します

・(×)SOURCECATALOG container
MTA構成の場合コンテナ名を指定します
今回はMTA環境ではないため不要です

・(◯){TABLE | SEQUENCE} [container.]schema.object;
伝播対象のオブジェクトをこちらで指定します
本パラメータは必須のため設定します

・(×)MAPINVISIBLECOLUMNS
非表示列を含めるかどうかを指定します
今回は非表示列は使用しないため不要です

マニュアルの「表6-1 統合キャプチャ・モードでのプライマリExtractの基本的なパラメータ」に記載のパラメータは以上ですが、他にもレポートファイルのメンテナンスに使用するパラメータやキャッシュサイズを制限するパラメータなど、必要なパラメータは数多くあります

必要があれば[パラメータリファレンス](https://docs.oracle.com/cd/E92689_01/gg-winux/GWURF/toc.htm)を参照して取捨選択を行ってみてください

####パラメータの設定
では実際にパラメータを設定していきたいと思います

GGSCIからEDITコマンドを使用してパラメータファイルを作成していきます
今回はCAP01というプロセスを作成していきましょう

```
[oracle@test01 ~]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 12.3.0.1.4 OGGCORE_12.3.0.1.0_PLATFORMS_180415.0359_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Apr 16 2018 00:53:30
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2018, Oracle and/or its affiliates. All rights reserved.



GGSCI (test01.jp.test.com) 1> edit params cap01

--以下を追加--
EXTRACT cap01
USERID ggs@unoki_gg, PASSWORD ggs
EXTTRAIL ./dirdat/lt
TABLE unoki.*;
--
```

シンプルですね！
作成したパラメータファイルがOSからどう見えているか見てみましょう

```
[oracle@test01 gghome_1]$ pwd
/u01/app/oracle/product/gghome_1
[oracle@test01 gghome_1]$ ls dirprm/
cap01.prm  mgr.prm
```

きちんと作成されていますね

####Captureプロセスの追加
参考：[13 プロセス・グループの作成](https://docs.oracle.com/cd/E92689_01/gg-winux/GGODB/creating-process-groups.htm#GUID-268E5A2D-5EA3-4534-B37A-5C456C95ED12)

ではプロセスを追加していきましょう
統合Captureではマイニング・データベースにCaptureプロセスを追加するという手順が必要です

追加にはDBLOGINが必要なためDBLOGINから行っていきましょう
今回はローカル・デプロイ構成のためソース・データベースとマイニング・データベースは同じデータベスになります
なのでDBLOGINもソース・データベースに行うことになります

```
GGSCI (test01.jp.test.com) 1> dblogin userid ggs@unoki_gg password ggs
Successfully logged into database.

GGSCI (test01.jp.test.com as ggs@unoki) 2> register extract cap01 database

2018-12-09 18:14:35  INFO    OGG-02003  Extract CAP01 successfully registered with database at SCN 2404683.

```

これでREGISTERは完了です
キャプチャプロセスはこのREGISTERした地点からキャプチャ可能であり、REGISTER以前のSCNにチェックポイントを設定しキャプチャすることはできません
ALTER REGISTERコマンドでSCN地点を変更することも可能なので、内容を確認してみてください

ではGGSCIでプロセスを追加してみましょう

```
GGSCI (test01.jp.test.com) 1> ADD EXTRACT CAP01, integrated tranlog, begin now
EXTRACT (Integrated) added.


GGSCI (test01.jp.test.com) 2> ADD EXTTRAIL ./dirdat/lt, extract CAP01, megabytes 500
EXTTRAIL added.

GGSCI (test01.jp.test.com) 3> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     STOPPED     CAP01       00:00:00      00:02:05
```

最初のコマンドでCaptureプロセスを追加し、どの地点からキャプチャを開始するかを指定しています
今回は begin nowを使用して、ADDコマンドを指定した地点からキャプチャするようにしました

他にも日時指定やSCN指定が可能です
先に記載したとおりREGISTER地点移行を指定する必要があるので、注意してください

##２．Datapumpプロセス

「表6-2 データ・ポンプExtractグループの基本的なパラメータ」にそってパラメータを設定していきましょう

###２－１．Datapumpプロセスの構成
####パラメータの選定

※．()内は今回設定するかどうか ◯設定する ×設定しない
・(◯)EXTRACT group
こちらは必須パラメータなので設定します

・(◯)RMTHOST hostname, MGRPORT portnumber, [, ENCRYPT algorithm KEYNAME keyname]
送信元Trailファイルと送信先Trailファイルを指定します
RMTHOSTパラメータでは送信先のターゲット・サーアーのIPアドレスを指定します
MGRPORTではManagerプロセスのポート番号を指定します

・(◯)RMTTRAIL pathname
送信先Trailファイルパスを指定します

・(×)SOURCECATALOG container
MTAのみ指定するパラメータなので今回は不要です

・(◯){TABLE | SEQUENCE} [container.]schema.object;
伝播するオブジェクトを指定します

####パラメータの設定
では追加していきましょう

```
[oracle@test01 gghome_1]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 12.3.0.1.4 OGGCORE_12.3.0.1.0_PLATFORMS_180415.0359_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Apr 16 2018 00:53:30
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2018, Oracle and/or its affiliates. All rights reserved.

GGSCI (test01.jp.test.com) 3>  edit params dp01


--以下を追加--
EXTRACT DP01
RMTHOST 10.188.138.197,MGRPORT 7809, PARAMS "-f"
RMTTRAIL ./dirdat/rt
TABLE unoki.*;
--

[oracle@test01 gghome_1]$ pwd
/u01/app/oracle/product/gghome_1
[oracle@test01 gghome_1]$ ls dirprm/
cap01.prm  dp01.prm  mgr.prm
```

####Datapumpプロセスの追加

ではDatapumpプロセスを追加します

```
GGSCI (test01.jp.test.com) 3> ADD EXTRACT DP01, exttrailsource ./dirdat/lt
EXTRACT added.


GGSCI (test01.jp.test.com) 4> ADD RMTTRAIL ./dirdat/rt, extract DP01
RMTTRAIL added.

GGSCI (test01.jp.test.com) 5> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     STOPPED     CAP01       00:00:00      00:27:37
EXTRACT     STOPPED     DP01        00:00:00      00:00:30

```

まず１つ目のパラメータでは送信元のTrailファイルのパスとファイル名の接頭辞を指定します
exttrailsource ./dirdat/lt

次に送信先のTrailファイルのパスと接頭辞を指定します
ADD RMTTRAIL ./dirdat/rt

作成したパラメータファイルに記載のプロセス名がきちんと指定できているかや、パラメータファイルで指定したTrailファイルの出力元、出力先を指定できているかを確認しましょう
ここがずれていてうまく動かないパターンが多くあります

##３．Replicatプロセス
###３－１．Replicatプロセスの構成
####パラメータの選定
参考：[8 Oracle GoldenGateの適用の構成](https://docs.oracle.com/cd/E92689_01/gg-winux/GGODB/configuring-oracle-goldengate-apply.htm#GUID-89ECFE2D-7B07-47ED-B326-ED9C7FCD169F)
「表8-1Replicatの基本パラメータ」を参考に設定するパラメータを選定していきましょう

※．()内は今回設定するかどうか ◯設定する ×設定しない
・(◯)REPLICAT group
プロセス名を指定します
必須パラメータなので指定します
・(×)DBOPTIONS DEFERREFCONST
非統合Replicatに指定するパラメータです
カスケード制約などの制約が存在する変更に関して、制約の適用をトランザクションのコミットまで遅延させるパラメータです
今回は統合Replicatを使用するため不要となります

・(×)DBOPTIONS INTEGRATEDPARAMS (parameter[, ...])
こちらは統合Replicat用のパラメータであり、パラレル度やReplicatのトランザクション適用順をコントロールするcommit_serializationといった重要なパラメータも存在します
今回は動作確認のみなので設定はしません

・(×)USERIDALIAS alias
ターゲット・データベースに接続する接続情報を記載します
本パラメターは資格証明ストアを使用する方法ですが、今回はUSERIDパラメータを指定して接続情報を指定します

・(×)SOURCECATALOG container
MTA環境のみのパラメータなので今回は不要です

・(◯)MAP [container.]schema.object, TARGET schema.object;
伝播対象のオブジェクトを指定するパラメータのため設定が必須です


####パラメータの設定
では設定していきましょう！

```
[oracle@test01 gghome_1]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 12.3.0.1.4 OGGCORE_12.3.0.1.0_PLATFORMS_180415.0359_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Apr 16 2018 00:53:30
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2018, Oracle and/or its affiliates. All rights reserved.



GGSCI (test01.jp.test.com) 1> edit params REP01

--以下を追加--
REPLICAT REP01
USERID ggs@import_gg, PASSWORD ggs
MAP unoki.*, TARGET import.*;
--

[oracle@test01 gghome_1]$ ls dirprm/
cap01.prm  dp01.prm  mgr.prm  rep01.prm

```

####Replicatプロセスの追加
ではReplicatプロセスを追加していきましょう

```
[oracle@test01 gghome_1]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 12.3.0.1.4 OGGCORE_12.3.0.1.0_PLATFORMS_180415.0359_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Apr 16 2018 00:53:30
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2018, Oracle and/or its affiliates. All rights reserved.



GGSCI (test01.jp.test.com) 1> DBLOGIN USERID ggs@import_gg PASSWORD ggs
Successfully logged into database.

GGSCI (test01.jp.test.com as ggs@import) 2> ADD REPLICAT REP01, INTEGRATED, EXTTRAIL ./dirdat/rt
REPLICAT (Integrated) added.

GGSCI (test01.jp.test.com as ggs@import) 3> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     STOPPED     CAP01       00:00:00      00:51:32
EXTRACT     STOPPED     DP01        00:00:00      00:24:25
REPLICAT    STOPPED     REP01       00:00:00      00:00:45
```

ADDコマンドにて送信されてきたTrailファイルを指定しています
EXTTRAIL ./dirdat/rt

こちらもDatapumpプロセスの送信先とずれないように注意して指定しましょう

##４．キャプチャ対象オブジェクトのサプリメンタルロギング追加
キャプチャを行うためにはキャプチャ対象オブジェクトのサプリメンタルロギングが必要になります

参考：[2.2.2 スキーマ・レベルのサプリメンタル・ロギングの有効化](https://docs.oracle.com/cd/E92689_01/gg-winux/GGODB/preparing-database-oracle-goldengate.htm#GUID-FF935E11-62B8-4F32-8FFD-BA045F526155)


今回はunokiスキーマをキャプチャするためunokiスキーマにサプリメンタルロギングを実行していきたいと思います

```

GGSCI (test01.jp.test.com) 4> DBLOGIN USERID ggs@unoki_gg PASSWORD ggs
Successfully logged into database.

GGSCI (test01.jp.test.com as ggs@unoki) 6>  ADD SCHEMATRANDATA UNKI;

2018-12-09 19:21:04  ERROR   OGG-01796  Schema: "UNOKI;", does not exist.

GGSCI (test01.jp.test.com as ggs@unoki) 7>  ADD SCHEMATRANDATA UNOKI

2018-12-09 19:21:27  INFO    OGG-01788  SCHEMATRANDATA has been added on schema "UNOKI".

2018-12-09 19:21:27  INFO    OGG-01976  SCHEMATRANDATA for scheduling columns has been added on schema "UNOKI".

2018-12-09 19:21:29  INFO    OGG-10471  ***** Oracle Goldengate support information on table UNOKI.TEST1 *****
Oracle Goldengate support native capture on table UNOKI.TEST1.
Oracle Goldengate marked following column as key columns on table UNOKI.TEST1: ID.

2018-12-09 19:21:29  INFO    OGG-10471  ***** Oracle Goldengate support information on table UNOKI.TEST2 *****
Oracle Goldengate support native capture on table UNOKI.TEST2.
Oracle Goldengate marked following column as key columns on table UNOKI.TEST2: ID.

2018-12-09 19:21:29  INFO    OGG-10471  ***** Oracle Goldengate support information on table UNOKI.TEST3 *****
Oracle Goldengate support native capture on table UNOKI.TEST3.
Oracle Goldengate marked following column as key columns on table UNOKI.TEST3: ID.

2018-12-09 19:21:29  INFO    OGG-10471  ***** Oracle Goldengate support information on table UNOKI.TEST4 *****
Oracle Goldengate support native capture on table UNOKI.TEST4.
Oracle Goldengate marked following column as key columns on table UNOKI.TEST4: ID.

2018-12-09 19:21:29  INFO    OGG-10471  ***** Oracle Goldengate support information on table UNOKI.TEST5 *****
Oracle Goldengate support native capture on table UNOKI.TEST5.
Oracle Goldengate marked following column as key columns on table UNOKI.TEST5: ID.

2018-12-09 19:21:29  INFO    OGG-10471  ***** Oracle Goldengate support information on table UNOKI.UNOKI *****
Oracle Goldengate support native capture on table UNOKI.UNOKI.
Oracle Goldengate marked following column as key columns on table UNOKI.UNOKI: ID.
```

これでunokiスキーマについてはスキーマレベルのサプリメンタルロギングが完了しました

##５．プロセスの起動
では実際にプロセスの起動を行っていきましょう

その前に伝播するオブジェクトを事前に作成しておきたいと思います

```
[oracle@test01 gghome_1]$ echo $ORACLE_SID
unoki
[oracle@test01 gghome_1]$ sqlplus unoki/unoki

SQL*Plus: Release 12.2.0.1.0 Production on Sun Dec 9 19:24:17 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Last Successful login time: Sun Dec 09 2018 19:18:31 +09:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> create table unoki(id number primary key);

Table created.

```

```
[oracle@test01 gghome_1]$ echo $ORACLE_SID
import
[oracle@test01 gghome_1]$ sqlplus import/import

SQL*Plus: Release 12.2.0.1.0 Production on Sun Dec 9 19:27:42 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Last Successful login time: Sun Dec 09 2018 19:26:52 +09:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> create table unoki(id number primary key);

Table created.

SQL> select * from import.unoki;
```

今回はunokiスキーマのunokiテーブルをimportスキーマのunokiテーブルに伝播していきたいと思います

ではプロセスを起動しましょう

```
GGSCI (test01.jp.test.com) 3> start cap01

Sending START request to MANAGER ...
EXTRACT CAP01 starting


GGSCI (test01.jp.test.com) 4> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     CAP01       00:00:00      00:00:06
EXTRACT     STOPPED     DP01        00:00:00      00:50:34
REPLICAT    STOPPED     REP01       00:00:00      00:26:55
```

```
GGSCI (test01.jp.test.com) 5> start dp01

Sending START request to MANAGER ...
EXTRACT DP01 starting


GGSCI (test01.jp.test.com) 6> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     CAP01       00:00:00      00:00:02
EXTRACT     RUNNING     DP01        00:00:00      00:00:06
REPLICAT    STOPPED     REP01       00:00:00      00:27:22
```

```
GGSCI (test01.jp.test.com) 10> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     CAP01       00:00:00      00:00:05
EXTRACT     RUNNING     DP01        00:00:00      00:00:01
REPLICAT    RUNNING     REP01       00:00:00      00:28:57
```

起動できました！

##６．データの追加
では正常にプロセスが構成できているかどうか確認するために、ソース・データベースにデータを挿入して伝播できるか確認してみましょう！

```SQL:ソースDB
[oracle@test01 gghome_1]$ echo $ORACLE_SID
unoki
[oracle@test01 gghome_1]$ sqlplus unoki/unoki

SQL*Plus: Release 12.2.0.1.0 Production on Sun Dec 9 19:40:31 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Last Successful login time: Sun Dec 09 2018 19:24:17 +09:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> create table unoki(id number primary key);

Table created.

SQL> insert into unoki values(1);

1 row created.

SQL> commit;

Commit complete.
```

1件insertしました

さてターゲットはどうなっているのでしょうか

```SQL:ターゲット
[oracle@test01 gghome_1]$ echo $ORACLE_SID
import
[oracle@test01 gghome_1]$ sqlplus import/import

SQL*Plus: Release 12.2.0.1.0 Production on Sun Dec 9 19:41:57 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Last Successful login time: Sun Dec 09 2018 19:27:43 +09:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> select * from unoki;

        ID
----------
         1
```

伝播できていますね！！
さてプロセスから伝播したことを確認してみましょう

```
[oracle@test01 gghome_1]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 12.3.0.1.4 OGGCORE_12.3.0.1.0_PLATFORMS_180415.0359_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Apr 16 2018 00:53:30
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2018, Oracle and/or its affiliates. All rights reserved.



GGSCI (test01.jp.test.com) 1> stats cap01

Sending STATS request to EXTRACT CAP01 ...

Start of Statistics at 2018-12-09 19:43:13.

Output to ./dirdat/lt:

Extracting from UNOKI.UNOKI to UNOKI.UNOKI:

*** Total statistics since 2018-12-09 19:35:56 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

*** Daily statistics since 2018-12-09 19:35:56 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

*** Hourly statistics since 2018-12-09 19:35:56 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

*** Latest statistics since 2018-12-09 19:35:56 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

End of Statistics.


GGSCI (test01.jp.test.com) 2> stats dp01

Sending STATS request to EXTRACT DP01 ...

Start of Statistics at 2018-12-09 19:43:17.

Output to ./dirdat/rt:

Extracting from UNOKI.UNOKI to UNOKI.UNOKI:

*** Total statistics since 2018-12-09 19:36:46 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

*** Daily statistics since 2018-12-09 19:36:46 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

*** Hourly statistics since 2018-12-09 19:36:46 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

*** Latest statistics since 2018-12-09 19:36:46 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

End of Statistics.


GGSCI (test01.jp.test.com) 3> stats rep01

Sending STATS request to REPLICAT REP01 ...

Start of Statistics at 2018-12-09 19:43:20.


Integrated Replicat Statistics:

        Total transactions                                 1.00
        Redirected                                         0.00
        Replicated procedures                              0.00
        DDL operations                                     0.00
        Stored procedures                                  0.00
        Datatype functionality                             0.00
        Event actions                                      0.00
        Direct transactions ratio                          0.00%

Replicating from UNOKI.UNOKI to IMPORT.UNOKI:

*** Total statistics since 2018-12-09 19:38:27 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

*** Daily statistics since 2018-12-09 19:38:27 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

*** Hourly statistics since 2018-12-09 19:38:27 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

*** Latest statistics since 2018-12-09 19:38:27 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

End of Statistics.
```

unokiスキーマからimportスキーマにunokiテーブルのデータが1件insertされていることが確認できると思います！
これで最小のGoldenGateプロセスの構成は完了です！

##まとめ
簡単にCapture、Datapump、Replicatプロセスを構成してみました
最小の構成であればパラメータも少なく、手順もシンプルに構成できることが確認できたと思います

もちろん本番環境で使用するためには多数のパラメータを検討することが必要になってきますが、このように最小構成で動かしてアーキテクチャを理解することでGoldenGateの大枠を理解することができ、その後の各種検討も用意になると考えています！
最初から多くのことを考えることは大変ですが、シンプルに最小の部分から初めて肉付けしていくことで、躓くことなく理解を進めることができるでしょう

明日はGoldenGate教の教祖様が記事を書く予定なのでぜひご期待下さい！