6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI GoldenGate Data Tranforms(データ変換)とGoldenGate(Extract/Replicat)連携を試してみる

Last updated at Posted at 2025-03-26

はじめに

OCI GoldenGateにはGoldenGate(レプリケーション)とData Transforms(データ変換)、Stream(ストリーム)と3つのデプロイメントがあります。
こちらのblogにData Transforms(データ変換)からGoldenGateのプロセスが作成できることが紹介されています。実際どのような感じなのか、Autonomous Database間の表のレプリケーションを例に確認してみました。

Data Transforms(データ変換)はオンプレミスの製品Oracle Data Integratorをベースにしたクラウド向けに作成されたETLサービスです。現在Autonomous Database、OCI GoldenGate、OCI Market Placeの3つのデプロイメントで利用いただけます。使い分けについては、最適なデータ統合ツールの選択 – Data Transforms or Oracle Data Integratorをご覧ください。

前提

  • データソースはAutonomous Databaseを利用(ソースデータべースはATP1、ターゲットデータベースはADW1)
  • ATP1、ADW1,OCI GoldenGateのデプロイメントは同じプライベート・サブネットを指定。セキュリティリストのイングレス、エグレスどちらもプライベート・サブネットでは全プロトコルを許可。
  • Autonomous DatabaseはTLS接続を利用(mTLSは不要の設定)
  • Autonomous Databaseのパブリック・アクセスは有効とし、アクセス制御はCIDRブロックを0.0.0.0/0に設定(
    インターネット経由でAutonomous Database付属ツールにアクセス可)
  • Autonomous DatabaseのADMINスキーマでObject Storageのアクセスができるクレデンシャルが作成済み。(この記事ではcred_adminとしています)
  • OCI GoldenGateからATP1,ADW1の接続はTLSを利用
  • GoldenGate管理ユーザーggadminユーザーのパスワード・シークレットおよびData Transforms管理ユーザーSUPERVISORのパスワード・シークレットをOCI Vaultで作成済み(それぞれggadmin/supervisorとしています)。OCI Vaultでのシークレット作成についてはこちらの記事の1~3が参考になります。

1.Autonomous Databaseの準備

Autonomous Databaseを作成し、ユーザーを作成しサンプルデータをインストールします。続けてGoldenGateのためにサプリメンタルロギングをOnにします。Database ActionsはAutonomous Databaseの管理ユーザーであるADMINでログインします。

サンプルユーザの準備

まずソース・データベースで実行します。
Database Actionsの「データベース・ユーザー」でSRC_OCIGGLLユーザーを作成します。

image.png

image.png

コードの表示をクリックするとこちらのようになります。

-- USER SQL
CREATE USER SRC_OCIGGLL IDENTIFIED BY Welcome12345#;

-- ADD ROLES
GRANT CONNECT TO SRC_OCIGGLL;
GRANT DWROLE TO SRC_OCIGGLL;
GRANT RESOURCE TO SRC_OCIGGLL;


-- REST ENABLE
BEGIN
    ORDS_ADMIN.ENABLE_SCHEMA(
        p_enabled => TRUE,
        p_schema => 'SRC_OCIGGLL',
        p_url_mapping_type => 'BASE_PATH',
        p_url_mapping_pattern => 'src_ociggll',
        p_auto_rest_auth=> TRUE
    );
    -- ENABLE DATA SHARING
    C##ADP$SERVICE.DBMS_SHARE.ENABLE_SCHEMA(
            SCHEMA_NAME => 'SRC_OCIGGLL',
            ENABLED => TRUE
    );
    commit;
END;
/

-- QUOTA
ALTER USER SRC_OCIGGLL QUOTA UNLIMITED ON DATA;

同様にターゲット・データベースでもSRCMIRROR_OCIGGLLというユーザーを作成します。

サンプル・データの準備

ドキュメントにあるOCI GoldenGateサンプル・データをダウンロードします。
次にソース・データベースのDatabase Actionsで「SQL」を起動して、「プリファレンス」で言語を”英語-English”に変更します。サンプルデータの月のデータ挿入が失敗を避けるためなので、サンプルデータの準備が完了したら日本語に戻します。

