目次

はじめに

みなさん、こんにちは。
Oracle Cloud Infrastructure 検証チームです。

今回は、Oracle Cloud Infrastructure (以下OCI) のCloud Shell からAdmin Client を使ってOCI GoldenGate を操作する検証を実施しましたので、ご紹介したいと思います。

OCI GoldenGate の以前までのリリースでは、基本デプロイメント・コンソール画面上でのGUI 操作もしくはREST API コマンドでの操作しかサポートされなかったのですが、2022年8月時点の最新リリースではCloud Shell からAdmin Client を使っての操作がサポートされるようになりました。

これにより、以前のようにGGSCI(Oracle GoldenGateのコマンドライン・インタフェース) コマンドを使うことができるようになりました。

GGSCI コマンドに慣れ親しんでいる方にとっては朗報ですね。

今回の執筆者はプラチナホルダーであり20以上の資格を持つGoldenGateにも精通したスペシャルな社員です。
過去の記事も是非ご覧下さいね。

用語の解説

Oracle Cloud 公式ドキュメントより、用語の解説を抜粋します。

Oracle Cloud Infrastructure GoldenGate とは

データをリアルタイムで大規模に移動するフルマネージド型のネイティブ・クラウド・サービスです。

詳細は下記ドキュメントをご参照下さい。
https://docs.oracle.com/ja-jp/iaas/goldengate/doc/overview-goldengate.html

Cloud Shell とは

Oracle CloudコンソールからアクセスできるWebブラウザベースのターミナルです。

詳細は下記ドキュメントをご参照下さい。
https://docs.oracle.com/ja-jp/iaas/Content/API/Concepts/cloudshellintro.htm

Admin Client とは

コマンドライン・ユーティリティです(クラシックGGSCIユーティリティに似ています)。
これは、Microservicesサーバーによって公開されたREST APIを使用して、Oracle GoldenGateデプロイメントでの管理と構成のタスクを実行します。
Microservices Webユーザー・インタフェースを使用するかわりに、Admin Clientがプロセスの作成、変更および削除に使用されます。

詳細は下記ドキュメントをご参照下さい。
https://docs.oracle.com/cd/F51462_01/admin/getting-started-oracle-goldengate-process-interfaces.html#GUID-84B33389-0594-4449-BF1A-A496FB1EDB29

https://docs.oracle.com/cd/F51462_01/gclir/adminclient-command-line-interface-commands.html#GUID-424A4C09-DCD3-481A-B3D5-F90C62083F96

検証実施前の準備

検証実施前の前提条件として、下記準備作業が事前に完了していることとします。

  • Oracle Cloud GoldenGate 画面にてデプロイメントは作成済みであり、パブリックIPアドレスが割り当て済みであること
  • Oracle Cloud GoldenGate 画面にてソース・データベースとターゲット・データベースのネットワーキングおよび接続設定、及び両方のデータベースが上記デプロイメントに割り当て済みであること
  • Web ブラウザでOCI GoldenGate デプロイメント・コンソール画面へのアクセスが可能であること
  • ソース・データベースとターゲット・データベースに対して、 GoldenGate 使用にあたって事前に必要な各種設定が完了していること

検証内容のサマリー

今回の検証内容を実施した順に以下に記載しています。

  1. Cloud Shell からAdmin Client を起動
  2. OCI GoldenGate デプロイメントに接続
  3. ソース・データベースに接続
  4. ソース・データベースでスキーマ・レベルのサプリメンタル・ロギングを有効化
  5. Extract プロセスのパラメータ・ファイルを作成
  6. Extract プロセスの作成と起動
  7. ターゲット・データベースに接続
  8. ターゲット・データベースでチェックポイント表を作成
  9. Replicat プロセスのパラメータ・ファイルを作成
  10. Replicat プロセスの作成と起動
  11. データ同期確認
  12. 各種ログの確認

また、今回の検証手順の作成にあたっては下記Oracle Cloud 公式ドキュメントを参考にしております。

https://docs.oracle.com/ja-jp/iaas/goldengate/doc/goldengate-deployment-console.html#OCIGG-GUID-9CBE7991-916D-43A5-87F1-230DCF49B3C4

それでは準備が整いましたので検証していきましょう。

Cloud ShellからAdmin Clientを起動

コンソールURLとユーザー名の確認

コンソール・メニューから[Oracle Database] – [GoldenGate] – [デプロイメント]にナビゲートし、作成済みのデプロイメント名をクリックします。

