Oracle GoldenGate Microservices Architectureによるデータ・レプリケーションの設定

このクイックスタートでは、2つのプラガブル・データベースがあるマルチテナント・コンテナ・データベースについて、Oracle GoldenGate Microservices Architectureを使用してデータ・レプリケーションを構成して、HUB構成でのOracleからOracleデータベースへのデータ・レプリケーションを実例で示します。

ノート:

このクイックスタートでは、初期ロードによるインスタンス化は実行しません。また、ソース・エンドポイントとターゲット・エンドポイントで表とデータが同じであることを前提としています。

オンプレミスのOracle GoldenGateデプロイメントのデータ・レプリケーションを示すワークフロー。

この図のソース・データベースとターゲット・データベースは、コンテナ・データベースおよびプラガブル・データベース(PDB)のことを指しています。

コンテナ・データベース(CDB$ROOT)のプロセス名 プラガブル・データベース(DBEAST)のプロセス名 プラガブル・データベース(DBWEST)のプロセス名
  • CDB$ROOTデータベース・ユーザー: c##ggadmin

  • データベース資格証明別名: cggnorth

  • データベース・ユーザー: ggadmin

  • データベース別名: ggeast

  • Extract: exte

  • データベース・ユーザー: ggadmin

  • データベース別名: ggwest

  • Extract: extw

Oracle Multitenant Databaseの権限の構成と設定

Oracleデータベースで、Oracle GoldenGateでのレプリケーションを有効にし、CDBレベルおよびプラガブル・データベース(PDB)レベルでデータベース・ユーザーに権限を割り当てる必要があります。

データベースはARCHIVELOGモードであり、FORCE LOGGINGおよびサプリメンタル・ロギングが有効になっています。コンテナ・データベースの場合は、次の権限を共通ユーザー(cdb$root)に割り当てます。

CDBユーザー権限
## CGGNORTH DATABASE SETUP AT CDB LEVEL
ALTER SESSION SET CONTAINER=cdb$root;
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE;
ALTER SYSTEM SET STREAMS_POOL_SIZE=2G;
ALTER DATABASE FORCE LOGGING;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ARCHIVE LOG LIST;
CREATE TABLESPACE GG_DATA DATAFILE '+DATA' SIZE 100M AUTOEXTEND ON NEXT 100M;
CREATE USER c##ggadmin IDENTIFIED BY PASSWORD CONTAINER=ALL DEFAULT TABLESPACE GG_DATA TEMPORARY TABLESPACE TEMP;
GRANT ALTER SYSTEM TO c##ggadmin CONTAINER=ALL;
GRANT DBA TO c##ggadmin CONTAINER=ALL;
GRANT CREATE SESSION TO c##ggadmin CONTAINER=ALL;
GRANT ALTER ANY TABLE TO c##ggadmin CONTAINER=ALL;
GRANT RESOURCE TO c##ggadmin CONTAINER=ALL;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(' c##ggadmin ',CONTAINER=>'ALL');
ソースPDBユーザー権限(DBEAST)
ALTER SESSION SET CONTAINER=dbeast;
CREATE TABLESPACE GG_DATA DATAFILE '+DATA' SIZE 100M AUTOEXTEND ON NEXT 100M;
CREATE USER ggadmin IDENTIFIED BY PASSWORD CONTAINER=CURRENT; 
GRANT CREATE SESSION TO ggadmin CONTAINER=CURRENT;
GRANT ALTER ANY TABLE TO ggadmin CONTAINER=CURRENT;
GRANT RESOURCE TO ggadmin CONTAINER=CURRENT;
GRANT DBA TO ggadmin CONTAINER=CURRENT;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('ggadmin');
ターゲットPDBユーザー権限(DBWEST):
ALTER SESSION SET CONTAINER=dbwest;
CREATE USER ggadmin IDENTIFIED BY PASSWORD CONTAINER=CURRENT;
GRANT ALTER SYSTEM TO ggadmin CONTAINER=CURRENT;
GRANT CREATE SESSION TO ggadmin CONTAINER=CURRENT;
GRANT ALTER ANY TABLE TO ggadmin CONTAINER=CURRENT;
GRANT RESOURCE TO ggadmin CONTAINER=CURRENT;
GRANT DBA TO ggadmin CONTAINER=CURRENT;
GRANT DV_GOLDENGATE_ADMIN, DV_GOLDENGATE_REDO_ACCESS TO GGADMIN CONTAINER=CURRENT;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('ggadmin');