image.png

image.png

次にダウンロードしたスクリプトの内容をコピーして貼り付け、スクリプトの実行アイコンをクリックします。

image.png

実行が完了すると、表や索引、プロシージャが作成されていることが確認できます。
image.png

image.png

サンプルデータの準備が完了しました。

GGADMINのロック解除

ソース・データベースとターゲット・データベースの両方で、GoldenGateのためのユーザーGGADMINのロックを解除します。それぞれのDatabase Actionsの「データベース・ユーザー」でGGADMINを検索し、編集を選択します。

image.png

パスワードを入力して、アカウントがロックされていますをオフにし、変更の適用をクリックします。
image.png

コマンドだとこちらになります。

-- CHANGE PASSWORD
ALTER USER GGADMIN IDENTIFIED BY Welcome12345#;

-- ACCOUNT LOCK
ALTER USER GGADMIN ACCOUNT UNLOCK;

サプリメンタル・ロギングの変更

続けてAutonomoous Databaseのサプリメンタル・ロギングをONに変更します。Database Actionsの「SQL」で以下を実行します。

SELECT MINIMAL FROM dba_supplemental_logging;
ALTER PLUGGABLE DATABASE ADD SUPPLEMENTAL LOG DATA;
SELECT MINIMAL FROM dba_supplemental_logging;

MINIMALがYESに設定されていれば完了です。

image.png

また以下のSQLを実行しサンプルスキーマの表のサポートモードがFullになっているかを確認します。

select * from DBA_GOLDENGATE_SUPPORT_MODE where owner = 'SRC_OCIGGLL';

次のような結果になります。

image.png

2.GoldenGate(レプリケーション)デプロイメントの作成

OCI GoldenGateでレプリケーション・デプロイメントを作成します。
OCIコンソール→Oracle Database→GoldenGateでGoldenGateのホームを開きます。

image.png

左のメニューからデプロイメントを選択し、デプロイメントの作成をクリックします。

image.png

検証なので、以下以外はデフォルトの設定を受け入れ、作成をクリックします。()内は本記事での設定です。

  • 名前:任意の名前(NRT GG)
  • デプロイメント・タイプの選択:データ・レプリケーション
  • ハードウェア構成:開発
  • サブネット:既存プライベート・サブネット
  • GoldenGateインスタンス名:任意の名前(GGInstance)
  • 資格証明ストア:GoldenGate
  • 管理者ユーザー名:ggadmin
  • パスワード・シークレット:作成済みのパスワード・シークレット(ggadmin)

image.png

image.png

image.png

パブリックエンドポイントで接続したい場合は拡張オプションのネットワークでロード・バランサを構成することもできます(別課金)。今回はしていません。
image.png

作成できました。

image.png

レプリケーションに登録するデータ・ソースの接続の作成

レプリケーションで使用するデータ・ソースを登録するには接続の作成が必要です。今回はソース・データベース(ATP1)とターゲット・データベース(ADW1)への接続を作成します。
左のメニューから接続をクリックし、接続の作成をクリックします。

image.png

接続の作成画面でソース・データベースの情報を入力します。名前をsourceatp1とし、データベース・ユーザー名はggadmin、パスワードはggadminのロック解除で指定したパスワードを設定します。
またネットワーク接続は共有エンドポイントを選択します。

image.png

作成をクリックすると、接続が作成されます。

image.png

同様にターゲット・データベースへの接続もtargetadw1という名前で作成します。

デプロイメントに接続を割り当てる

デプロイメントに作成した接続を割り当てます。
作成済みのレプリケーション・デプロイメント(NRT GG)のホームから割り当て済接続を選択し、接続の割当てをクリックします。接続の割り当ては対象のデプロイメントが起動している必要があります。

image.png

ソース・データベース、ターゲット・データベースの両方の接続を割り当てます。

image.png

割り当てが完了すると、こちらのように状態がアクティブとなります。

