Oracle GoldenGateデプロイメントでのダウンストリームExtract

ダウンストリームのOracle GoldenGateデプロイメントでは、REDOログの処理をマイニング・データベースと呼ばれる代替データベースにオフロードできます。マイニング・データベースには、ソース・データベースのデータを含める必要はありませんが、同じデータベース・バージョン以上である必要があります。つまり、ソース・データベースとしてのOracleバージョン12cは、マイニング・データベース・バージョン19c以上を使用できるため、Oracle GoldenGateは、Oracle 12データベースで実際に実行することなく、Oracle 12cデータベースから変更を取得できます。

ダウンストリームExtractは、GoldenGateがソース・データベースに接続できない状況でも使用できます。

ノート:ソース・データベース・サーバーとダウンストリーム・データベース・サーバーのエンディアンとプロセッサ・タイプは同じである必要があります。たとえば、ダウンストリームExtractは、ソースLinux (x86)とダウンストリームWindows (x86)サーバーと連携しますが、ソース・サーバーがHP-UXでダウンストリーム・サーバーがAIXの場合、またはソース・サーバーがHP PA-RISCでダウンストリーム・サーバーがHP-Itaniumの場合、動作しません。

ダウンストリーム・マイニング・データベースでは、ソース・データベースからアーカイブ・ログおよびオンラインREDOログを受け入れます。これは、次の2つのモードでダウンストリームExtractが存在できることを意味します。

一般的なダウンストリーム・デプロイメントでは、データに変更が加えられるソース・データベースは、REDOログまたはアーカイブ・ログをマイニング・データベースに送ります。マイニング・データベースでは、ExtractプロセスがREDOログをマイニングし、証跡ファイルを書き出します。ダウンストリームExtractは、Oracle GoldenGateがソース・データベースとの接続を確立できない状況でも使用できます。次の図では、CDBNORTHがソース・データベース、CDBSOUTHがターゲット・データベースです。ソースとターゲットの間に、ダウンストリームExtractからターゲットに転送するデータベース・ログ・マイニング・サーバーを備えたマイニング・データベースがあります。

ソース・マルチテナント・コンテナ・データベースとログマイニング・サーバーを使用したダウンストリーム・データベース間のワークフロー。

別の方法として、カスケード方式を使用することもできます。Active Data Guardスタンバイがある場合は、プライマリからログを送信するのではなく、スタンバイでREDOログをマイニング・データベースに送信できます。このオプションは、ネットワーク帯域幅が制限され、スタンバイ・データベースがマイニング・データベースと同じリージョンまたはデータ・センターにある場合に使用する必要があります。

このアプローチでは、次の図に示すように、カスケード・モードで構成されたADGを使用して、ダウンストリーム・マイニング・データベースにREDOログを転送します。これをダウンストリームExtractが参照することで、ソース・データベースのオーバーヘッドが削減されます。

ノート: OracleのExtractプロセスは、Data GuardスタンバイまたはActive Data Guardスタンバイに接続してデータを取得できません。

Active Data Guard (ADG)に接続されたダウンストリーム・データベース

カスケード・ダウンストリーム環境の設定に関する構成の詳細は、「ダウンストリームExtractがADGと連携できるようにする」に関する項を参照してください。

ソースおよびダウンストリーム・マイニング・データベースの構成

この項では、データベース側で必要なパラメータおよびユーザー管理構成について学習します。

ソース・データベースおよびダウンストリーム・マイニング・データベースでのOracle GoldenGateユーザー

Oracle GoldenGate管理者ユーザーは、各データベースに存在する必要があります。コンテナ・データベースでは、Extractがルート・コンテナ内で使用されるため、共通ユーザーが必要です。

Oracle AI Database 26ai以降のユーザーを設定するには、新しいユーザーにOGG_CAPTUREおよびOGG_APPLYユーザー・ロールを割り当てる必要があります。詳細は、「Oracle AI Database 26ai以降でのユーザー権限の付与」を参照してください。

Oracle Database 21c以前のユーザーを設定するには、PL/SQLパッケージを使用します。次の例は、Oracle Database 21c以前でOracle GoldenGateを使用する場合のユーザーの作成と、このユーザーに付与される関連する権限を示しています。

CREATE USER c##ggadmin IDENTIFIED BY *password* CONTAINER = all;
ALTER USER c##ggadmin SET CONTAINER_DATA = all CONTAINER = current;
GRANT ALTER SESSION TO c##ggadmin CONTAINER = all;
GRANT connect, resource TO c##ggadmin CONTAINER = all;

