タスク2: Oracle GoldenGate環境の構成
このタスクを完了するには、次のステップを実行します。
-
ステップ2.1 - GoldenGateデプロイメントにアクセスします。
-
ステップ2.2 - データベース資格証明の作成
-
ステップ2.3 - 自動起動プロファイルの作成
-
ステップ2.4 - Oracle GoldenGateプロセスの構成
ステップ2.1: デプロイメントへのアクセス
デプロイメントにアクセスするには:
-
クライアント・サブネットがパブリックの場合、VIPアドレスおよびSSHトンネルを使用してノードにアクセスできます。すべてのノードで次のコマンドを使用し、プライマリ・クラスタとスタンバイ・クラスタの両方でVIP DNS名を持つSSHトンネルを作成する必要があります。
ssh -N -L <local_port>:<vip-dns-name>:443 -p 22 <gghub-node>local_portには、ローカル・システムで使用可能な任意のポートを指定できます。gghub-nodeは、トンネルが構成されているクラスタの名前です。Oracleでは、プライマリおよびスタンバイVIPのDNS名を使用して、次のようにGoldenGateを管理することをお薦めします。
-
プライマリVIP DNS名:
<cluster-prefix>1.ggoraclevcn.com -
スタンバイVIP DNS名:
<cluster-prefix>2.ggoraclevcn.com
その後、
https://localhost:<local_port>を使用してWebブラウザでデプロイメントにアクセスできます。 -
-
クライアント・サブネットがプライベートである場合は、
-
次の値を使用して、クライアント・サブネットへの要塞を作成する必要があります:
-
ターゲットVCN: VCNを選択します
-
ターゲット・サブネット: クライアント・サブネット名
-
CIDRブロック許可リスト: SSHセッションを使用したターゲット・リソースへの接続を許可するIPアドレスまたはアドレス範囲を入力または選択します。
-
-
プライマリVIPアドレスとポート443のスタンバイVIPアドレスを使用して、SSHポート転送セッションを作成します。ポート転送セッションの作成についてさらに学習します。
-
セッションの「アクション」メニュー(3つのドット)から、「SSHコマンドの表示」を選択し、「コピー」を選択します。
-
SSHコマンドを実行して、
<privateKey>をローカル秘密キー・パスに、443を<localPort>に置換します。ポート転送セッションの接続についてさらに学習します -
その後、
https://localhostを使用してWebブラウザでデプロイメントにアクセスできます。
-
ステップ2.2: データベース資格証明の作成
Oracle GoldenGate Microservices UIを使用して、前述のTNS別名を使用してデータベース資格証明を作成します。oggadminユーザーとして、データベース資格証明を追加します。
-
Oracle GoldenGate管理サービス(
https://localhost:<localPort>/services/<deployment_name>/adminsrvr/v2/content/)にログインします。 -
左側のナビゲーション・メニューの「DB接続」を選択します。
-
DB接続ページで、「DB接続の追加」(プラス・アイコン)を選択します。
-
各ソースおよびターゲットのCDBとPDBに必要な情報を追加します。
地域 コンテナ ドメイン 別名 ユーザーID リージョン 1 CDB GoldenGate Reg1_CDB c##ggadmin@ リージョン 1 PDB GoldenGate Reg1_PDB ggadmin@ リージョン 2 CDB GoldenGate Reg2_CDB c##ggadmin@ リージョン 2 PDB GoldenGate Reg2_PDB ggadmin@
ステップ2.3: 自動起動プロファイルの作成
Oracle GoldenGate管理サーバーの起動時にExtractおよびReplicatプロセスを自動的に起動し、ExtractまたはReplicatプロセスが破棄された場合に再起動するプロファイルを作成します。GoldenGateマイクロサービスでは、プロファイルは自動起動および再起動を管理します。
Oracle GoldenGate管理サーバーUIを使用して、各Oracle GoldenGateプロセスに割り当てるプロファイルを作成します。
-
ソースGoldenGateデプロイメントのGoldenGate WebUIにログインします。
-
ナビゲーション・メニューで、「管理対象プロセス・プロファイル」を選択します。
-
「管理対象プロセス設定」ページで「プロファイルの追加」を選択します。
-
次のように詳細を入力します。
-
プロファイル名: Start_Default
-
説明: デフォルトの自動起動/再起動プロファイル
-
デフォルト・プロファイル: はい
-
自動開始: はい
-
自動開始オプション
-
開始の遅延: 1分
-
自動再起動: はい
-
-
自動再起動オプション
-
最大再試行数: 5
-
再試行の遅延: 30秒
-
再試行期間: 30分
-
失敗時にのみ再起動: はい
-
試行回数に達したらタスクを無効化: はい
-
-
-
「送信」を選択します
-
ターゲットのGoldenGateデプロイメントで、これらのステップを繰り返します。
ステップ2.4: Oracle GoldenGateプロセスの構成
Oracle GoldenGate Microservices ArchitectureによるExtract、分散パスおよびReplicatプロセスの作成時に、GGHubノード間で共有する必要があるすべてのファイルは、すでに共有ファイル・システムに格納されているデプロイメント・ファイルによって共有されています。
次に示すように、Extract、分散パスおよびReplicatプロセスのためにGGhubでOracle GoldenGate Microservicesを実行する際に推奨される基本的な構成の詳細を示します。
次のサブステップを実行して、このステップを完了します。
-
ステップ2.5.1 - 構成の抽出
-
ステップ2.5.2 - Replicat構成
-
ステップ2.5.3 - 分散パス構成
ステップ2.5.1: 構成の抽出
Oracle GoldenGate管理サービスのインタフェースを使用してExtractを作成するときには、トレイルのサブディレクトリ・パラメータを空白のままにして、証跡ファイルが自動的に共有ファイル・システムに格納されているデプロイメント・ディレクトリ内に作成されるようにします。証跡ファイルのデフォルトの場所は、/<deployment directory>/var/lib/dataディレクトリです。
ノート:マルチテナント・データベースから取得するには、c##アカウントを使用してルート・レベルで構成済のExtractを使用する必要があります。マルチテナント・データベースにデータを適用するには、PDBごとに個別のReplicatが必要になります。これは、ReplicatがPDBレベルで接続して、そのPDB以外のオブジェクトにアクセスできないためです。
REDO転送の最大パフォーマンス・モードでは最大可用性モードを使用しているData Guard構成を使用するGoldenGate Extractプロセスでは、トランザクションが失われて論理データの不整合が発生しないように、プライマリ・システムの抽出プロセス・パラメータ・ファイルに次の値を追加する必要があります。
TRANLOGOPTIONS HANDLEDLFAILOVER
このパラメータにより、まだData Guardスタンバイ・データベースに適用されていないREDOからExtractがトランザクション・データを抽出しないようにします。これは、Oracle GoldenGateがソース・スタンバイ・データベースに存在しないデータをターゲット・データベースにレプリケートしないようにするために重要です。
このパラメータが指定されていないと、ソース・データベースのデータ損失フェイルオーバー後に、ソース・データベースに存在していないデータがターゲット・データベースに保持される可能性があります。それにより、論理データの不整合が発生します。
デフォルトでは、スタンバイ・データベースで適用されたSCN情報を問い合せることができないためにExtractが停止すると、その60秒後に、警告メッセージがExtractレポート・ファイルに書き込まれます。たとえば:
WARNING OGG-02721 Extract has been waiting for the standby database for 60 seconds.
Extractレポート・ファイルに警告メッセージが書き込まれるまでの時間は、Extractパラメータの"TRANLOGOPTIONS HANDLEDLFAILOVER STANDBY_WARNING"を使用して調整できます。
Extractが30分(デフォルト)後にスタンバイ・データベースによって適用されたSCN情報を問い合せることができない場合、Extractプロセスは異常終了して、次のメッセージがExtractレポート・ファイルに記録されます。
ERROR OGG-02722 Extract abended waiting for 1,800 seconds for the
standby database to be accessible or caught up with the primary database.
デフォルトの30のタイムアウトが満了する前にスタンバイ・データベースが使用可能になると、Extractはソース・データベースからデータのマイニングを続行して、次のメッセージをレポート・ファイルに報告します。
INFO OGG-02723 Extract resumed from stalled state and started processing LCRs.
タイムアウト値の30分は、Extractパラメータの"TRANLOGOPTIONS HANDLEDLFAILOVER STANDBY_ABEND
計画メンテナンス停止時など、スタンバイ・データベースが長期間使用できなくなる場合に(計画メンテナンスのための停止時間間など)、Extractでプライマリ・データベースからデータの抽出を継続するには、Extractのパラメータ・ファイルからTRANLOGOPTIONS HANDLEDLFAILOVERパラメータを削除し、Extractを再起動します(図4から6の例を参照)。このパラメータは、スタンバイが使用可能になったら必ず設定してください。
ノート:スタンバイが使用不可のときにプライマリ・データベースからの抽出が続行されている場合、スタンバイが使用可能になった後にデータ損失フェイルオーバーが発生し、フェイルオーバーの前にすべてのプライマリREDOが適用されていない可能性もあります。GoldenGateターゲット・データベースには、ソース・データベースに存在しないデータが含まれるようになります。
Extractプロセスに自動再起動プロファイルが割り当てられている場合は、Data Guardロール・トランジションの後に、Extractプロセスが自動的に再起動されます。Extractは、デフォルトの5分タイムアウト期間が満了するまで、新しいスタンバイ・データベースの現在の状態を無視して、新しいプライマリ・データベースからのREDOデータのマイニングを続行します。この期間の経過後にスタンバイが使用できない場合、Extractは次のエラーで異常終了します。
INFO OGG-25053 Timeout waiting for 300 seconds for standby database
reinstatement. Now enforcing HANDLEDLFAILOVER.
ERROR OGG-06219 Unable to extract data from the Logmining server OGG$CAP_XXXXX.
ERROR OGG-02078 Extract encountered a fatal error in a processing thread and is
abending.
Extractは、GoldenGate Microservicesの自動再起動プロファイルに基づいて、再試行回数に達するか新しいスタンバイ・データベースが使用可能になるまで自動的に再起動し続け、HANDLEDLFAILOVERタイムアウトに達すると失敗します。
データベース・ロール・トランジション後のタイムアウト期間中、HANDLEDLFAILOVERパラメータは自動的に一時停止されるため、ソース・スタンバイ・データベースが最新の状態に維持されていないことの考慮なしに、データがOracle GoldenGateレプリカ・データベースにレプリケートされます。Extractの異常終了前に起動するスタンバイ・データベースのタイムアウト期間は、ExtractパラメータのTRANLOGOPTIONS DLFAILOVER_TIMEOUTを使用すると調整できます。
DLFAILOVER_TIMEOUTをデフォルトの5分のままにして、古いプライマリがスタンバイに変換できるようにすることをお薦めします。新しいスタンバイ・データベースが長期間使用できなくなるか完全に消失した場合に、Extractを起動して実行状態を維持するには、Extractパラメータ・ファイルからHANDLEDLFAILOVERパラメータを削除する必要があります。このパラメータを削除すると、ExtractはREDOがスタンバイ・データベースに適用されるまで待機せず、データを抽出します。
スタンバイ・データベースをオンラインに戻りプライマリ・データベースからのすべてのREDOを適用するまでにかかる間、スタンバイ・データベースとOracle GoldenGateレプリカ・データベースの間にデータの相違があります。これは、スタンバイ・データベースが最新状態になると解決されます。その時点で、統合Extractプロセス・パラメータ・ファイルにHANDLEDLFAILOVERパラメータを再度追加し、Extractを停止してから再起動します。
プライマリ・データベースが損なわれたときにはブローカがスタンバイ・データベースに自動的にフェイルオーバーできるなど、Oracle Data Guardファスト・スタート・フェイルオーバーが無効になっている場合は、次に示す追加の統合Extractパラメータを指定する必要があります。
TRANLOGOPTIONS FAILOVERTARGETDESTID n
このパラメータでは、スタンバイ・データベースにまだ適用されていないREDOデータを抽出しないことに関して、Oracle GoldenGate Extractプロセスを遅らせたままにしておく必要があるスタンバイ・データベースを指定します。
Oracle Data Guardファスト・スタート・フェイルオーバーが無効のときに、追加の統合ExtractパラメータFAILOVERTARGETDESTIDを指定していないと、抽出は次のエラーで異常終了します。
ERROR OGG-06219 Unable to extract data from the Logmining server OGG$CAP_XXXXX.
ERROR OGG-02078 Extract encountered a fatal error in a processing thread and is abending.
FAILOVERTARGETDESTIDの正しい値を判断するには、ソース・スタンバイ・データベースへのREDOの送信に使用されるGoldenGateソース・データベースのLOG_ARCHIVE_DEST_Nパラメータを使用します。たとえば、LOG_ARCHIVE_DEST_2がスタンバイ・データベースを指している場合は2の値を使用します。
プライマリ・データベース・システムでoracleユーザーとして、次のコマンドを実行します。
[opc@exapri-node1 ~]$ sudo su - oracle
[oracle@exapri-node1 ~]$ source <db_name>.env
[oracle@exapri-node1 ~]$ sqlplus / as sysdba
SQL> show parameters log_archive_dest
NAME TYPE VALUE
--------------------- ----------- ---------------------------------------------------
log_archive_dest_1 string location=USE_DB_RECOVERY_FILE_DEST,
valid_for=(ALL_LOGFILES, ALL_ROLES)
log_archive_dest_2 string service="<db_name>", SYNC AFFIRM delay=0
optional compression=disable max_failure=0 reopen=300
db_unique_name="<db_name>" net_timeout=30,
valid_for=(online_logfile,all_roles)
この例では、次のようにExtractパラメータを設定します。
TRANLOGOPTIONS FAILOVERTARGETDESTID 2
Extractを作成します。
-
Oracle GoldenGateソースにログインします
-
ナビゲーション・メニューで、「抽出」を選択します。
-
「Extract」ページで、「Extractの追加」を選択します。
-
「抽出の追加」フォームに次のように入力します。
-
抽出情報の場合:
-
Extractタイプ: 統合Extract。
-
プロセス名: EXT_1
-
説明: リージョン1 CDBのExtract
-
-
抽出オプションの場合:
-
資格証明ドメイン: GoldenGate
-
資格証明別名: Reg1_CDB
-
PDBに登録: PDB名
-
目的: 一方向
-
開始: 即時
-
証跡名: aa
-
-
-
「次へ」を選択します
-
PDBからのCDBルート取得を使用する場合は、PDB名を指定して
SOURCECATALOGパラメータを追加します。 -
「作成および実行」を選択します。
ステップ2.5.2 - Replicat構成
通常、GGHUBがターゲットのOracle GoldenGateデータベースと同じリージョンにある場合は、ほとんどのワークロードに対する適用パフォーマンスが優れている統合パラレルReplicatを使用するようにお薦めします。
GGHUBとターゲット・データベースの間のネットワーク待機時間が可能なかぎり低い場合に、最適な適用パフォーマンスを実現できます。Oracle GGHUBで実行しているリモートReplicatには、次の構成をお薦めします。
-
APPLY_PARALLELISM– 自動並列度を無効化します。MAX_APPLY_PARALLELISMとMIN_APPLY_PARALLELISMを使用するかわりに、ターゲット・データベスに最大量の並行性を許可します。これは、ハブとターゲット・データベース・サーバーの使用可能なCPUに基づいて、できるかぎり高く設定することをお薦めします。 -
MAP_PARALLELISM– 2から5の値を設定する必要があります。アプライヤが多数ある場合は、マッパーを増やすことでアプライヤに作業を渡す能力が向上します。 -
BATCHSQL- 配列処理を使用してDMLを適用します。これにより、レイテンシが高いネットワークでネットワーク・オーバーヘッドの量が削減されます。多数のデータ競合がある場合は、BATCHSQLによってパフォーマンスが低下することに注意してください。これは、バッチ操作のロールバック後に非バッチ・モードで適用するために証跡ファイルからの再読取りがあるためです。
ステップ 2.5.2.1 - チェックポイントテーブルを作成します。
チェックポイント表は、Oracle GoldenGate Replicatプロセスに必須のコンポーネントです。Administration Serviceの資格証明ページからデータベースに接続した後、チェックポイント表を作成できます。
チェックポイント表をターゲット・デプロイメントに作成します。
-
Oracle GoldenGate Web UIにログインします。
-
ナビゲーション・メニューで、「DB接続」を選択し、ターゲット・データベースに接続します。
-
ターゲット・データベースに正常に接続した後、「チェックポイント表」を選択します。
-
「チェックポイントの追加」(プラス・アイコン)を選択します。「チェックポイントの追加」ページが表示されます。
-
「チェックポイント表」に、
ggadmin.chkp_tableと入力します。 -
「送信」を選択します
チェックポイント表の追加を参照してください。
ステップ2.5.2.2 - Replicatの追加
データベース接続を設定して検証した後に、次のステップを実行するとデプロイメントのReplicatを追加できます。
-
ナビゲーション・メニューで、「Replicat」を選択します。
-
「Replicat」ページで、「Replicatの追加」(プラス・アイコン)を選択します。「Replicatの追加」ページが表示されます。
-
Replicatタイプを選択し、「次へ」を選択します。
-
次のように詳細を入力します。
-
プロセス名: REP_1
-
説明: リージョン2 PDBのReplicat
-
目的: 一方向
-
資格証明ドメイン: GoldenGate
-
資格証明別名: Reg2_PDB
-
ソース: トレイル
-
証跡名: aa
-
開始: ログでの位置
-
チェックポイント表: "GGADMIN"."CHKP_TABLE"
-
-
「次へ」を選択します
-
「アクション」メニューから、「開始」を選択します。
ステップ2.5.3 - 分散パス構成
分散パスは、次の図に示すように、証跡ファイルを別の(または同じ)リージョン内の追加のOracle GoldenGate Hubに送信する必要があるときのみ必要になります。
図1: Oracle GoldenGate分散パス

NGINXリバース・プロキシでOracle GoldenGate Distributionパスを使用する場合は、パスのクライアントとサーバーの証明書が構成されるように、追加のステップを実行する必要があります。
詳細は、分散サービス・パスを参照してください。証明書を正しく構成するステップバイステップの例は、NGINXを使用したオンプレミスのOracle GoldenGateからOCI GoldenGateへの接続に関するビデオを視聴します。
このサブステップで実行するステップは次のとおりです。
-
ステップ2.5.3.1 - ターゲット・サーバーのルート証明書のダウンロードとソースOracle GoldenGateへのアップロード
-
ステップ2.5.3.2 - ソースOracle GoldenGateが使用するターゲット・デプロイメントのユーザーの作成
-
ステップ2.5.3.3 - ソースOracle GoldenGateの資格証明の作成
-
ステップ2.5.3.4 - ソースOracle GoldenGateからターゲット・デプロイメントへの分散パスの作成
-
ステップ2.5.3.5 - ターゲット・デプロイメント・コンソールのレシーバ・サービスでの接続の確認
ステップ2.5.3.1 - ターゲット・サーバーのルート証明書のダウンロードとソースOracle GoldenGateへのアップロード
ターゲット・デプロイメント・サーバーのルート証明書をダウンロードし、ソース・デプロイメントのサービス・マネージャにCA証明書を追加します。
-
ターゲットGoldenGateのGoldenGate Web UIにログインします。
-
NGINXを使用したオンプレミスのOracle GoldenGateからOCI GoldenGateへの接続についてのビデオの「ステップ2 - ターゲット・サーバーのルート証明書のダウンロード」に従います。
ステップ2.5.3.2 - ソースOracle GoldenGateが使用するターゲット・デプロイメントのユーザーの作成
-
ターゲットのGoldenGate Web UIで、左側のナビゲーションから「ユーザー管理」を選択します。
-
「新規ユーザーの追加」を選択し、次のように入力します。
-
認証者: ドロップダウンから「パスワード」を選択します。
-
ロール: ドロップダウンから「演算子」を選択します。
-
ユーザー名: ユーザー名を入力します。
-
パスワードおよびパスワードの確認: このユーザーに関連付けられたパスワードを入力します。
-
-
「送信」を選択します。
ステップ2.5.3.3 - ソースOracle GoldenGateでのパス接続の作成
前のステップで作成したユーザーでターゲット・デプロイメントを接続するソース・デプロイメントにパス接続を作成します。たとえば、OP2CのドメインとWSSNETの別名です。
-
Oracle GoldenGateソースにログインします
-
ナビゲーション・メニューで、「パス接続」を選択します。
-
「パス接続」ページで、「パス接続の追加」を選択し、次のように入力します。
-
資格証明別名: 別名を入力します。
-
ユーザーID: ステップ2.5.3.2で作成したユーザーの名前を入力します。
-
パスワードおよびパスワードの確認: ステップ2.5.3.2から、このユーザーに関連付けられたパスワードを入力します。
-
-
「送信」を選択します。
ステップ2.5.3.4 - ソースOracle GoldenGateからターゲット・デプロイメントへの分散パスの作成
分散サーバーから受信サーバーに証跡ファイルを送信するパスが作成されます。パスはDistribution Serviceで作成できます。ソース・デプロイメントのパスを追加するには:
-
ソースOracle GoldenGateで、ナビゲーション・メニューから「分散サービス・パス」を選択します。
-
「パスの追加」(プラス・アイコン)を選択します。「パスの追加」ページが表示されます。
-
次のように詳細を入力します。
-
「パス名」を入力します。
-
「ソース」で、ドロップ・ダウンからExtract名を選択します。
-
「生成されたソースURI」に、サーバー名に
localhostと入力します。これにより、いずれかのOracle RACノードで分散パスを開始できます。 -
「ターゲット認証方式」で、「UserID別名」を選択します。
-
「ターゲット」で、「wss」(セキュアなWebソケット)を選択します。
-
「ターゲット・ホスト」に、ターゲット・システムへの接続に使用するターゲット・ホスト名/VIPを入力します。
-
「ポート番号」に、NGINXが構成されたポート番号を入力します(デフォルトは443)。
-
「ドメイン」で、ステップ2.3.3.3で作成した資格証明ドメインを選択します。
-
「別名」で、ステップ2.3.3.3で作成した資格証明別名wssnetを選択します。
-
「自動再起動オプション」で、分散サーバーが自動的に起動されたときに分散パスを再起動するように設定してください。これは、分散サーバーのRACノードの再配置後に、手動操作を不要にするために必要です。
-
「再試行」に10と入力します。
-
「遅延」(再起動の試行間に一時停止する分数)の場合は、1と入力します。
-
-
「パスの作成」を選択します。
-
「アクション」メニューから、「起動」をクリックします。