image.png

各接続で接続のテストが可能なので、接続が成功することを確認しておきます。

image.png

image.png

Data Transforms(データ変換)デプロイメントの作成

次にOCI GoldenGateでデータ変換デプロイメントを作成します。デプロイメントの作成をクリックします。

image.png

検証なので、以下以外は基本的にデフォルトの設定を受け入れ作成をクリックします。拡張オプションではGoldenGateデプロイメント同様、ロードバランサーの構成が可能です。

  • 名前:任意の名前(NRT DT)
  • デプロイメント・タイプの選択:データ変換
  • ハードウェア構成:開発
  • サブネット:既存プライベート・サブネット
  • GoldenGateインスタンス名:任意の名前(GGInstance)
  • 資格証明ストア:GoldenGate
  • パスワード・シークレット:作成済みのパスワード・シークレット(supervisor)

image.png

image.png

image.png

作成が完了しました。

image.png

データ変換に登録するデータ・ソースの接続の作成

Data Transformsで利用するデータ・ソースとして、レプリケーション・デプロイメントに対して接続を作成します。左のメニューから接続をクリックし、接続の作成をクリックします。

image.png

名前に任意の名前(GG for DTにしました)、接続タイプに"汎用接続"を選択し、ホストにホスト名:ポート番号の形式で設定を行います。ホストの設定値はレプリケーション・デプロイメントの場合は、GoldenGate管理コンソールURLのホスト名とポート番号(443)となります。管理コンソールURIは、OCIコンソールのデプロイメント情報で確認できます。

image.png

データ変換ではデータベースなど他のデータソースの場合も接続タイプには"汎用接続"を選択し、ホスト名:ポート番号を設定します。例えばプライベート・エンドポイントでTLS接続のAutonomous Databaseをデータ変換で使用したい場合は接続文字列の接続ホスト名(プライベートホスト)、ポート番号(1521)になります

作成が完了すると、レプリケーション・デプロイメントの接続とあわせて、こちらのようになります。

image.png

デプロイメントに接続を割り当てる

データ変換・デプロイメントに作成した接続を割り当てます。
作成済みのデータ変換デプロイメント(NRT DT)のホームから割り当て済接続を選択し、接続の割当てをクリックします。

image.png

先ほど作成した接続を割り当てます。

image.png

割り当てが完了すると、状態がアクティブとなります。接続のテストを行い成功を確認しておきます。

image.png

image.png

3.データ変換デプロイメントのData Transformsコンソールで操作をする

データ変換でレプリケーション・デプロイメントを利用してソース・データベースとターゲット・データベース間で表のレプリケーションを設定します。

Data Transformsコンソールにアクセス

拡張オプションでパブリック・エンドポイントの構成をしていないため、データ変換デプロイメントのホームにある「コンソールの起動」をクリックすると、プライベート・ネットワークでアクセスする必要がある旨のメッセージとアクセスURLが表示されます。

image.png

SSH転送などを利用して、アクセスURLにアクセスし、ユーザ名SUPERVISORとシークレットに設定したパスワードでログインします。

image.png

Connectionの作成

Data Transformsのホーム画面です。左からConnectionsをクリックします。

image.png

続けて、Create Connectionをクリックします。

image.png

SevicesからOracle GoldenGate-OCIを選択し、Nextをクリックします。

image.png

Deployment URLにレプリケーション・デプロイメントのコンソールURLを入力し、ユーザ名にggadmin、パスワードにシークレットに設定したパスワードを設定し、Test Connectionで接続の確認をします。成功を確認後Createをクリックします。

image.png

OCI GoldengateへのConnectionが作成されました。

image.png

GoldenGateと連携したデータロードの作成

まずプロジェクトを作成します。プロジェクトはData Transformsの設計リソースのコンテナのコンポーネントです。左からProjectsを選択し、Create Projectをクリックします。任意の名前(今回はdemo-pipleline)をつけてCreateをクリックします。

image.png

作成したプロジェクトdemo-pipelineをクリックし、
image.png