BEGIN
  DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE
    ( grantee                 => 'C##GGADMIN'
    , privilege_type          => 'CAPTURE'
    , grant_select_privileges =>  TRUE
    , container               => 'ALL'
    );
END;
/

ノート:共通ユーザー(c##ggadmin)は、ダウンストリーム・データベースにのみ必要です。

データベースの接続の構成

データベース・ネット・サービスの要件

ソース・データベースとダウンストリーム・データベースには、双方向のデータベース・ネット・サービスを使用してアクセスできます。

Oracle GoldenGateでは、ソース・データベース(CDBNORTH_root)とダウンストリーム・データベース(cdbDSC_root)に対する接続を設定できます。ソース・データベースの接続は、Extract登録時にディクショナリ・データを格納するためにのみ必要です。FETCHUSERIDALIASパラメータを使用すると、実行時にフェッチするためにダウンストリーム・マイニング・データベース(cdbDSC_root)に接続することができます。ADGリダイレクションを使用して、Extract登録をADGからソースにリダイレクトできます。接続を設定するには、Oracle GoldenGateデプロイメントから資格証明を作成するために、これらのユーザーのデータベース資格証明があることを確認してください。

Oracle GoldenGateシップホームの一部であるSQL*Plusを使用してネット・サービスをテストできます。

ソース・データベースの前提条件

データベース接続を構成するには、ソース・データベースのインスタンスで次の設定が行われていることを確認します。

ダウンストリーム・マイニング・データベースの前提条件

データベース接続を構成するには、ソース・データベース・インスタンスとダウンストリーム・データベース・インスタンスで次の設定が行われていることを確認します。

ダウンストリーム・データベースのパラメータの構成

この項を使用して、必要に応じてリアルタイム・マイニング・モードおよびアーカイブ・マイニング・モードのパラメータを構成します。

リアルタイム・マイニング・モードでのダウンストリームExtractのパラメータ設定

リアルタイム・マイニング・モードのダウンストリームExtractの場合、主な前提条件は、ダウンストリーム・データベースにスタンバイREDOログ・ファイルが正しく構成されている必要があることです。

ダウンストリーム・リアルタイム・マイニングは、Extractパラメータ・ファイル内の明示的な設定によって有効化されます。LADの設定は、このモードとは独立しています。TRANLOGOPTIONS INTEGRATEDPARAMS (REAL_TIME_MINE Y)パラメータがまだ設定されていない場合は、リアルタイム・マイニング・モードでダウンストリームExtractを有効にするように設定する必要があります。

TRANLOGOPTIONS INTEGRATEDPARAMS (DOWNSTREAM_REAL_TIME_MINE Y)

ノート:ダウンストリーム・データベースには、特定のソース・データベースに対してリアルタイムExtractが1つのみ存在できます。他のExtractは非リアルタイムである必要があります。これはREDOトランスポートによる制限です。

ダウンストリーム・マイニング・データベースで次のコマンドを実行すると、FRAを使用して設定されているローカル・バックアップが表示されます。

ALTER SYSTEM
    SET log_archive_config='DG_CONFIG=(CDBNORTH, cdbDSC)';
ALTER SYSTEM set FAL_SERVER = 'CDBNORTH_root';

スタンバイREDOログ・ファイルはダウンストリーム・データベース上に存在している必要があります。ソースにn個のオンラインREDOログ・ファイルがある場合は、ターゲットに同じサイズのn+1個のスタンバイREDOログ・ファイルが存在している必要があります。

ダウンストリーム・マイニング・データベースでのスタンバイREDOログ・ファイルの作成

次のステップでは、スタンバイREDOログ・ファイルをダウンストリーム・マイニング・データベースに追加する手順を概説します。スタンバイREDOログの作成ルールを次に要約します。

スタンバイREDOログ・ファイルの追加に必要な特定のステップとSQL文は、環境によって異なります。スタンバイREDOログ・ファイルをデータベースに追加する手順の詳細は、フィジカル・スタンバイ・データベースの作成を参照してください。

ノート: 1つのダウンストリーム・マイニング・データベースに対してREDOを送信するソース・データベースが存在する場合、それらのソースのうち1つのみがマイニング・データベースのスタンバイREDOログにREDOを送信できます。このソース・データベースからのREDOをマイニングするExtractプロセスはリアルタイム・モードで実行できます。他のソース・データベースはすべてアーカイブ・ログのみをダウンストリーム・マイニング・データベースに送信し、このデータを読み取るExtractはアーカイブ・ログのみモードで実行されるよう構成される必要があります。

スタンバイREDOログ・ファイルを作成するには

  1. SQL*Plusで、ソース・データベースに管理ユーザーとして接続します。

  2. ソース・ログ・ファイルのサイズを確認します。結果をノートにとっておきます。

    SELECT BYTES FROM V$LOG;
  3. ソース・データベースに構成されているオンライン・ログ・ファイル・グループの数を確認します。結果をノートにとっておきます。

    SELECT COUNT(GROUP#) FROM V$LOG;
  4. 管理ユーザーとしてダウンストリーム・マイニング・データベースに接続します。

  5. スタンバイ・ログ・ファイル・グループをマイニング・データベースに追加します。スタンバイ・ログ・ファイルのサイズは、ソース・ログ・ファイルのサイズ以上である必要があります。スタンバイ・ログ・ファイル・グループの数は、ソース・オンライン・ログ・ファイル・グループの数より1つ以上多くする必要があります。これは、RACインストールの各インスタンス(スレッド)に適用されます。したがって、ソース・データベースにn個のスリーダーがあり、それぞれmのREDOログ・グループがある場合は、ダウンストリーム・マイニング・データベースでn*(m+1)のREDOログ・グループを構成する必要があります。

    次の例は、3つのスタンバイ・ログ・グループを示しています。

    ALTER DATABASE ADD STANDBY LOGFILE GROUP 3
    ('/oracle/dbs/slog3a.rdo', '/oracle/dbs/slog3b.rdo') SIZE 500M;
    ALTER DATABASE ADD STANDBY LOGFILE GROUP 4
    ('/oracle/dbs/slog4.rdo', '/oracle/dbs/slog4b.rdo') SIZE 500M;
    ALTER DATABASE ADD STANDBY LOGFILE GROUP 5
    ('/oracle/dbs/slog5.rdo', '/oracle/dbs/slog5b.rdo') SIZE 500M;
  6. スタンバイ・ログ・ファイル・グループが正常に追加されたことを確認します。

    SELECT GROUP#, THREAD#, SEQUENCE#, ARCHIVED, STATUS
    FROM V$STANDBY_LOG;

    次のような出力になります。

    GROUP#     THREAD#    SEQUENCE#  ARC STATUS
    
    ---------- ---------- ---------- --- ----------
             3          0          0 YES UNASSIGNED
             4          0          0 YES UNASSIGNED
             5          0          0 YES UNASSIGNED
  7. ソース・データベースのログ・ファイルが、設定したローカルのLOG_ARCHIVE_DEST_nのLOCATION属性で指定した場所にあることを確認します。ディレクトリ内のファイルを確認するために、ソース・データベースでログ・ファイルを切り替える必要がある場合があります。

スタンバイREDOログ・ファイルをローカルにアーカイブするためのダウンストリーム・マイニング・データベースの構成

この手順では、ソース・データベースのオンラインREDOログからREDOデータを受信するスタンバイREDOログをアーカイブするようダウンストリーム・マイニング・データベースを構成します。外部アーカイブ・ログは、ダウンストリーム・マイニング・データベースのリカバリ領域にアーカイブできないことに注意してください。

スタンバイREDOログをローカルでアーカイブする手順:

  1. ダウンストリーム・マイニング・データベースで、次の例に示すように、2つ目のアーカイブ・ログの宛先をLOG_ARCHIVE_DEST_n初期化パラメータに設定します。

    ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='LOCATION=/home/arc_dest/srl_dbms1
    VALID_FOR=(STANDBY_LOGFILE,PRIMARY_ROLE)'

    Oracleでは、外部アーカイブ・ログ(リモート・ソース・データベースからのログ)は、ローカル・マイニング・データベースのログ・ファイルと相互に分離しておくことをお薦めします。外部アーカイブ・ログのステージングにダウンストリーム・マイニング・データベースのリカバリ領域を使用することはできません。

  2. 前のステップで設定したLOG_ARCHIVE_DEST_2パラメータを次の例に示すように有効にします。

    ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE

アーカイブ・マイニング・モードのダウンストリームExtractのパラメータ設定

アーカイブ・マイニング・モードまたはリアルタイム・マイニング・モードのいずれかでダウンストリームExtractを設定するには、REDOトランスポートを設定する必要があります。アーカイブ・ログ専用モードでダウンストリームExtractを設定する場合は、次のパラメータを指定します。

ノート: LOG_ARCHIVE_DEST_2は、リアルタイム・マイニングの使用から独立している。

ソース・データベース上のローカル・バックアップ保存先およびREDOトランスポート・サービスには、アーカイブ・ログ保存先(LAD)パラメータ設定が必要です。

次のコマンドを使用して、ローカル・バックアップ保存先のLADパラメータを設定します。

ALTER SYSTEM SET db_recovery_file_dest = '/u01/app/oracle/fast_recovery_area';
ALTER SYSTEM SET db_recovery_file_dest_size = 100G;
ALTER SYSTEM SET log_archive_dest_1 = 'LOCATION=USE_DB_RECOVERY_FILE_DEST';

次のコマンドを使用して、ソース・データベースでREDOトランスポート・サービスのLADパラメータ・オプションを設定します。

ALTER SYSTEM SET log_archive_config = 'DG_CONFIG = (CDBNORTH, cdbDSC)';
ALTER SYSTEM
      SET log_archive_dest_2='SERVICE=cdbDSC_root
                              ASYNC
                              NOREGISTER
                              VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE)
                              DB_UNIQUE_NAME=cdbDSC';

LOG_ARCHIVE_DESTパラメータとその属性についてさらに学習するには、データベース・リファレンス・ガイドのLOG_ARCHIVE_DEST_nを参照してください。

ダウンストリーム・デプロイメントに対するOracle GoldenGateのExtractの構成

この項では、ソース・データベースおよびダウンストリーム・データベースとの接続を設定し、ダウンストリーム・データベースにExtractを構成するために、Oracle GoldenGateに必要なパラメータについて学習します。

ダウンストリーム・データベースに対するOracle GoldenGateの構成

ダウンストリーム・デプロイメントを設定するには、ダウンストリームExtractパラメータ・ファイルに次のパラメータが含まれている必要があります。

次に、これらのパラメータが指定されたExtractパラメータ・ファイルの例を示します。

EXTRACT EXTDSC
USERIDALIAS cgg_CDBNORTH
TRANLOGOPTIONS MININGUSERALIAS cgg_cdbDSC
TRANLOGOPTIONS INTEGRATEDPARAMS (DOWNSTREAM_REAL_TIME_MINE Y)
FETCHUSERIDALIAS cgg_CDBNORTH DOMAIN OracleGoldenGate

EXTTRAIL Downstream/ea
SOURCECATALOG CDBNORTH_PDB1
DDL INCLUDE MAPPED
TABLE HR.*;

ダウンストリームExtractを使用するようにOracle GoldenGateデプロイメントを設定するには、次のステップに従います。

  1. ソース・データベースの資格証明を追加します。

    ALTER CREDENTIALSTORE ADD USER c##ggadmin@CDBNORTH_root ALIAS cgg_CDBNORTH DOMAIN OracleGoldenGate PASSWORD password

  2. ダウンストリーム・データベースの資格証明を追加します。

    ALTER CREDENTIALSTORE ADD USER c##ggadmin@cdbDSC_root ALIAS cgg_cdbDSC DOMAIN OracleGoldenGate PASSWORD *password*
  3. DBLOGINを使用して、Oracle GoldenGateからソース・データベースおよびダウンストリーム・データベースに接続します。

    DBLOGIN USERIDALIAS cgg_CDBNORTH
    MININGDBLOGIN USERIDALIAS cgg_cdbDSC

    この例では、cgg_CDBNORTHがソース・データベースCDBNORTHの資格証明別名で、cgg_cdbDSCがマイニング・データベースの資格証明別名です。

  4. Extractを追加および登録し、以前に指定したExtractパラメータを含めるようにパラメータ・ファイルを編集し、Extract証跡の名前と場所を追加し、Extractを開始します。

    ADD EXTRACT extdsc, INTEGRATED TRANLOG, BEGIN NOW
    REGISTER EXTRACT extdsc, DATABASE CONTAINER (CDBNORTH_PDB01)
    
    ADD EXTTRAIL Downstream/ea, EXTRACT extdsc
    START extdsc

Active Data Guardを使用したカスケード・ダウンストリームExtractの構成

ソース・データベースへの接続が不可能な場合は、Active Data Guard (ADG)スタンバイ・データベースを使用するようにGoldenGateを構成できます。スタンバイ・データベースは、メタデータ問合せおよびフェッチを実行するための読取り専用接続に使用できます。この項では、ADGを使用して、ソース・データベースとの接続を確立せずにダウンストリームExtractを構成する方法を学習します。

ダウンストリームExtractがADGと連携できるようにする

カスケードされたダウンストリーム取得環境では、ダウンストリーム・データベースはソース・データベースに直接接続しません。これは、フェッチおよびメタデータ問合せにActive Data Guard (ADG)を使用します。

Extractは、ソースレス・オプションを使用して起動する必要があります。そうすることで、非ネイティブのデータ型をフェッチする必要があるときには、ソース・データベースに接続するかわりに、FETCHUSERIDまたはFETCHUSERIDALIASを使用してADGに接続するようにします。たとえば、このインスタンスは読取り専用モードで開かれているため、FETCH操作はADGデータベースで処理されます。ADGインスタンスで処理できないその他の操作(ディクショナリ・ビルドの作成など)は、ADGからソース・データベースにリダイレクトされます。

ダウンストリームExtractを登録すると、Oracle GoldenGateは、REDOが発生したデータベースではなく、ソース・データベースとしてADGに接続します。ADGリダイレクションが、次のコマンドおよびパラメータでサポートされています。

ADGリダイレクションは、Oracle Database 21c以降で使用できます。ワイルドカード登録もサポートしています。次の例は、ADGを使用する場合のダウンストリームExtractのExtractパラメータ・ファイルを示しています。

EXTRACT EXTDSC
NOUSERID
TRANLOGOPTIONS MININGUSERALIAS cgg_cdbDSC_src DOMAIN OracleGoldenGate
TRANLOGOPTIONS INTEGRATEDPARAMS (DOWNSTREAM_REAL_TIME_MINE Y) FETCHUSERIDALIAS cgg_cdbADG_src DOMAIN OracleGoldenGate

EXTTRAIL cascade/ea
SOURCECATALOG CDBNORTH_PDB01
DDL INCLUDE MAPPED
TABLE HR.*;

次に、ダウンストリーム統合ExtractがADGスタンバイと連携できるようにするステップを示します。

  1. 次の例に示すように、ADGスタンバイにLOG_ARCHIVE_DESTINATION_N (LAD)を追加します。

    ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='service=mining_db_service_name ASYNC NOREGISTER VALID_FOR(STANDBY_LOGFILES,STANDBY_ROLES) DB_UNIQUE_NAME=3rd_db_unique_name' scope=both

    このステップにより、ADGスタンバイのstandby_logfilesが転送および生成されます。

  2. 次の例に示すように、ログをマイニング・データベースに送るようにADGスタンバイのLOG_ARCHIVE_CONFIGを設定します。

    ALTER SYSTEM SET LOG_ARCHIVE_CONFIG = 'DG_CONFIG' = (CDBNORTH, cdbADG_src, cdbDSC)';

    DB_CONFIGは、1番目、2番目および3番目のデータベースの一意の名前です。

  3. マイニング・データベースで、受信するstandby_logfilesをマイニング・データベースに格納する場所を設定します。次に例を示します。

    ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='location= /home/arc_dest/dstrm VALID_FOR=(STANDBY_LOGFILE,ALL_ROLES)' scope=both

    ここで、/home/arc_dest/dstrmは外部アーカイブ・ログの場所です。外部アーカイブ・ログの格納にFRAを使用しないでください。

  4. 次の例に示すように、マイニング・データベースでLOG_ARCHIVE_CONFIGを実行して、Extractプロセスがマイニング・データベースでそれらを読み取れるようにします。

    ALTER SYSTEM SET LOG_ARCHIVE_CONFIG ='DG_CONFIG' scope=both

    ここで、DB_CONFIGは、1番目、2番目および3番目のデータベースの一意の名前です。

  5. ダウンストリームExtractの場合、データベース接続が適切に構成されるようにする必要があります。Extractを登録するとき、読取り専用アクティビティ用に開いているADGスタンバイへのDBLOGIN接続が確立されていることを確認してください。

  6. Extractを追加して登録するには、次のコマンドを使用します。

    DBLOGIN USERID ggadmin@cdbADG_src, PASSWORD ggadmin
    MININGDBLOGIN USERID ggadmin@cgg_cdbDSC, password ggadmin

    cdbADG_srcは、プライマリではないADGです。

cgg_cdbDSCはマイニング・データベースです。

  1. 次に、NOUSERIDパラメータを使用するExtractを登録します。

    ADD EXTRACT exte, INTEGRATED TRANLOG, BEGIN NOW REGISTER EXTRACT exte DATABASE
  2. Extractの登録後、このExtractを使用してデータをマイニングし、正常にExtractを開始できます。