ノート:

DBAロールの付与は、すべてのユーザーに必須なわけではありません。権限は、ユーザーがデータベースで実行する必要がある操作に応じて付与する必要があります。たとえば、トランザクションを挿入、更新および削除するDML操作権限をggadminに付与するには、GRANT ANY INSERT/UPDATE/DELETE権限を使用し、さらに、DML操作の一部として表および索引を操作することをユーザーに許可するには、GRANT CREATE/DROP/ALTER ANY TABLE/INDEX権限を使用します。このクイックスタートでは、データベース・ユーザーがデータベース管理者であると想定しています。特定の権限要件の詳細は、「Oracle Database 21c以前のユーザー権限の付与」および「マルチテナント・コンテナ・データベースの構成」を参照してください。

Oracle GoldenGate MAのWebインタフェースからのレプリケーション・プロセスの構成

データ・レプリケーション・プロセスには、Extractプロセス、Replicatプロセス、および分散パス(DISTPATH)または受信側パスあるいはターゲット開始パス(RECVPATH)が含まれます。

次のステップを使用すると、データ取得(Extract)および適用(Replicat)プロセスを構成できます。レプリケーションが開始されているかどうかもテストできます。DISTPATHプロセスは、この構成には使用されません。

ステップ1: Administration Serviceからのデータベース資格証明の追加

この項では、EZConnectを使用してソースおよびターゲット・データベースに接続するためのデータベース資格証明を追加します。

  1. 前のセッションで作成した、データベース・ユーザー資格証明を準備しておいてください。それらを使用して、Oracle GoldenGateをデータベース・サーバーに接続します。

  2. WebブラウザでService Managerのログイン・ページを開き、Oracle GoldenGate管理者ユーザーの資格証明を使用してService Managerにログインします。初めてログインする場合は、Oracle GoldenGate Configuration Assistantウィザードでデプロイメントを追加したときに作成した、管理者アカウントのユーザー資格証明を使用してログインする必要があります。

  3. Service Managerの概要ページで、デプロイメントのAdministration Serviceのポート番号をクリックします。


    Service Managerの概要ページ

    これにより、Administration Serviceのログイン・ページが開きます。

  4. Service Managerへのログインに使用したのと同じ資格証明を使用して、Administration Serviceにログインします。Administration Serviceの概要ページが表示されます。


    Administration Serviceの概要ページ

  5. アプリケーション・ナビゲーションアイコンをクリックして左側のナビゲーション・ペインを開き、構成をクリックして構成ページのデータベースタブを開きます。


    アプリケーション・ナビゲーションオプションと構成ページ

  6. 資格証明セクション内のプラス(+)記号をクリックしてデータベース・ユーザーの資格証明の追加を開始します。


    データベース資格証明の追加

  7. コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)について接続を追加する必要があります。各CDBは、配信(Replicat)のための、ソース・データベースおよびPDBからの取得(Extract)に使用されます。

    EZconnect構文を使用してデータベース接続を構成します。EZConnect構文を使用するには、ユーザー名、パスワード、ホスト名、ポート番号およびサービス名の接続情報が必要です。

    ユーザーIDフィールドに指定する必要がある構文を次に示します。

    username@hostname:port/service_name

    EZConnectを使用してユーザーIDを設定する例を次に示します。

    c##ggadmin@dc.example.com:1521/dc1.example.com

    次の画面では、資格証明リストに追加されたユーザーc#ggadminに接続するためのデータベース資格証明(cggnorth)が示されています。DBEAST PDBへの接続用の別名(ggeast)について、追加されている資格証明を確認することもできます。
    EZConnectを使用したデータベース接続の設定

  8. アクション列内の青いアイコンをクリックしてデータベースに接続します。接続に成功すると、そのアイコンが青色になります。


    データベース資格証明の追加後にデータベースに接続された

    データベースに接続すると、チェックポイント表、TRANDATAおよびハートビート表を追加するためのセクションが表示されます。

