※ 本記事は、Eloi Lopesによる”Configuring OCI GoldenGate with Data Guard enabled databases“を翻訳したものです。

2023年9月26日


Oracle Cloud Infrastructure (OCI) GoldenGateは、リアルタイムのデータ・メッシュ・プラットフォームを提供するフルマネージド・サービスであり、レプリケーションを使用してデータの可用性を維持し、リアルタイム分析を可能にします。

Data Guard環境への接続は、OCI GoldenGateのお客様の一般的なユース・ケースです。この記事では、Data GuardへのOCI GoldenGate接続の構成方法、およびスイッチオーバーまたはフェイルオーバーの変更ロールに適応するようにGoldenGateプロセスを構成する方法について説明します。

次のアーキテクチャ図では、OracleデータベースをData Guardサブネットにデプロイし、OCI GoldenGateをGoldenGateサブネットにデプロイしました。Data Guardサブネットには、ポート1521への接続を許可するイングレス・ルールが必要ですが、GoldenGateサブネットには、ポート443に接続してGoldenGateプライベート・エンドポイントを開くことができるイングレス・ルールが必要です。Bastionを介したプライベートOCI GoldenGateインスタンスへの接続には、ポート22も必要です。さらに、OCI GoldenGateは、OCIプライベート・エンドポイントによって作成されたSCANプロキシを使用して、RAC環境にポート16000を自動的に割り当てます。

Overall Architecture

前提条件:

  • Oracleデータベースは、GoldenGate用に準備する必要があります。
  • 人との関わりを最小限に抑えるには、一意のTNS文字列を構成する必要があります。データベース・サービス名は、GoldenGate抽出で使用するための一意のTNS文字列を持つために同じである必要があります。詳細な手順については、後述の「サービス名の構成」セクションを参照してください。

サービス名の構成

ノート: 両方のデータベースに同じサービス名がある場合は、このステップをスキップしてください。

プライマリ・データベースで、oracleユーザーとしてログインします。データベース・プロパティを一覧表示します:

srvctl config database -d DB0831_skh_fra -a

新しいサービスを追加します:

srvctl add service -db <primary database unique name> -service <new service name> -preferred “<database instances>,<database instances>,”

新しいサービスを起動し、そのステータスを確認します:

srvctl start service -d <primary database unique name> -s racdb_service
srvctl status service -d <primary database unique name> -s racdb_service

スイッチオーバーを実行し、「old」スタンバイで同じコマンドを実行します:

srvctl add service -db <standby database unique name> -service <new service name> -preferred “<database instances>,<database instances>,”
srvctl start service -d < standby database unique name> -s racdb_service
srvctl status service -d < standby database unique name> -s racdb_service

SQL*PlusなどのSQLクライアントを使用して、新しいサービス名をテストします。接続が機能する場合は、次のステップに進むことができます。

OCI GoldenGate接続の作成

まず、現在のプライマリ・データベースへの接続を作成することから始めます。

OCIコンソールで「Oracle Database」→「GoldenGate」に移動し、「Connections」をクリックします。

Create Connection」をクリックし、接続名を指定して、「Oracle Database」オプションを選択します:

Connection Creation
データベース接続文字列に有効な形式を指定します。例:
<database name>:<database port>/<service_name>

RAC Connection Creation

スタンバイ・データベースに対して前述のステップを繰り返します。

Standby RAC DB Connection

両方の接続を作成したら、OCI GoldenGateデプロイメントに割り当ててください。

抽出の構成

  1. GoldenGateコンソールにアクセスし、「Configuration」をクリックします。資格証明としてリストされている2つの接続が表示されます。まず、プライマリ・データベースへの接続をテストします(スタンバイ接続をテストしようとすると、データベースがオープン・モードでないため失敗します)。接続をテストするには、4つのアイコンがあります。最初の「
    Connect icon
    」アイコンをクリックして接続します。

    接続テストが成功すると、この画面が表示されます。
    Add Checkpoint
  2. このステージでは、Real Application Cluster (RAC)ごとに2つの資格証明があります。必要なのは、両方のRACを使用する資格証明を作成することです。これを実現するには、GoldenGateコンソールから別の資格証明を作成する必要があります。OCI GoldenGateは、両方のデータベースをテナンシにすでに登録しているため、別々の接続で両方へのアクセスを許可しています。これらを結合するには、GoldenGateコンソールから3番目の資格証明を作成する必要があります。
  3. GoldenGateコンソールで、Data Guardの専用資格証明を作成します。

RAC DB Credential

TNS文字列の例:

(DESCRIPTION=(RETRY_DELAY=3)(CONNECT_TIMEOUT=30)(FAILOVER=on)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=2)(ADDRESS_LIST=(LOAD_BALANCE=off)(ADDRESS=(PROTOCOL=TCP)(host=<database rac primary >)(port=16000))(ADDRESS=(PROTOCOL=TCP)(host=<database rac standby >)(port=16000)))(SERVICE_NAME=<service name>)))

OCI GoldenGateは、OCIプライベート・エンドポイントによって作成されたSCANプロキシを使用して、RAC環境にアクセスします。ここではポート16000を使用してRACデータベースにアクセスするため、ここで再利用します。

Process NameTrail Nameおよび以前に作成した資格証明(UniqueTNS)を指定して、Extractを作成します:

Extract Creation

「Managed Options」セクションで、Extractを自動起動および自動再起動するように構成してください。目標復旧時間(RTO)に基づいて構成を調整します。
次の構成の例では、Extractは9回再試行するように設定されており、再試行のたびに2分待機します。Extractが45分後にデータベースへの接続に失敗すると、再試行は停止します。

Extract - Managed Options

「Next」をクリックしてパラメータを指定します:

Extract Parameters

Replicatsには同じ構成を適用できます。

まとめ

この記事では、Data Guardを有効にしてOracleデータベース接続を構成する方法と、GoldenGateプロセスの自動再起動を構成する方法について説明しました。