Oracle GoldenGateデプロイメントでのダウンストリームExtract
ダウンストリームのOracle GoldenGateデプロイメントでは、ソース・データベースのREDOログをダウンストリーム・マイニング・データベースにオフロードできます。これにより、マイニングに対するソース・データベースの負荷を軽減できます。
-
リアルタイム・マイニング・モード: リアルタイム・マイニング・モードでは、REDOレコードはオンラインREDOログまたはスタンバイREDOログから即時に処理されるため、データベース変更の処理に遅延はありません。
-
アーカイブ・ログ専用モード: アーカイブ・ログ・マイニング・モードでは、REDOレコードは、REDOログ・ファイルにアーカイブされるまで処理されません。
一般的なダウンストリーム・デプロイメントでは、ソース・データベースにプライマリExtractがあり、ダウンストリーム・データベースにダウンストリームExtractがあります。次の図では、CDBNORTHがソース・データベース、CDBSOUTHがターゲット・データベースです。ソースとターゲットの間に、ダウンストリームExtractからターゲットにREDOログを転送するデータベース・ログマイニング・サーバーを備えたマイニング・データベースがあります。
ダウンストリームExtractを設定するもう1つのオプションは、マイニング・データベースに対してActive Data Guard (ADG)リダイレクションを使用したExtract登録を使用することです。
このアプローチでは、次の図に示すように、カスケード・モードで構成されたADGを使用して、ダウンストリーム・マイニング・データベースにREDOログを転送します。それをダウンストリームExtractが参照することで、ソース・データベースのオーバーヘッドが削減されます。