今回は事前に作成済みの「ocigg1」という名前のデプロイメントを使用します。

[デプロイメント情報]タグの[GoldenGate]セクションのコンソールURLとユーザー名を確認します。

「OCIOGGADMIN」という名前のユーザーは事前に作成済みの管理者ユーザーです。

Cloud Shellを起動

コンソール・メニュートップ右上の[Cloud Shell]をクリックします。

Cloud Shellの画面が起動されたことを確認します。

Admin Clientを起動

Cloud ShellからAdmin Clientを起動します。

$ adminclient
Oracle GoldenGate Administration Client for Oracle
Version 21.1.0.0.0 OGGCORE_21.1.0.0.0_PLATFORMS_210127.0600

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

Linux, x64, 64bit (optimized) on Feb 9 2021 11:01:08
Operating system character set identified as UTF-8.

正常に起動すると、プロンプトの表示が以下のように変わります。

OGG (not connected) >

OCI GoldenGateデプロイメントに接続

デプロイメントに接続

上記[デプロイメント情報]タグで確認したコンソールURLとユーザー名を使って、デプロイメントに接続します。

OGG (not connected) > connect https://<コンソールURL> as <ユーザー名> !
Password for '<ユーザー名>' at 'https://<コンソールURL>/<デプロイメント名>':
<パスワード>を入力します。

コマンドの最後の感嘆符(!)は重要です。これがない場合、コマンドは失敗し、エラーを返します。

正常に接続できると、プロンプトの表示が以下のように変わります。