ステップ2: TRANDATA、ハートビート表およびチェックポイント表の追加

この項では、ソース・データベースのTRANDATAを追加して、REDOログへの情報の書込みを有効にします。これにより、ソース・データベースに追加された行が、ターゲット・データベースで一意に識別され、更新されるようになります。ソース・データベースとターゲット・データベースのハートビート表を追加して、ラグの可能性がないかモニターします。また、ターゲット・データベースのチェックポイント表を追加して、障害が発生した場合にExtractプロセスおよびReplicatプロセスが障害発生時点から再開できるようにします。

  1. TRANDATAをソース接続に追加します。TRANDATA情報セクションを使用してデータベース・ロギングのプロパティを設定します。これは、サプリメンタル・ロギングを有効にし、データがデータベースのREDOログに書き込まれるようにするための必要なステップです。


    プラス記号を使用したTRANDATAの追加

    TRANDATAを追加した後は、検索アイコンを使用して、TRANDATAを追加したスキーマを検索できます。これにより、TRANDATA情報が表示されます。次の図は、プラガブル・データベースDBEAST内のHRスキーマのTRANDATA情報を示しています。


    検索オプションを使用したTRANDATAの追加

    スキーマ、表またはプロシージャ・レベルでロギング・プロパティを構成するステップについては、ロギング・プロパティの構成を参照してください。

  2. Replicatのチェックポイント表を設定するには、資格証明セクションからターゲット・データベース資格証明(ggwest)に接続する必要があります。


    ターゲット・データベース(ggwest)に接続されている
  3. プラス記号(+)をクリックしてターゲット(プラガブル)データベースのチェックポイント表を追加します。


    DBWEST PDBのggadminのチェックポイント表を追加しています。

    発行をクリックします。チェックポイント表が追加されます。


    チェックポイント表が追加されています。

    ハートビート表の作成の詳細は、「Extractを作成する前に」の項も参照してください。

  4. ggeastおよびggwestデータベース資格証明別名に接続することで、ソースおよびターゲット・エンドポイントの両方について、ハートビート表を追加します。プラス記号をクリックしてハートビート表を追加します。
    ソースおよびターゲット・エンドポイントについてハートビート表が追加される

  5. ハートビートのオプションを調整した後、送信をクリックします。

ステップ3: Extractの追加

この項では、Extractプロセス(exte)を追加します。Extractプロセスにより、ソース・データベースからデータを取得し、それを証跡ファイル(ea)に書き込みます。

  1. Administration Serviceの左側のナビゲーション・ペインから「概要」オプションをクリックし、「Extract」セクションのプラス記号(+)をクリックします。


    Extractの追加のセクションがある概要ページ

  2. Extractの追加ウィザードから、統合Extractを選択します。


    Extractの追加ウィザード

    ノート:

    Replicatを作成する前の、レプリケーション・プロセスを初めて開始するときに、初期ロードExtractを作成する必要があります。初期ロードExtractおよびそのユースケースの詳細は、「管理クライアントを使用した初期ロードExtractの追加」を参照してください。
  3. をクリックし、Extractオプション画面でExtractのオプションを指定します。Extractを追加する詳細なステップは、「プライマリExtractの追加」の項を参照してください。


    PDBに登録オプションを含むExtractオプションの追加

    プラガブル・データベースのExtractを作成する場合は、資格証明のドメインおよび別名を入力するとすぐに、PDBに登録オプションが表示されます。レプリケーションに使用する、コンテナ・データベース内のPDBを選択します。

  4. Extractのオプションを入力したら、をクリックします。次の画面には、Extract設定の確認に役立つExtractパラメータ・ファイルが表示されます。

    Extract exteのExtractパラメータ・ファイルを次に示します。
    EXTRACT exte
    USERIDALIAS cggnorth DOMAIN OracleGoldenGate
    EXTTRAIL east/ea
    SOURCECATALOG DBEAST
    DDL INCLUDE MAPPED
    TABLE hr.*;

    これらの設定を確認し、必要に応じてExtract構成を更新します。

    マルチテナント・データベースの場合は、複数のプラガブル・データベースから単一の証跡に取得する、Extractのエントリを追加する必要があります。パラメータ・ファイルにおいて、TABLE文とSEQUENCE文でcontainer.schema.objectという形式の3つの部分からなる完全修飾名を使用して、またはSOURCECATALOGパラメータで2つの部分からなる名前schema.objectを使用して、ソース・オブジェクトを指定する必要があります。

  5. 作成および実行をクリックしてExtractを開始します。