Create Data Loadをクリックします。

image.png

表示されたウィンドウで設定をしていきます。Nameに任意の名前(今回はggdataload1)、Use GoldenGateにチェックをいれ、GoldenGate Deployment Connectionに作成したConnectionであるGGを選択し、Nextをクリックします、

image.png

Source Connectionを設定します。ソース・データベースになるので、GoldenGate Connectionsにはsourceatp1SchemaにはSRC_OCIGGLLを選択し、Nextをクリックします。

image.png

Target Connectionを設定します。ターゲット・データベースになるので、GoldenGate Connectionsにはtargetadw1、SchemaにはSRCMIRROR_OCIGGLLを選択し、Saveをクリックします。

image.png

こちらのような画面になります。ソース・データベースのSRC_OCIGGLLスキーマの表が表示されるので、対象にしたい表とActionを選択します。右下にはGoldenGateのExtract、Replicatプロセスの情報がありますが、どちらもNot Deployedのステータスです。

image.png

今回はSRC_CITY表を含めて3つの表を選択し、そしてアクションはAppnedを選択し、保存しました。

image.png

image.png

左上の実行ボタン(デプロイ)をクリックします。

image.png

デプロイが成功すると、GoldenGate StatusでExtract、ReplicatそれぞれがNot deployedからStoppedにかわります。

image.png

Extract、Replicatを実行ボタンをクリックして起動します。GoldenGate StatusでExtract、ReplicatそれぞれがStopedからRunningにかわります。

image.png

4.レプリケーション・デプロイメントのGoldenGateコンソールで情報を確認する

データ変換側の操作でレプリケーションのExtract/Replicatプロセスが作成され、起動されました。詳細をレプリケーション側のGoldenGateコンソールで確認します。

GoldenGateコンソールのアクセス

拡張オプションでパブリック・エンドポイントの構成をしていないため、Data Transformsコンソール同様にssh転送などを用いてGoldenGateコンソールにアクセスします。ユーザーはggadminパスワードにはシークレットに設定したパスワードでログインします。

image.png

次のような画面が表示され、データ変換で作成したExtract/Replicatプロセスが存在、起動していることがわかります。

image.png

それぞれの詳細を確認してみます。まずExtractのアクションから詳細を選択します。

image.png

以下の情報が確認できます。

  • Extractのプロセス情報

image.png

  • チェックポイント
    image.png

  • 統計
    image.png

  • キャッシュマネージャ統計
    image.png

  • パラメータ
    image.png

  • レポート
    image.png

Replicatプロセス側も同様に確認ができます。

image.png

  • プロセス情報
    image.png

image.png

  • チェックポイント
    image.png

  • 統計

image.png

  • パラメータ
    image.png

  • レポート

image.png

  • ハートビート
    image.png

5.レプリケーションの確認

ソース・データベースにデータを投入し、ターゲット・データベースに伝播されるかどうかを確認します。

ソース・データベースにデータを投入

ソース・データベースのSRC_CITY表にデータを挿入します。ソース・データベースのDatabase ActionsにADMINユーザーでログインし、「SQL」で以下のSQL文で10行データを挿入します。

Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113);
Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416);
Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574);
Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878);
Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689);
Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472);
Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075);
Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434);
Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581);
Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002);

image.png

GoldenGateコンソールでExtract、Replicatの統計をみてみると、10件データが挿入されていることが確認できます。

  • Extractプロセスの統計
    image.png

  • Replicatプロセスの統計

image.png

実際にターゲット・データベースで以下のSQLでも確認してみると、

SELECT * from SRCMIRROR_OCIGGLL.SRC_CITY order by city_id desc;

挿入したデータが正しく伝播されていることが確認できました。

image.png

おわりに

こちらのチュートリアルの通り、レプリケーション・デプロイメントのみでもちろんデータ連携できます。比較してみると、データ変換から行うと、Extract,Replicat,チェックポイントが自動化されるようでした。
データ変換とレプリケーション両方を使う場合に試してみてもよいかもしれません。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?