OGG (https://<コンソールURL> <デプロイメント名>) >

デプロイメント・コンソール画面の確認

以降基本Admin Clientを使ってのコマンドライン操作となりますが、コマンド実行確認用にWebブラウザを起動してOCI GoldenGateデプロイメント・コンソール画面にも接続しておきます。

コンソール・メニューから[Oracle Database] – [GoldenGate] – [デプロイメント]にナビゲートし、作成済みのデプロイメント名をクリックします。

[コンソールの起動]をクリックします。

ユーザー名とパスワードを入力し[サインイン]をクリックします。

デプロイメント・コンソール画面が表示されることを確認します。

ソース・データベースに接続

ソース・データベースに接続します。

接続に必要な作成済みの資格証明ストアの情報を確認します。

OGG> info credentialstore

Default domain: OracleGoldenGate

Alias: source
Userid: OGGADMIN@(DESCRIPTION=(CONNECT_TIMEOUT=60)(RETRY_COUNT=5)(RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)(ADDRESS=(PROTOCOL=TCP)(HOST=<ソース・データベースのホスト名>)(PORT=<ソース・データベースのリスナーのポート番号>))(CONNECT_DATA=(SERVICE_NAME=<ソース・データベースのサービス名>)(COLOCATION_TAG=<デプロイメント名>)))

今回「source」という名前の資格証明は事前に作成済みのソース・データベース接続用の資格証明です。
この資格証明を使って、ソース・データベースにログインします。

OGG> dblogin useridalias source
Successfully logged into database.

正常に接続できると、プロンプトの表示が以下のように変わります。

OGG (https://<コンソールURL> <デプロイメント名> as <資格証明ストア名>@<ソース・データベース名>) >

ソース・データベースでスキーマ・レベルのサプリメンタル・ロギングを有効化

スキーマ・レベルのサプリメンタル・ロギングを有効化します。

今回はソース・データベースとターゲット・データベースの両方に事前に作成済みの「testuser」というスキーマを使用します。

OGG> add schematrandata testuser
2022-10-17T06:50:23Z INFO OGG-01788 SCHEMATRANDATA has been added on schema "testuser".
2022-10-17T06:50:23Z INFO OGG-01976 SCHEMATRANDATA for scheduling columns has been added on schema "testuser".
2022-10-17T06:50:23Z INFO OGG-10154 Schema level PREPARECSN set to mode NOWAIT on schema "testuser"

Extractプロセスのパラメータ・ファイルを作成

Extractプロセスのパラメータ・ファイルを作成し保存します。

今回はExtractプロセス名を「EXT」という名前にします。

OGG> edit params EXT
OGG> view params EXT
EXTRACT EXT
USERIDALIAS source DOMAIN OracleGoldenGate
EXTTRAIL tr
TABLE testuser.*;

Extractプロセスの作成と起動

Extractプロセスの作成

Extractプロセスを作成します。

OGG> add extract EXT, integrated tranlog, begin now
2022-10-17T06:51:52Z INFO OGG-08100 Integrated Extract added.

Extractプロセスにトレイル・ファイルを追加

Extractプロセスにトレイル・ファイルを追加します。

OGG> add exttrail tr extract EXT
2022-10-17T06:52:33Z INFO OGG-08100 EXTTRAIL added.

Extractプロセスのソース・データベースへの登録

Extractプロセスをソース・データベースに登録します。

OGG> register extract EXT database
2022-10-17T06:53:20Z INFO OGG-02003  Extract group EXT successfully registered with database at SCN 4224744.

デプロイメント・コンソール画面の確認

ここで、デプロイメント・コンソール画面を確認します。
作成したExtractプロセスが画面に表示されるようになりました。
黄色のマークは未起動または停止中を示します。

Extractプロセスの起動

Extractプロセスを起動します。

OGG> start extract EXT
2022-10-17T06:53:30Z INFO OGG-00975 Extract group EXT starting.
2022-10-17T06:53:30Z INFO OGG-15426 Extract group EXT started.

Extractプロセスのステータスを確認します。正常に実行中「RUNNING」であることを確認します。

OGG> info all
Program Status  Group Type       Lag at Chkpt Time Since Chkpt
EXTRACT RUNNING EXT   INTEGRATED 00:00:00     00:01:51

デプロイメント・コンソール画面の確認

ここで、デプロイメント・コンソール画面を確認します。
起動したExtractプロセスのマークが実行中を示す緑色のマークに変わりました。
緑色のマークは実行中を示します。

ターゲット・データベースに接続

ターゲット・データベースに接続します。

接続に必要な作成済みの資格証明ストアの情報を確認します。

OGG> info credentialstore

Default domain: OracleGoldenGate

Alias: target
Userid: C##OGGADMIN@(DESCRIPTION=(CONNECT_TIMEOUT=60)(RETRY_COUNT=5)(RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)(ADDRESS=(PROTOCOL=TCP)(HOST=<ターゲットデータベースのホスト名>)(PORT=<ターゲット・データベースのリスナーのポート番号>))(CONNECT_DATA=(SERVICE_NAME=<ターゲット・データベースのサービス名>)(COLOCATION_TAG=<デプロイメント名>)))

今回「target」という名前の資格証明は事前に作成済みのターゲット・データベース接続用の資格証明です。この資格証明を使って、ターゲット・データベースにログインします。

OGG> dblogin useridalias target
Successfully logged into database.

正常に接続できると、プロンプトの表示が以下のように変わります。

OGG (https://<コンソールURL> <デプロイメント名> as <資格証明ストア名>@<ターゲット・データベース名>) >

ターゲット・データベースでチェックポイント表を作成

チェックポイント表を作成します。

今回はチェックポイント表の名前を「chkpt」という名前にします。

OGG> add checkpointtable c##oggadmin.chkpt

Replicatプロセスのパラメータ・ファイルを作成

Replicatプロセスのパラメータ・ファイルを作成し保存します。

今回はReplicatプロセス名を「REP」という名前にします。

OGG> edit params REP
OGG> view params REP
REPLICAT REP
USERIDALIAS target DOMAIN OracleGoldenGate
MAP testuser.*, TARGET testuser.*;

Replicatプロセスの作成と起動

Replicatプロセスの作成

Replicatプロセスを作成します。

OGG> add replicat REP exttrail tr begin now checkpointtable "C##OGGADMIN"."CHKPT"
2022-10-17T06:56:43Z INFO OGG-08100 Replicat added.
2022-10-17T06:56:43Z INFO OGG-06594 Replicat REP has been altered. Even the start up position might be updated, duplicate suppression remains active in next startup. To override duplicate suppression, start REP with NOFILTERDUPTRANSACTIONS option.
2022-10-17T06:56:43Z INFO OGG-08100 Replicat altered.

デプロイメント・コンソール画面の確認

ここで、デプロイメント・コンソール画面を確認します。
作成したReplicatプロセスが画面に表示されるようになりました。
黄色のマークは未起動または停止中を示します。

Replicatプロセスの起動

Replicatプロセスを起動します。

OGG> start replicat REP
2022-10-17T06:57:23Z INFO OGG-00975 Replicat group REP starting.
2022-10-17T06:57:23Z INFO OGG-15445 Replicat group REP started.

Replicatプロセスのステータスを確認します。正常に実行中「RUNNING」であることを確認します。

OGG> info all
Program  Status  Group Type          Lag at Chkpt Time Since Chkpt
EXTRACT  RUNNING EXT   INTEGRATED    00:00:00     00:00:04
REPLICAT RUNNING REP   NONINTEGRATED 00:00:00     00:00:09

デプロイメント・コンソール画面の確認

ここで、デプロイメント・コンソール画面を確認します。
起動したReplicatプロセスのマークが実行中を示す緑色のマークに変わりました。
緑色のマークは実行中を示します。

データ同期確認

ソース・データベースにデータ登録

ソース・データベースのユーザー「testuser」のテーブル「tab1」に、id=1とid=2とid=3のデータを登録します。

$ sqlplus testuser@source
Enter password:

SQL> insert into testuser.tab1 values (1, 'aaa');

1 row created.

SQL> insert into testuser.tab1 values (2, 'bbb');

1 row created.

SQL> insert into testuser.tab1 values (3, 'ccc');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from testuser.tab1 order by 1;

ID         NAME
---------- ----------
1          aaa
2          bbb
3          ccc

ターゲット・データベースのデータ確認

ターゲット・データベースのユーザー「testuser」のテーブル「tab1」に、id=1とid=2とid=3のデータが反映されており、データが同期されていることが確認できます。

$ sqlplus testuser@target
Enter password:

SQL> select * from testuser.tab1 order by 1;

ID         NAME
---------- ----------
1          aaa
2          bbb
3          ccc

各種ログの確認

メッセージ・ログ・ファイル(ggserr.log)を表示

ggserr.logファイルを表示します。レプリケーション処理したことが確認できます。

OGG> view messages

2022-10-18T21:52:21.131+0000 INFO OGG-02953 Oracle GoldenGate Administration Service for Oracle: Lag for Replicat group REP is 0:00:00.000 (checkpoint updated 0:00:08.542 ago).
2022-10-18T21:52:21.131+0000 INFO OGG-02950 Oracle GoldenGate Administration Service for Oracle: Lag for Extract group EXT is 0:00:00.000 (checkpoint updated 0:36:01.705 ago).
2022-10-18T21:52:21.317+0000 INFO OGG-02953 Oracle GoldenGate Administration Service for Oracle: Lag for Replicat group REP is 0:00:00.000 (checkpoint updated 0:00:08.729 ago).
2022-10-18T21:52:32.663+0000 INFO OGG-02950 Oracle GoldenGate Administration Service for Oracle: Lag for Extract group EXT is 0:00:00.000 (checkpoint updated 0:36:13.238 ago).
2022-10-18T21:52:32.665+0000 INFO OGG-02953 Oracle GoldenGate Administration Service for Oracle: Lag for Replicat group REP is 0:00:00.000 (checkpoint updated 0:00:00.069 ago).
2022-10-18T21:52:32.673+0000 INFO OGG-02950 Oracle GoldenGate Administration Service for Oracle: Lag for Extract group EXT is 0:00:00.000 (checkpoint updated 0:36:13.248 ago).

プロセスの統計を表示

Extractプロセスの処理操作数を確認します。3件のinsertを処理したことが確認できます。

OGG> stats extract EXT

Sending STATS request to Extract group EXT ...

Start of statistics at 2022-10-17 07:17:32.

Output to tr:

~(中略)~

Extracting from TESTUSER.TAB1 to TESTUSER.TAB1:

*** Total statistics since 2022-10-17 06:54:14 ***
Total inserts 3.00
Total updates 0.00
Total deletes 0.00
Total upserts 0.00
Total discards 0.00
Total operations 3.00

~(中略)~

End of statistics.

Replicatプロセスの処理操作数を確認します。3件のinsertを処理したことが確認できます。

OGG> stats replicat REP

Sending STATS request to Replicat group REP ...

Start of statistics at 2022-10-17 07:18:14.

Replicating from TESTUSER.TAB1 to EXACS_PDB1.TESTUSER.TAB1:

*** Total statistics since 2022-10-17 06:57:26 ***
Total inserts 3.00
Total updates 0.00
Total deletes 0.00
Total upserts 0.00
Total discards 0.00
Total operations 3.00

~(中略)~

End of statistics.

プロセスのレポートファイルを表示

Extractプロセスのレポートファイルを表示します。

OGG> view report EXT

2022-10-17 06:53:31 INFO OGG-06153 FIPS 140 support has been enabled. Process 27074 is using compliant shared libraries to perform encry
ption for the rest of its execution.

***********************************************************************
Oracle GoldenGate Capture for Oracle
Version 21.7.0.0.5 34610663_FBO
Oracle Linux 7, x64, 64bit (optimized), Oracle Database 21c and lower supported versions on Sep 17 2022 00:47:55

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

Starting at 2022-10-17 06:53:31
***********************************************************************

~(中略)~

***********************************************************************
** Running with the following parameters **
***********************************************************************

2022-10-17 06:53:31 INFO OGG-03059 Operating system character set identified as UTF-8.

2022-10-17 06:53:31 INFO OGG-02695 ANSI SQL parameter syntax is used for parameter parsing.

2022-10-17 06:53:32 INFO OGG-01360 EXTRACT is running in Integrated mode.
EXTRACT EXT
USERIDALIAS source DOMAIN OracleGoldenGate

2022-10-17 06:53:32 INFO OGG-03541 Oracle Environment Variables:
TNS_ADMIN = /u02/Deployment/etc.
EXTTRAIL tr
TABLE testuser.*;

~(中略)~

***********************************************************************
** Run Time Messages **
***********************************************************************

~(中略)~

2022-10-17 06:59:02 INFO OGG-06508 Wildcard MAP (TABLE) resolved (entry testuser.*): TABLE "TESTUSER"."TAB1".

2022-10-17 06:59:02 INFO OGG-06509 Using the following key columns for source table TESTUSER.TAB1: ID.

2022-10-17 07:17:32 INFO OGG-01021 Command received from application REST API: STATS.

Replicatプロセスのレポートファイルを表示します。

OGG > view report REP

2022-10-17 06:57:24 INFO OGG-06153 FIPS 140 support has been enabled. Process 29698 is using compliant shared libraries to perform encry
ption for the rest of its execution.

***********************************************************************
Oracle GoldenGate Delivery for Oracle
Version 21.7.0.0.5 34610663_FBO
Oracle Linux 7, x64, 64bit (optimized), Oracle Database 21c and lower supported versions on Sep 17 2022 00:51:20

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

Starting at 2022-10-17 06:57:24
***********************************************************************

~(中略)~

***********************************************************************
** Running with the following parameters **
***********************************************************************

2022-10-17 06:57:24 INFO OGG-03059 Operating system character set identified as UTF-8.

2022-10-17 06:57:24 INFO OGG-02695 ANSI SQL parameter syntax is used for parameter parsing.
REPLICAT REP
USERIDALIAS target DOMAIN OracleGoldenGate

2022-10-17 06:57:24 INFO OGG-03541 Oracle Environment Variables:
TNS_ADMIN = /u02/Deployment/etc.

~(中略)~

MAP testuser.*, TARGET testuser.*;

~(中略)~

***********************************************************************
** Run Time Messages **
***********************************************************************

~(中略)~

2022-10-17 06:59:03 INFO OGG-06506 Wildcard MAP resolved (entry testuser.*): MAP "TESTUSER"."TAB1", TARGET testuser."TAB1".

2022-10-17 06:59:03 INFO OGG-02756 The definition for table TESTUSER.TAB1 is obtained from the trail file.

2022-10-17 06:59:03 INFO OGG-06511 Using following columns in default map by name: ID, NAME.

2022-10-17 06:59:03 INFO OGG-06510 Using the following key columns for target table TESTUSER.TAB1: ID.

2022-10-17 07:18:14 INFO OGG-01021 Command received from application REST API: STATS.


さいごに

OCIのCloud ShellからAdmin Clientを使ってOCI GoldenGateを操作を試してみましたが、いかがでしたでしょうか?

Cloud ShellからAdmin Clientを使ってのコマンド操作が可能になったことで、逆にコンソール上からの画面操作はちょっと苦手という方でも、GGSCIコマンドの知識があれば OCI GoldenGate を操作することができます。

今回の機能拡張でOCI GoldenGate の操作方法の選択肢がまた1つ増えたことで、今後OCI GoldenGate が広く採用されるきっかけになれば幸いです。

その他、Oracle Cloudに関する記事はこちらからご覧下さいね。

Oracle Cloudに関するお問い合わせはこちらからお願いします!

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早6年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!