ステップ4: Replicatの追加

この項では、Replicatプロセス(repe)を追加します。Replicatプロセスにより、Extractによって作成された証跡ファイル(ea)からターゲット・データベースに、変更データを配信します。Replicatにより、ターゲット・データベースにある証跡ファイルを読み取り、DML操作またはDDL操作を再構成し、それらをターゲット・データベースに適用します。

  1. Replicatを追加する前にggwestデータベース資格証明に接続して、ターゲット・データベース(DBWEST)のチェックポイント表を追加してあることを確認してください。

  2. ターゲット・データベースにデータを配信するReplicatのタイプを選択します。ウィザードに従ってReplicatの追加を完了します。「Replicatの追加」を参照してください。


    Replicatの追加

  3. Replicatオプション画面でパラレル非統合Replicatのオプションを入力します。


    Replicatオプション

  4. をクリックしてReplicatパラメータ・ファイル画面を表示します。指定したパラメータはすべてここで確認できます。

    マルチテナント・コンテナ・データベースの場合、Replicatは1つのプラガブル・データベースにのみ適用できます。正しいものを指定するには、USERIDまたはUSERIDALIASパラメータで指定するデータベース・ユーザーにSQL*Net接続文字列を使用します。たとえば、ggadmin@DBWESTです。パラメータ・ファイルで、MAP文のTARGETの部分に、schema.objectのみを指定します。MAPの部分で、3つの部分からなる名前の複数のプラガブル・データベースからキャプチャされるソース・オブジェクトを識別するか、2つの部分からなる名前のSOURCECATALOGパラメータを使用します。

    Replicatパラメータ・ファイルのサンプルを次に示します。

    REPLICAT repe
    USERIDALIAS ggwest DOMAIN OracleGoldenGate
    --DDL EXCLUDE ALL
    DDLERROR default discard
    REPERROR (default,discard)
    DDLOPTIONS REPORT
    SOURCECATALOG DBEAST
    MAP hr.*, TARGET hr.*;
    

Replicatが正常に開始された後、Administration Serviceの概要ページで、実行中状態のExtractプロセスおよびReplicatプロセスを確認できます。


実行中状態のExtractおよびReplicatが示された、Administration Serviceの概要ページ。

ステップ5: レプリケーションのテスト

レプリケーションが開始されたかどうかをテストするには、データベースで挿入、更新または削除操作を試してから、次のステップに従います。
  1. Extract (exte)のセクションからアクションをクリックし、詳細をクリックします。

  2. 「統計」タブをクリックします。このページ内の挿入更新または削除列が加算されていることがわかります。


    実行中のExtractの統計ページの表内の更新列が更新されていることがわかる

    また、Replicatの詳細オプションを使用して統計タブを確認します。それらの更新が表の統計セクションに表示されています。
    Replicatの詳細の統計タブにそれらの更新が示されている