カスケード・ダウンストリーム環境の設定に関する構成の詳細は、「ダウンストリームExtractがADGと連携できるようにする」を参照してください。
ソース・データベースおよびダウンストリーム・データベースの構成
この項では、データベース側で必要なパラメータおよびユーザー管理構成について学習します。
ソース・データベースおよびダウンストリーム・データベースのOracle GoldenGateユーザー
Oracle GoldenGate管理者ユーザーは、各データベースに存在する必要があります。コンテナ・データベースでは、Extractがルート・コンテナ内で使用されるため、共通ユーザーが必要です。
Oracle Database 23ai以降、ユーザーを設定するには、新しいユーザーにOGG_CAPTURE
およびOGG_APPLY
ユーザー・ロールを割り当てる必要があります。詳細は、「Oracle Database 23ai以降でのユーザー権限の付与」を参照してください。
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登録時にディクショナリ・データを格納するためにのみ必要です。FETCHUSERID
パラメータを使用すると、実行時にフェッチするためにダウンストリーム・マイニング・データベース(cdbDSC_root)に接続できます。ADGリダイレクションを使用して、Extract登録をADGからソースにリダイレクトできます。接続を設定するには、Oracle GoldenGateデプロイメントから資格証明を作成するために、これらのユーザーのデータベース資格証明があることを確認してください。
Oracle GoldenGateシップホームの一部であるSQL*Plusを使用してネット・サービスをテストできます。
データベースに関する前提条件
-
すべてのデータベースに次の指定が必要です。
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE;
-
STREAMS_POOL_SIZE
を設定する必要があります。たとえばALTER SYSTEM SET STREAMS_POOL_SIZE = 1G;
-
すべてのデータベースがアーカイブ・ログ専用モードである必要があります。
ALTER DATABASE ARCHIVE LOG;
-
(推奨)すべてのデータベースが強制ロギング・モードである必要があります。
ALTER DATABASE FORCE LOGGING;
-
ソース・データベースで、最小限のサプリメンタル・ロギングが有効になっている必要があります。
-
ダウンストリーム・データベースには、次に対して異なる設定が必要です。
-
DBID
-
DBNAME
-
DB_UNIQUE_NAME
-
GLOBAL_NAME
ダウンストリーム環境では、一意のデータベース名がデータベース名と一致します。
-
-
ソース・データベースとダウンストリーム・データベースのパスワード・ファイル(
orapwSID
)は同じです。そのため、remote_login_passwordfile
をSHARED
またはEXCLUSIVE
に設定する必要があります。
ダウンストリーム・データベースのパラメータの構成
リアルタイム・マイニング・モードでのダウンストリームExtractのパラメータ設定
リアルタイム・マイニング・モードのダウンストリームExtractの場合、主な前提条件は、ダウンストリーム・データベースにスタンバイREDOログ・ファイルが正しく構成されている必要があることです。
TRANLOGOPTIONS INTEGRATEDPARAMS (REAL_TIME_MINE Y)
パラメータがまだ設定されていない場合は、リアルタイム・マイニング・モードでダウンストリームExtractを有効にするように設定する必要があります。TRANLOGOPTIONS INTEGRATEDPARAMS (DOWNSTREAM_REAL_TIME_MINE Y)
ノート:
特定のソース・データベースのダウンストリーム・データベースには、リアルタイムExtractが1つのみ存在できます。他のExtractは非リアルタイムである必要があります。これはREDOトランスポートによる制限です。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ログ・ファイルのサイズは、少なくともREDOソース・データベースの最大REDOログ・ファイルと同程度である必要があります。管理を簡単にするために、ソース・データベースのすべてのREDOログ・ファイルとダウンストリーム・マイニング・データベースのスタンバイREDOログ・ファイルを同じサイズにすることをお薦めします。
-
スタンバイREDOログは、ソース・データベースのREDOスレッドごとにソース・データベースのREDOログより1つ以上多い数のREDOログ・グループを持つ必要があります。
スタンバイREDOログ・ファイルの追加に必要な特定のステップやSQL文は、環境によって異なります。スタンバイREDOログ・ファイルをデータベースに追加する手順の詳細は、フィジカル・スタンバイ・データベースの作成を参照してください。
ノート:
1つのダウンストリーム・マイニング・データベースにREDOを送信するソース・データベースが複数ある場合、それらのソースのうち1つのみがマイニング・データベースのスタンバイREDOログにREDOを送信できます。このソース・データベースからのREDOをマイニングするExtractプロセスはリアルタイム・モードで実行できます。他のソース・データベースはすべてアーカイブ・ログのみをダウンストリーム・マイニング・データベースに送信し、このデータを読み取るExtractはアーカイブ・ログのみモードで実行されるよう構成される必要があります。
スタンバイREDOログ・ファイルを作成する手順
スタンバイREDOログ・ファイルをローカルにアーカイブするためのデータベースの構成
この手順では、ソース・データベースのオンラインREDOログからREDOデータを受信するスタンバイREDOログをアーカイブするようダウンストリーム・マイニング・データベースを構成します。外部アーカイブ・ログは、ダウンストリーム・マイニング・データベースのリカバリ領域にアーカイブできないことに注意してください。
スタンバイREDOログをローカルでアーカイブする手順:
- ダウンストリーム・マイニング・データベースで、次の例に示すように、2つ目のアーカイブ・ログの宛先を
LOG_ARCHIVE_DEST_n
初期化パラメータに設定します。ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='LOCATION=/home/arc_dest/srl_dbms1 VALID_FOR=(STANDBY_LOGFILE,PRIMARY_ROLE)'
外部アーカイブ・ログ(リモート・ソース・データベースからのログ)はローカル・マイニング・データベース・ログ・ファイルと分けて保管し、ログ・ファイル同士も分けて保管することをお薦めします。外部アーカイブ・ログのステージングにダウンストリーム・マイニング・データベースのリカバリ領域を使用することはできません。
- 前のステップで設定した
LOG_ARCHIVE_DEST_2
パラメータを次の例に示すように有効にします。ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE
アーカイブ・ログ専用モードでのダウンストリームExtractのパラメータ設定
アーカイブ・ログ専用マイニング・モードまたはリアルタイム・マイニング・モードのいずれかでダウンストリームExtractを設定するには、REDOトランスポートを設定する必要があります。アーカイブ・ログ専用モードでダウンストリームExtractを設定する場合は、次のパラメータを指定します。
-
LOG_ARCHIVE_CONFIG
-
LOG ARCHIVE DESTINATION (LAD)
-
すべてのデータベースのローカル・バックアップに
LOG_ARCHIVE_DEST_1
-
ソース・データベースでのREDOトランスポートに
LOG_ARCHIVE_DEST_2
サービスノート:
LOG_ARCHIVE_DEST_2
は、リアルタイム・マイニングの使用から独立しています。 -
ローカル・データベース・バックアップ保存先は、フラッシュ・リカバリ領域を使用して設定されます
-
-
FAL_SERVER
-
必要なすべてのシステム・パラメータは、
scope=both
で動的に設定できます。
ソース・データベース上のローカル・バックアップ保存先およびREDOトランスポート・サービスには、アーカイブ・ログ保存先(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 = 'USE_DB_RECOVERY_FILE_DEST';
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の構成
-
TRANLOGOPTIONS MININGUSERALIAS
: 内部メタデータ問合せのためにダウンストリーム・マイニング・データベースへの接続を設定します。 -
FETCHUSERIDALIAS
: トランザクション・ログからネイティブに抽出できないデータをフェッチするために、ソース・データベースに接続します。 -
TRANLOGOPTIONS INTEGRATEDPARAMS (DOWNSTREAM_REAL_TIME_MINE Y)
: Yに設定すると、Extractはダウンストリーム・データベースのスタンバイREDOログ・ファイルから変更を取得します。設定されていない場合、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.*;
-
ソース・データベースの資格証明を追加します。
ALTER CREDENTIALSTORE ADD USER c##ggadmin@CDBNORTH_root ALIAS cgg_CDBNORTH DOMAIN OracleGoldenGate PASSWORD password
-
ダウンストリーム・データベースの資格証明を追加します。
ALTER CREDENTIALSTORE ADD USER c##ggadmin@cdbDSC_root ALIAS cgg_cdbDSC DOMAIN OracleGoldenGate PASSWORD password
-
DBLOGIN
を使用して、Oracle GoldenGateからソース・データベースおよびダウンストリーム・データベースに接続します。DBLOGIN USERIDALIAS cgg_CDBNORTH
MININGDBLOGIN USERIDALIAS cgg_cdbDSC
この例では、
cgg_CDBNORTH
がソース・データベースCDBNORTHの資格証明別名で、cgg_cdbDSC
がマイニング・データベースの資格証明別名です。 -
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)を使用してダウンストリーム・データベースをソース・データベースに接続する際に必要なパラメータおよび構成について学習します。
ダウンストリームExtractがADGと連携できるようにする
カスケードされたダウンストリーム取得環境では、ダウンストリーム・データベースはソース・データベースに直接接続しません。Active Data Guard (ADG)を参照として使用します。
Extractは、ソースレス・オプションを使用して起動する必要があります。そうすることで、非ネイティブのデータ型をフェッチする必要があるときには、ソース・データベースに接続するかわりに、FETCHUSERID
またはFETCHUSERIDALIAS
を使用してADGに接続するようにします。たとえば、このインスタンスは読取り専用モードで開かれているため、FETCH操作はADGデータベースで処理されます。ADGインスタンスで処理できないその他の操作(ディクショナリ・ビルドの作成など)は、ADGからソース・データベースにリダイレクトされます。
-
SCHEMATRANDATA
-
TRANDATA
-
FLUSH SEQUENCE
-
TRACETABLE
-
HEARTBEATTABLE
-
REGISTER EXTRACT
ノート:
SCHEMATRANDATA
およびTRANDATA
は、コマンドがスタンバイREDOログで実行された場合でも、実際のDML操作が実行されるプライマリ・データベースで実際のログ・グループが作成および管理されます。
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スタンバイと連携できるようにするステップを示します。
-
次の例に示すように、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
が転送および生成されます。 -
次の例に示すように、ログをマイニング・データベースに送るようにADGスタンバイの
LOG_ARCHIVE_CONFIG
を設定します。ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='dg_config' scope=both;
db_config
は、1番目、2番目および3番目のデータベースの一意の名前です。 -
マイニング・データベースで、受信する
standby_logfiles
をマイニング・データベースに格納する場所を設定します。ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='location= DB_RECOVERY_FILE_DEST VALID_FOR=(STANDBY_LOGFILE,ALL_ROLES)' scope=both
場所は、データベース・リカバリ・ファイルの宛先です。
-
次の例に示すように、マイニング・データベースで
LOG_ARCHIVE_CONFIG
を実行して、Extractプロセスがマイニング・データベースでそれらを読み取れるようにします。ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='dg_config' scope=both
ここで、db_configは、1番目、2番目および3番目のデータベースの一意の名前です。
-
ダウンストリームExtractの場合、データベース接続が適切に構成されるようにする必要があります。Extractを登録するときは、ADGスタンバイに対して
DBLOGIN
接続が確立され、読取り専用アクティビティ用に開いていることを確認します。 -
Extractを追加して登録するには、次のコマンドを使用します。
DBLOGIN USERID ggadmin@cdbADG_src, PASSWORD ggadmin MININGDBLOGIN USERID ggadmin@cgg_cdbDSC, password ggadmin
cdbADG_src
は、プライマリではないADGです。cgg_cdbDSC
はマイニング・データベースです。 - 次に、
NOUSERID
パラメータを使用するExtractを登録します。ADD EXTRACT exte, INTEGRATED TRANLOG, BEGIN NOW REGISTER EXTRACT exte DATABASE
- Extractの登録後、このExtractを使用してデータをマイニングし、正常にExtractを開始できます。