23 オンプレミス: Oracle Real Application Clustersを使用したOracle GoldenGate Microservices Architectureの構成のベスト・プラクティス

これらのベスト・プラクティスを使用して、Oracle Real Application Clusters (RAC)、Oracle Clusterware、およびOracle Database File System (DBFS)またはOracle Advanced Cluster File System (ACFS)と連携するようにOracle Exadataなどのオンプレミス・システム用のOracle GoldenGate Microservices Architectureを構成します。

Oracle RACにOracle GoldenGateをデプロイする場合の推奨事項のサマリー

Oracle RAC環境でOracle GoldenGateを構成する場合は、次の推奨事項に従います。

  • 各Oracle RACノードでローカルに最新バージョンのOracle GoldenGateソフトウェアをインストールしてます。必ず、すべてのOracle RACノードでそのソフトウェアの場所が同じになるようにしてください。
  • Oracle GoldenGateファイル(証跡ファイル、チェックポイント・ファイル、一時ファイル、レポート・ファイルおよびパラメータ・ファイル)を格納するファイル・システムに、Oracle Database File System (DBFS)またはOracle Advanced Cluster File System (ACFS)を使用します。
  • Oracle GoldenGateが実行される可能性があるOracle RACノードすべてで、同じDBFSまたはACFSマウント・ポイントを使用します。
  • GoldenGateデプロイメントの作成時に、デプロイメントの場所にDBFSかACFSを指定します。
  • Oracle GoldenGateが実行されるOracle RACノードすべてに、Grid Infrastructure Agent (XAG)バージョン10以降をインストールします。
  • GoldenGateプロセスを、そのデプロイメントの起動時に自動的に起動および再起動されるように構成します。

タスク1: Oracle GoldenGate用のOracleデータベースの構成

ソースおよびターゲットのOracle GoldenGateデータベースは、次に示す推奨事項を使用して構成する必要があります。

  • データベース初期化パラメータENABLE_GOLDENGATE_REPLICATION=TRUEを設定することで、Oracle GoldenGateレプリケーションを有効にします。

  • Oracle GoldenGateソース・データベースをARCHIVELOGモードで実行します。

  • Oracle GoldenGateソース・データベースでFORCE LOGGINGモードを有効にします。

  • ソース・データベースで最小サプリメンタル・ロギングを有効にします。さらに、すべてのレプリケートされたオブジェクトのスキーマまたは表レベルのログを追加します

  • Replicatプロセスを使用する場合は、STREAMS_POOL_SIZE初期化パラメータを使用して、ソース・データベースにあるシステム・グローバル領域(SGA)内のストリーム・プールを構成します。

    なお、統合Replicatを使用する場合は、ターゲット・データベースでのみストリーム・プールが必要です。

    次の式を使用して、STREAMS_POOL_SIZEの値を決定します。

    STREAMS_POOL_SIZE = (#Extracts and #Integrated Replicats * 1GB) * 1.25

    たとえば、2つのExtractと2つの統合Replicatがあるデータベースの場合は、次のようになります。

    STREAMS_POOL_SIZE = 4GB * 1.25 = 5GB

    ExtractプロセスまたはReplicatプロセスを追加する場合は、新しいストリーム・プール・サイズ要件を再計算し構成することが重要です。

Oracle GoldenGate用にデータベースを準備する方法の詳細は、Oracle GoldenGate用のデータベースの準備を参照してください。

タスク2: データベース・レプリケーション管理者ユーザーの作成

ソースおよびターゲットのOracleデータベースには、適切な権限が割り当てられたGoldenGate管理者ユーザーが必要です。

単一テナント(非CDBアーキテクチャ)データベースについては、Oracle GoldenGate資格証明の確立を参照してください

マルチテナント・ソース・データベースの場合は、GoldenGate Extractを、c##アカウントを使用してルート・コンテナ・データベース内のユーザーに接続するように構成する必要があります。マルチテナント・ターゲット・データベースの場合は、Replicatでデータが適用される各PDBに、別個のGoldenGate管理者ユーザーが必要です。

Oracleマルチテナント・データベースでのGoldenGate管理者の作成の詳細は、マルチテナント・コンテナ・データベースでのOracle GoldenGateの構成を参照してください。

タスク3: データベース・サービスの作成

データベースのオープン時にOracle Grid Infrastructure AgentでGoldenGateデプロイメントが自動的に起動されるようにするには、データベース・サービスが必要です。共有ファイル・システムにDBFSを使用している場合は、データベース・サービスを使用してDBFSを正しいOracle RACインスタンスにマウントすることもできます。

ソース・マルチテナント・データベースを使用する場合は、ルート・コンテナ・データベース(CDB)とレプリケートされるスキーマを含むプラガブル・データベース(PDB)に、個別のサービスが必要です。ターゲット・マルチテナント・データベースの場合は、PDBに単一のサービスが必要です。

oracleユーザーとして、次のコマンドを使用してサービスを作成します。

$ srvctl add service -db db_name -service service_name
 -preferred instance_1 -available instance_2, instance_3 etc.
 -pdb PDB_name

たとえば:

$ srvctl add service -db ggdb -service oggserv_pdb -preferred ggdb1
    -available ggdb2 –pdb GGPDB01

Oracleマルチテナント・データベースを使用していない場合は、-pdbパラメータを省略します。

タスク4: Oracle RACでのファイル・システムの設定

Oracle GoldenGate Microservices Architectureの設計では、インストールとデプロイメントのディレクトリ構造が簡略化されています。インストール・ディレクトリは、ソフトウェア・パッチ適用中の停止時間を最小限に抑えるために、各Oracle RACノードでローカル・ストレージに配置する必要があります。

デプロイメント・ディレクトリ,は、Oracle GoldenGate Configuration Assistant (oggca.sh)を使用したデプロイメントの作成時に作成されます。このディレクトリは、共有ファイル・システムに配置する必要があります。デプロイメント・ディレクトリには、構成、セキュリティ、ログ、パラメータ、証跡およびチェックポイントのファイルが含まれます。

DBFSまたはACFSにデプロイメントを配置すると、システム障害が発生した場合に最適なリカバリ機能とフェイルオーバー機能が提供されます。クラスタ全体でチェックポイント・ファイルの可用性を確保することは、障害発生後にGoldenGateプロセスで最後に認識された位置から実行を継続できるようにするために不可欠です。

Oracle Data GuardとともにOracle GoldenGateを構成する場合、推奨のファイル・システムはDBFSです。DBFSは、Data Guardで保護されているデータベースに含まれ、XAGと十分に統合できます。Data Guardロール・トランジションが発生した場合、このファイル・システムは新しいプライマリ・サーバーに自動的にマウントされ、その後でOracle GoldenGateが自動起動されます。ACFSはOracle Data Guard構成の一部ではないため、現在これは、ACFSの場合はできません。

DBFSまたはACFSのファイル・システムを構成するには、次の該当する項の手順に従います。

Oracle Database File System(DBFS)

DBFS表領域は、Oracle GoldenGateプロセスで接続しているのと同じデータベース内に作成する必要があります。たとえば、GoldenGate統合ExtractプロセスでGGDBというデータベースから抽出されている場合は、同じGGDBデータベースにDBFS表領域を配置します。

必要なFUSEライブラリがまだインストールされていない場合は、My Oracle Supportのノート869822.1の手順に従ってそれらをインストールします。

My Oracle Supportのノート1054431.1の手順を使用して、データベース、表領域、データベース・ユーザー、tnsnames.oraのOracle Net接続別名、およびDBFSに必要なソースまたはターゲットGoldenGate環境に対する権限を構成します。

ノート:

Oracleマルチテナント・データベースを使用する場合は、プラガブル・データベース(PDB)内にDBFS表領域を作成する必要があります。GoldenGate ExtractプロセスまたはReplicatプロセスで接続しているのと同じPDBを使用することをお薦めします。これにより、DBFSで、そのデータベース依存関係に、前述のタスク2で作成したのと同じデータベース・サービスを使用できるようになります。

GoldenGateデプロイメント・ファイルを格納するためのファイル・システムを作成するときは、最長12時間の証跡ファイルを格納できる十分な証跡ファイル用ディスク領域を割り当てることをお薦めします。これにより、新しい証跡ファイルを受信できなくなるような問題がターゲット環境で発生した場合の証跡ファイル生成のための十分な領域が確保されます。12時間に必要な領域の量は、実際の本番データで証跡ファイルの生成率をテストすることでのみ決定できます。

DBFS作成の例:

$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus dbfs_user/dbfs_password@database_tns_alias
SQL> start dbfs_create_filesystem dbfs_gg_tbs goldengate

My Oracle Supportのノート1054431.1の手順に従って、新しく作成されたDBFSファイル・システムを、ノード障害発生後にDBFSインスタンスおよびマウント・ポイント・リソースがCluster Ready Services (CRS)によって自動的に起動されるように構成し、次のようにDBFS構成およびスクリプト・ファイルを変更します。

  1. ご使用のデータベース環境を反映するようにmount-dbfs.confパラメータを変更します。

    MOUNT_OPTIONSパラメータを次のように変更します。

    MOUNT_OPTIONS=allow_other,direct_io,failover,nolock

    failoverオプションは、すべてのファイル書込みをIMMEDIATE WAITモードでDBFSデータベースにコミットすることを強制します。これにより、データベースまたはノードの障害の発生時に、データが、dbfs_clientキャッシュには書き込まれたがデータベースにはまだ書き込まれていなくても、失われることがなくなります。

    nolockマウント・オプションは、Oracle Database 18c以降のリリースを使用している場合に必要になります。これは、DBFSファイル・ロック(これにより、ファイルが現在ロックされているときにOracle RACノードの障害が発生するとGoldenGateプロセスに問題が生じる可能性がある)に変更があったためです。

    Oracle Database 12cリリース2 (12.2)のdbfs_clientを使用している場合は、バグ27056711の修正を含む最新のリリース更新が適用されていることを確認してください。この修正を適用すると、MOUNT_OPTIONSnolockオプションも含まれます。

  2. CRSリソースの停止時にDBFSを強制的にアンマウントするように、mount-DBFS.shスクリプトを変更します。

    次の2つの出現箇所を変更します。

    $FUSERMOUNT -u $MOUNT_POINT

    これを次のように変更します。

    $FUSERMOUNT -uz $MOUNT_POINT

  3. このリソースをOracle Clusterwareに登録するときは、My Oracle Supportのノートで示されているように、local_resourceではなく必ずcluster_resourceとしてそれを作成してください。

    cluster_resourceを使用するのは、ファイル・システムを一度に1つのノードにのみマウントできるようにして、同時に複数のノードでDBFSがマウントされる(ファイル書込みが同時に発生する可能性が生じて、ファイルが破損する原因になる)ことを防ぐためです。

    DBFSサービスの依存関係には、前のステップで作成したデータベース・サービス名を使用してください。

    たとえば:

    DBNAME=ggdb
    DEPNAME=ora.$DBNAME.oggserv.svc
    
    crsctl add resource $RESNAME \
      -type cluster_resource \
      -attr "ACTION_SCRIPT=$ACTION_SCRIPT, \
             CHECK_INTERVAL=30,RESTART_ATTEMPTS=10, \      
    START_DEPENDENCIES='hard($DEPNAME)pullup($DEPNAME)',\
             STOP_DEPENDENCIES='hard($DEPNAME)',\
             SCRIPT_TIMEOUT=300"

    DBFSリソースを作成した後は、ファイル・システムをマウントしテストする必要があります。

    $ crsctl start res dbfs_mount
    $ crsctl stat res dbfs_mount

    ファイル・システムをマウントした後は、GoldenGateファイルを格納するディレクトリを作成します。

    $ cd /mnt/dbfs/goldengate
    $ mkdir deployments

    ノート:

    共有ファイル・システムは、マウントされたままにします。これは、後のステップでGoldenGateデプロイメントを作成するために必要です。

Oracle Advanced Cluster File System (ACFS)

Oracle ACFSは、Oracle RAC構成での共有GoldenGateファイルのための、DBFSの代替です。

Oracle Exadata Database MachineのACFS構成要件の詳細は、My Oracle Supportのノート1929629.1を参照してください。

Oracleのデプロイメント・ファイルを格納するための単一のACFSファイル・システムを作成します。

最長12時間の証跡ファイルを格納できる十分な証跡ファイル用ディスク領域を割り当てることをお薦めします。これにより、新しい証跡ファイルを受信できなくなるような問題がターゲット環境で発生した場合の証跡ファイル生成のための十分な領域が確保されます。12時間に必要な領域の量は、実際の本番データで証跡ファイルの生成率をテストすることでのみ決定できます。

  1. Oracle ASM管理者ユーザーとしてASMCMDを使用してファイル・システムを作成します。

    ASMCMD [+] > volcreate -G datac1 -s 1200G ACFS_GG 

    ノート:

    決定したサイズ要件に応じて、ファイル・システムのサイズを変更します。
    ASMCMD> volinfo -G datac1 acfs_gg
    
    Diskgroup Name: DATAC1
             Volume Name: ACFS_GG
             Volume Device: /dev/asm/acfs_gg-151
             State: ENABLED
             Size (MB): 1228800
             Resize Unit (MB): 64
             Redundancy: MIRROR
             Stripe Columns: 8
             Stripe Width (K): 1024
             Usage:
             Mountpath:

    次のmkfsコマンドを使用してファイル・システムを作成します。

    $ /sbin/mkfs -t acfs /dev/asm/acfs-gg-151
  2. 新しく作成したACFSファイル・システムのCRSリソースを作成します(まだ作成されていない場合)。

    ファイル・システム・リソースがすでに作成されているかどうかを確認します。

    $ srvctl status filesystem -volume ACFS_GG -diskgroup DATAC1
    
    ACFS file system /mnt/acfs_gg is mounted on nodes oggadm07, oggadm08

    まだ作成されていない場合は、すべてのOracle RACノードでACFSマウント・ポイントを作成します。

    # mkdir -p /mnt/acfs_gg

    rootユーザーとして、ファイル・システム・リソースを作成します。ACFSでの分散ファイル・ロックの実装により、DBFSとは異なり、一度に複数のRACノードにACFSをマウントできるようになっています。

    Oracle Grid InfrastructureのORACLE_HOMEから、srvctlを使用してACFSリソースを作成します。

    # srvctl add filesystem -device /dev/asm/acfs_gg-151 -volume ACFS_GG
    -diskgroup DATAC1 -path /mnt/acfs_gg -user oracle -autostart RESTORE

    現在構成されているACFSファイル・システムを確認するには、次のコマンドを使用してファイル・システムの詳細を表示します。

    $ srvctl config filesystem
    
    Volume device: /dev/asm/acfs_gg-151
    Diskgroup name: datac1
    Volume name: ACFS_GG
    Canonical volume device: /dev/asm/acfs_gg-151
    Accelerator volume devices:
    Mountpoint path: /mnt/acfs_gg
    Mount point owner: oracle
    
    Check the status of the ACFS resource and mount it.
    
    $ srvctl status filesystem -volume ACFS_GG -diskgroup DATAC1
    
    ACFS file system /mnt/acfs is not mounted
    
    $ srvctl start filesystem -volume ACFS_GG -diskgroup DATAC1 –node dc1north01

    作成されたCRSリソースには、ora.diskgroup_name.volume_name.acfsという形式で名前が付けられます。前述のファイル・システムの例を使用すると、CRSリソースの名前はora.datac1.acfs_gg.acfsになります。

    現在存在しているすべてのACFSファイル・システムのCRSリソースを表示するには、次のコマンドを使用します。

    $ crsctl stat res -w "((TYPE = ora.acfs.type) OR (TYPE = ora.acfs_cluster.type))"
    
    NAME=ora.datac1.acfs_gg.acfs
    TYPE=ora.acfs.type
    TARGET=ONLINE              , OFFLINE
    STATE=ONLINE on dc1north01, OFFLINE
  3. ACFSにGoldenGateデプロイメント・ディレクトリを作成します。

    ファイル・システムをマウントした後は、GoldenGateデプロイメントを格納するディレクトリを作成します。

    $ cd /mnt/acfs_gg
    $ mkdir deployments

ノート:

共有ファイル・システムは、マウントされたままにします。これは、後のタスクでGoldenGateデプロイメントを作成するために必要です。

タスク5: Oracle GoldenGateのインストール

Oracle GoldenGate 21c Microservicesソフトウェアまたはそれ以降のリリースをダウンロードしインストールします。

https://www.oracle.com/middleware/technologies/goldengate-downloads.htmlでこのソフトウェアをダウンロードします。

GoldenGate構成の一部となるOracle RAC構成内のすべてのノードでローカルにOracle GoldenGateソフトウェアをインストールします。すべてのノードでインストール・ディレクトリが同一であることを確認します。

Oracle GoldenGate Microservicesのドキュメントに記載されている一般的なインストール手順に従います。

タスク6: Oracle GoldenGateデプロイメントの作成

Oracle GoldenGateソフトウェアをインストールした後のステップでは、Oracle GoldenGate Configuration Assistant (oggca)を使用してデプロイメントを作成します。

現時点では、Oracle GoldenGateとXAGには2つの制限があります。

  1. XAGに登録されているサービス・マネージャごとに、単一のデプロイメントのみを管理できます。複数のデプロイメントが必要な場合は、それぞれのデプロイメントに専用のサービス・マネージャを使用する必要があります。Oracle GoldenGateリリース21cでは、様々なバージョンのOracle Databaseに接続するExtractプロセスおよびReplicatプロセスをサポートする単一のデプロイメントが使用されるため、この要件が簡素化されています。

  2. XAGに登録されている各サービス・マネージャは、別々のOGG_HOMEソフトウェア・インストール・ディレクトリに属している必要があります。Oracle GoldenGateを複数回インストールするのではなく、Oracle GoldenGateを1回インストールし、その後はサービス・マネージャのOGG_HOMEごとにシンボリック・リンクを作成することをお薦めします。

たとえば:

$ echo $OGG_HOME
/u01/oracle/goldengate/gg21c_MS

$ ln –s /u01/oracle/goldengate/gg21c_MS /u01/oracle/goldengate/gg21c_MS_ggnorth

$ export OGG_HOME=/u01/oracle/goldengate/gg21c_MS_ggnorth
$ $OGG_HOME/bin/oggca.sh

このシンボリック・リンクおよびOGG_HOME環境変数は、すべてのOracle RACノードで、Oracle GoldenGate Configuration Assistantを実行するに構成する必要があります。

Oracle GoldenGate Configuration AssistantでのGoldenGateデプロイメントの作成に関する推奨事項は次のとおりです。

  1. 「サービス・マネージャ・オプション」で、新しいサービス・マネージャの作成のために次の内容を指定します。

    1. 「サービス・マネージャの詳細」ペインで、「新規サービス・マネージャの作成」を選択します。

    2. 共有DBFSまたはACFSファイル・システム上のサービス・マネージャ・デプロイメント・ホームの場所を入力します。

    3. 「XAGと統合」を選択します。

    4. 「サービス・マネージャ接続の詳細」ペインで、「リスニング・ホスト名/アドレス」フィールドにlocalhostと指定します。

      localhostを使用すると、仮想IPアドレス(VIP)を必要とせずに、すべてのOracle RACノードでこのデプロイメントを起動できます。

    5. 「リスニング・ポート」にポート番号を入力します。

  2. 「デプロイメント・ディレクトリ」で、共有DBFSまたはACFSファイル・システム上のデプロイメント・ホーム・ディレクトリを指定します。

  3. 「環境変数」で、正しいTNS_ADMINディレクトリを指定します。

    Oracle GoldenGateリリース21.3以降では、必要なデータベース・ライブラリがOracle GoldenGateインストールの一部としてインストールされるため、データベースのORACLE_HOMEは不要になりました。既存のORACLE_HOMEディレクトリの外部にあるTNS_ADMINディレクトリを使用することをお薦めします。

  4. 「セキュリティ・オプション」で「SSL/TLSセキュリティ」を選択しないでください。

    Oracle GoldenGate Microservicesサーバーへの外部アクセスは、NGINXリバース・プロキシでのSSL終了を使用することで実現されます。GoldenGateデプロイメントへのセキュアなアクセスおよび通信は、SSLポート443を介して排他的に実行されます。同じローカル・ホスト内のNGINXとGoldenGateとの内部接続には、SSLは必要ありません。

  5. Management Pack for Oracle GoldenGateがライセンス付与されている場合は、「ポート設定」で、「モニタリングの有効化」を選択して、Berkeley Database (BDB)またはLightening Memory Database (LMDB)を使用してパフォーマンス・メトリック・サーバーを使用します。

    BDBとLMDBの両方のメトリック・サービス・データストア・タイプについて、「メトリック・サービス・データストア・ホーム」のディレクトリを、すべてのOracle RACノードに存在するローカル・ディレクトリに設定します。例: /u01/oracle/goldengate/datastores/デプロイメント名

  6. デプロイメントが作成されるまで、Oracle GoldenGate Configuration Assistantの使用を続行します。

  7. 共有ファイル・システムにDBFSを使用しておりデータベース・バージョンがOracle Databaseリリース21c (21.3)より前のリリースである場合は、デプロイメントの作成後に、次のコマンドを実行してOracle GoldenGateデプロイメントの一時ディレクトリをDBFSからローカル・ストレージに移動します。

    最初のノードでは、次のようにします。

    $ cd <DBFS GoldenGate deployment home directory/var
    $ mkdir -p local_storage_directory/deployment_name
    $ mv temp local_storage_directory/deployment_name
    $ ln -s local_storage_directory/deployment_name/temp temp

    その他すべてのノードでは、次のようにします。

    $ mkdir local_storage_directory/deployment_name/temp

    最初のノードの例:

    $ cd /mnt/dbfs/goldengate/deployments/ggnorth/var
    $ mkdir –p /u01/oracle/goldengate/deployments/ggnorth
    $ mv temp /u01/oracle/goldengate/deployments/ggnorth
    $ ln -s /u01/oracle/goldengate/deployments/ggnorth/temp temp

    その他すべてのノードでは、次のようにします。

    $ mkdir /u01/oracle/goldengate/deployments/ggnorth/temp

タスク7: Oracle Clusterwareの構成

次の手順では、Oracle Grid Infrastructureスタンドアロン・エージェント(XAG)を使用してOracle GoldenGateを管理するようにOracle Clusterwareを構成する方法を示します。

XAGを使用することで、Oracle RACノード間の再配置時に、共有ファイル・システム(DBFSまたはACFS)のマウントとGoldenGateデプロイメントの停止および起動を自動化します。

  1. Oracle Grid Infrastructure Standalone Agentをインストールします。

    XAGソフトウェアはスタンドアロン・エージェントとしてGrid InfrastructureのORACLE_HOMEの外部にインストールすることをお薦めします。これにより、入手可能な最新のXAGリリースを使用できるようになり、Grid Infrastructureに影響を与えることなくソフトウェアを更新できます。

    Oracle GoldenGate Microservices Architectureを使用する場合は、XAGバージョン10.2以降を使用する必要があります

    最新のエージェント・ソフトウェアは、次の場所からダウンロードできます。

    http://www.oracle.com/technetwork/database/database-technologies/clusterware/downloads/xag-agents-downloads-3636484.html

    Oracle Grid Infrastructureホーム・ディレクトリの外部に、XAGスタンドアロン・エージェントをインストールします。XAGは、Oracle GoldenGateがインストールされているクラスタ内のすべてのRACノード上の同じディレクトリにインストールする必要があります。

    たとえば、Oracle Grid Infrastructureユーザーとして、デフォルトのoracleを使用した場合:

    $ ./xagsetup.sh --install --directory /u01/oracle/xag --all_nodes

    oracleユーザーがマシンにログオンしたときにagctlの場所がわかるように、新しくインストールしたXAGソフトウェアの場所をPATH変数に追加します。

    $ cat .bashrc
    export PATH=/u01/oracle/xag/bin:$PATH

    ノート:

    正しいagctlバイナリが見つかるように、Grid Infrastructureのbinディレクトリの前にXAGのbinディレクトリが指定されていることを必ず確認してください。ログオン時に有効になるように、oracleユーザー環境でこの場所を設定します(たとえば、Bashシェル使用時には.bashrcファイル内)。
  2. アプリケーション仮想IPアドレス(VIP)の作成を準備します。

    専用のアプリケーションVIPは、どのOracle RACノードでサービスがホストされていても同じホスト名を使用してGoldenGate Microservicesにアクセスできるようにするために必要です。また、アプリケーションVIPにより、GoldenGate Distribution Serverが、現在のOracle RACノードを実行しているDistribution Receiverと通信できるようになります。

    VIPは、Oracle Clusterwareが管理するクラスタ・リソースです。VIPはクラスタ・ノードに割り当てられ、ノード障害が発生すると自動的に別のノードに移行されます。

    アプリケーションVIPを作成する前に、次の2つの情報が必要です。

    • ネットワーク番号。次のコマンドを使用して特定できます。

      $ crsctl status resource -p -attr ADDRESS_TYPE,NAME,USR_ORA_SUBNET -w "TYPE = ora.network.type" |sort | uniq
      
      ADDRESS_TYPE=IPV4
      NAME=ora.net1.network
      
      USR_ORA_SUBNET=10.133.16.0

      NAME=ora.net1.networkでのnet1は、これがネットワーク1であり、タイプがIPV4であることを示します。

    • システム管理者から提供された、新しいアプリケーションVIPのIPアドレス。このIPアドレスは、前述のクラスタ環境と同じサブネット内にある必要があります。

      このVIPは、Oracle Grid Infrastructure Agentを構成するときに、次のステップで作成されます。

  3. Oracle Grid Infrastructure Agent (XAG)を構成します。

    Oracle GoldenGateは、データベースの起動時およびファイル・システムのマウント時に自動的にデプロイメントが起動および停止されるように、XAGに登録しておく必要があります。

    Oracle GoldenGate Microservices ArchitectureをXAGに登録するには、次のコマンド形式を使用します。

    agctl add goldengate instance_name
      --gg_home GoldenGate_Home
      --service_manager
      --config_home GoldenGate_SvcMgr_Config
      --var_home GoldenGate_SvcMgr_Var_Dir
      --port port_number
      --oracle_home $OGG_HOME/lib/instantclient
      --adminuser OGG_admin_user
      --user GG_instance_user
      --group GG_instance_group
      --network network_number
      --ip ip_address
      --vip_name vip_name
      --filesystems CRS_resource_name
      --db_services service_name
      --use_local_services
      --nodes node1, node2, ... ,nodeN

    説明:

    --gg_homeでは、GoldenGateソフトウェアの場所を指定します。複数のサービス・マネージャを登録する場合は、OGG_HOMEOGG_HOMEシンボリック・リンクを指定します(「タスク6: Oracle GoldenGateデプロイメントの作成」を参照)。

    --service_managerでは、これがGoldenGate Microservicesインスタンスであることを示します。

    --config_homeでは、GoldenGateサービス・マネージャのデプロイメント構成のホーム・ディレクトリを指定します。

    --var_homeでは、GoldenGateサービス・マネージャのデプロイメント変数のホーム・ディレクトリを指定します。

    --portでは、デプロイメント・サービス・マネージャのポート番号を指定します。

    --oracle_homeでは、Oracle GoldenGate 21c以降のリリースの一部として含まれるOracleデータベース・ライブラリの場所を指定します。例: $OGG_HOME/lib/instantclient

    --adminuserでは、Oracle GoldenGate Microservices管理者アカウント名を指定します。

    --userでは、GoldenGateデプロイメントを所有するオペレーティング・システム・ユーザーの名前を指定します。

    --groupでは、GoldenGateデプロイメントを所有するオペレーティング・システム・グループの名前を指定します。

    --networkでは、前述の、VIPのネットワーク・サブネットを指定します。

    --IPでは、前述の、VIPのIPアドレスを指定します。VIPをすでに作成してある場合は、--network--ipのかわりに--vip_nameパラメータを使用してそれを指定します。

    --vip_nameでは、以前に作成したアプリケーションVIPのCRSリソース名を指定します。このパラメータは、--network-–ip (オプション)のかわりに指定できます。

    --filesystemsでは、デプロイメントの開始前にマウントする必要があるDBFSまたはACFS CRSファイル・システム・リソースを指定します。

    --db_servicesでは、前のステップで作成したora.database.service_name.svcサービス名を指定します。Oracleマルチテナント・データベースを使用している場合、ReplicatにはPDBデータベース・サービス、ExtractにはCDBデータベース・サービスを指定します。ReplicatとExtractを両方使用する場合は、両方のサービス名をカンマで区切って指定します。

    --use_local_servicesでは、db_servicesサービスが実行されているのと同じOracle RACノードにGoldenGateインスタンスも配置されている必要があることを指定します。

    --nodesでは、このGoldenGateインスタンスを実行できるOracle RACノードを指定します。クラスタ内のいずれかのOracle RACノードで実行されるようにGoldenGateが構成されている場合は、引き続きこのパラメータを使用して、Oracle GoldenGateを実行するノードの優先順序を決める必要があります。

ノート:

  • XAGへのGoldenGateインスタンス登録は、rootユーザーとして実行する必要があります
  • XAGへのGoldenGate登録はrootユーザーとして実行されるため、userパラメータとgroupパラメータは必須です。

次に、Oracle GoldenGateをXAGに登録する例を示します。

例1: DBFSを使用するOracle RACクラスタ(すでに作成されているアプリケーションVIPを使用する)

# agctl add goldengate GGNORTH \
--gg_home /u01/oracle/goldengate/gg21c_MS \
--service_manager \
--config_home /mnt/dbfs/goldengate/deployments/ggsm01/etc/conf \
--var_home /mnt/dbfs/goldengate/deployments/ggsm01/var \
--port 9100 \
--oracle_home /u01/oracle/goldengate/gg21c_MS/lib/instantclient
--adminuser oggadmin
--user oracle \
--group oinstall \
--vip_name gg_vip_prmy \
--filesystems dbfs_mount \
--db_services ora.ds19c.oggserv.svc \
--use_local_services \
--nodes dc1north01,dc1north02

説明:

  • GoldenGateインスタンスはGGNORTHです
  • GoldenGateホーム・ディレクトリは/u01/oracle/goldengate/gg21c_MSです
  • これは、Oracle GoldenGate Microservices Architectureインスタンス(--service_manager)です。
  • GoldenGateデプロイメント構成のホーム・ディレクトリは/mnt/dbfs/goldengate/deployments/ggsm01/etc/confです
  • GoldenGateデプロイメント変数のホーム・ディレクトリは/mnt/dbfs/goldengate/deployments/ggsm01/varです
  • デプロイメント・サービス・マネージャのポート番号は9100です
  • Oracle GoldenGate Microservices管理者アカウント名はoggadminです
  • GoldenGateユーザーは、oinstallグループ内のoracleです
  • CRSで管理されるアプリケーションVIPの名前はgg_vip_prmyです
  • このデプロイメントが依存するファイル・システムのCRSリソース名はdbfs_mountです
  • GoldenGateインスタンスは、ora.ds19c.oraserv.svcというCRSサービスがこのGoldenGateインスタンスと同じノードに配置されるため、同じOracle RACノードで起動されます。

例2: ACFSを使用するOracle RACクラスタ(アプリケーションVIPはクラスタ内のノードのサブセットで実行される)

# agctl add goldengate GGNORTH \
--gg_home /u01/oracle/goldengate/gg21c_MS \
--service_manager \
--config_home /mnt/acfs/goldengate/deployments/ggsm01/etc/conf \
--var_home /mnt/acfs/goldengate/deployments/ggsm01/var \
--port 9100 \
--oracle_home /u01/oracle/goldengate/gg21c_MS/lib/instantclient
--adminuser admin \
--user oracle \
--group oinstall \
--network 1 --ip 10.13.11.203 \
--filesystems ora.datac1.acfs_gg.acfs \
--db_services ora.ds19c.oraserv.svc \
--use_local_services \
--nodes dc1north01,dc1north02

説明:

  • GoldenGateインスタンスはGGNORTHです
  • GoldenGateホーム・ディレクトリは/u01/oracle/goldengate/gg21c_MSです
  • これは、Oracle GoldenGate Microservices Architectureインスタンス(--service_manager)です。
  • GoldenGateデプロイメント構成のホーム・ディレクトリは/mnt/acfs/goldengate/deployments/ggsm02/etc/confです
  • GoldenGateデプロイメント変数のホーム・ディレクトリは/mnt/acfs/goldengate/deployments/ggsm02/varです
  • デプロイメント・サービス・マネージャのポート番号は9100です
  • Oracle GoldenGate Microservices管理者アカウント名はadminです
  • GoldenGateユーザーは、oinstallグループ内のoracleです
  • ネットワークはデフォルトのora.net1.networkであり、VIPは10.13.11.203です。
  • このデプロイメントが依存するファイル・システムのCRSリソース名はora.datac1.acfs_gg.acfsです
  • このGoldenGateインスタンスは、ora.ds19c.oraserv.svcというCRSサービスがこのGoldenGateインスタンスと同じノードに配置されるため、同じOracle RACノードで起動されます
  • Oracle GoldenGateは、Oracle RACノードdc1north01およびdc1north02でのみ実行されます(優先度順で示されている)。

AGCTLコマンドの例

次に、XAGでGoldenGateデプロイメントを管理するために使用する、いくつかのagctlコマンドの例を示します。

Oracle GoldenGateのステータスを確認するには、次のようにします。

% agctl status goldengate
Goldengate  instance 'GGNORTH' is running on dc1north01

GoldenGateデプロイメント、および自動起動するように構成されているすべてのExtractプロセスとReplicatプロセスを起動するには(後のステップで示す手順)、次のようにします。

% agctl start goldengate GGNORTH --node dc1north02

GoldenGateデプロイメントを停止するには、次のようにします。

% agctl stop goldengate GGNORTH

GoldenGateデプロイメントを別のノードに手動で再配置するには、次のようにします。

% agctl relocate goldengate GGNORTH --node dc1north02

GoldenGateリソースの構成パラメータを表示するには、次のようにします。

% agctl config goldengate GGNORTH

Instance name: GGNORTH
Application GoldenGate location is: /u01/oracle/goldengate/gg21c_MS
Goldengate MicroServices Architecture environment: yes
Goldengate Service Manager configuration directory: /mnt/dbfs/goldengate/deployments/ggsm01/etc/conf

Goldengate Service Manager var directory: /mnt/dbfs/goldengate/deployments/ggsm01/var

Service Manager Port: 9100
Goldengate Administration User: oggadmin
Autostart on DataGuard role transition to PRIMARY: no
Configured to run on Nodes: dc1north01 dc1north02
ORACLE_HOME location is: /u01/oracle/goldengate/gg21c_MS/lib/instantclient
Database Services needed: ora.cdb1.oggcdb.svc [use_local_services]
File System resources needed: ora.datac1.acfs_gg.acfs
Network: 1, IP: 10.13.11.203, User:oracle, Group:oinstall

GoldenGate XAGリソースを削除するには、次のようにします。

$ agctl stop goldengate GGNORTH
# agctl remove goldengate GGNORTH

Oracle Grid Infrastructure Bundled Agentの詳細は、Oracle Grid Infrastructure Standalone Agents for Oracle Clusterware 11gリリース2、12c、18cおよび19cを参照してください。

タスク8: NGINXリバース・プロキシの構成

My Oracle Supportのノート2826001.1で示されている手順に従って、SSL接続を使用するNGINXリバース・プロキシをインストールし構成し、すべての外部通信が十分にセキュリティ保護されていることを確認します。

ノート:

NGINXでCA署名付き証明書を使用する場合は、CA署名付き証明書、中間証明書、ルート証明書という正しい順序で証明書が含まれている証明書ファイルがNGINXのssl_certificateパラメータで指し示されていることを確認します。

Oracle Clusterwareは、NGINXリバース・プロキシの起動を制御して、GoldenGateデプロイメントの起動前に自動的にリバース・プロキシを起動できるようにする必要があります。

NGINXリソースは、基礎となるネットワークCRSリソースに依存して作成され、その名前は、次のコマンドを使用して決定できます。

$ $GRID_HOME/bin/crsctl stat res -w "TYPE == ora.network.type"|grep NAME

NAME=ora.net1.network

rootユーザーとして、次のコマンド例を使用して、NGINXを管理するClusterwareリソースを作成します。

# $GRID_HOME/bin/crsctl add resource nginx -type generic_application -attr
 "ACL='owner:root:rwx,pgrp:root:rwx,other::r--,group:oinstall:r-x,user:oracle:rwx',
EXECUTABLE_NAMES=nginx,START_PROGRAM='/bin/systemctl
 start -f nginx',STOP_PROGRAM='/bin/systemctl
 stop -f nginx',CHECK_PROGRAMS='/bin/systemctl
 status nginx' ,START_DEPENDENCIES='hard(ora.net1.network)
 pullup(ora.net1.network)', STOP_DEPENDENCIES='hard(intermediate:ora.net1.network)',
 RESTART_ATTEMPTS=0, HOSTING_MEMBERS='dc1north01,dc1north02', CARDINALITY=2"

この例で作成したNGINXリソースは、指定した複数のクラスタ・ノード(HOSTING_MEMBERSで指定)で同時に実行されます。これは、GoldenGateサービス・マネージャのデプロイメントが複数構成されており、それらをクラスタ・ノード間で単独で移動できる場合にお薦めします。

NGINX Clusterwareリソースの作成後には、GoldenGateデプロイメントの起動前にNGINXが起動されるように、GoldenGate XAGリソースを変更する必要があります。

oracleユーザーとして、次のコマンド例を使用してXAGリソースを変更します。

現在の--filesystemsパラメータを確認します。

$ agctl config goldengate SOURCE|grep "File System"

File System resources needed: ora.datac1.acfs_gg.acfs

その--filesystemsパラメータを変更します。

$ agctl modify goldengate SOURCE --filesystems ora.datac1.acfs_gg.acfs,nginx

NGINXに依存しているXAG GoldenGate登録ごとに、前述のコマンドを繰り返します。

タスク9: Oracle GoldenGateデータベース接続用のOracle Net TNS別名の作成

Oracle RACノード間の切替え時にGoldenGateプロセスにローカル・データベース接続を提供するために、Oracle GoldenGateが起動される可能性があるOracle RACノードすべてでTNS別名を作成します。TNS別名は、デプロイメントの作成時に指定したTNS_ADMINディレクトリ内のtnsnames.oraファイルで作成します。

ソース・データベースがマルチテナント・データベースの場合は、2つのTNS別名エントリが必要になります。その1つはコンテナ・データベース(CDB)用、もう1つは、レプリケートされるプラガブル・データベース(PDB)用です。ターゲットのマルチテナント・データベースでは、TNS別名によって、レプリケートしたデータが適用されているPDBを接続しますプラガブル・データベースSERVICE_NAMEは、前のステップ(「タスク3: データベース・サービスの作成」を参照)で作成したデータベース・サービスに設定する必要があります。

次に、IPCプロトコルを使用する、ソース・データベースのTNS別名の定義の例を示します。これは、すべてのRACノードでローカルに定義する必要があります。

OGGSOURCE_CDB =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL=IPC)(KEY=LISTENER))
      (CONNECT_DATA =
        (SERVICE_NAME = oggserv_cdb)
       )
    )

OGGSOURCE_PDB =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL=IPC)(KEY=LISTENER))
      (CONNECT_DATA =

        (SERVICE_NAME = oggserv_pdb)
       )
    )

ノート:

GoldenGateデプロイメントのTNS_ADMINディレクトリにあるtnsnames.oraまたはsqlnet.oraを変更した場合は、変更内容を採用するためにデプロイメントを再起動する必要があります。

GoldenGateデプロイメントを作成したら、管理サーバーのホーム・ページで、前述のTNS別名を使用してデータベース資格証明を作成します。「ユーザーID」フィールド内のデータベース・ユーザー名に追加されているTNS別名を使用したデータベース資格証明の作成の例は、次の図6を参照してください。

ソース・データベースがマルチテナント・データベースの場合は、CDBとPDBのデータベース資格証明を作成します。ターゲット・データベースがマルチテナント・データベースの場合は、PDB用の単一の資格証明を作成します。

タスク10: Oracle GoldenGateプロセスの構成

Oracle GoldenGate Microservices Architectureを使用してExtract、分散パスおよびReplicatプロセスを作成する場合、Oracle RACノード間で共有する必要があるファイルはすべて、共有ファイル・システム(DBFSまたはACFS)に格納されているデプロイメント・ファイルですでに共有されています。

次に示す重要な構成詳細は、Extract、分散パスおよびReplicatプロセスのためにOracle RACでOracle GoldenGate Microservicesを実行する場合にお薦めします。

Extract構成

  1. Oracle GoldenGate Administration Server GUIインタフェースを使用してExtractを作成するときには、「トレイルのサブディレクトリ」パラメータを空白のままにして、共有ファイル・システムに格納されているデプロイメント・ディレクトリに自動的に証跡ファイルが作成されるようにします。

    証跡ファイルのデフォルトの場所は、/<deployment directory>/var/lib/dataです

  2. 共有ストレージにDBFSを使用しているときに、デプロイメントのvar/tempディレクトリが「タスク6: Oracle GoldenGateデプロイメントの作成」の説明に従ってローカル・ストレージに移動された場合は、ExtractのCACHEMGRパラメータを使用して一時キャッシュ・ファイルを共有ストレージに配置することをお薦めします。

DBFSデプロイメントのマウント・ポイントの下に新しいディレクトリを作成します。たとえば:

$ mkdir –p /mnt/dbfs/goldengate/deployments/ggnorth/temp_cache

Extractパラメータを新しいディレクトリに設定します。

CACHEMGR CACHEDIRECTORY /mnt/dbfs/goldengate/deployments/ggnorth/temp_cache

次に、Oracle GoldenGate Administration Server GUIで統合Extract用に指定されたパラメータがUIでどのように表示されるかの例を示します。

図23-1 一時キャッシュ・ファイルを定義するためのExtractパラメータ


一時キャッシュ・ファイルを定義するためのExtractパラメータ

分散パス構成

NGINXリバース・プロキシでOracle GoldenGate分散パスを使用する場合、パスのサーバー証明書が構成されるように、追加でステップを実行する必要があります。

次のビデオで示されている手順に従って、証明書を正しく構成します: https://apexapps.oracle.com/pls/apex/f?p=44785:112:0::::P112_CONTENT_ID:31380

このビデオで示されている、構成の主要部分:

  1. ソース・デプロイメントのクライアント証明書を作成し、そのクライアント証明書をソース・デプロイメントのサービス・マネージャに追加します。(これは、Oracle GoldenGate 21c以降のリリースを使用する場合は必要ありません。)

  2. ターゲット・デプロイメント・サーバーのルート証明書をダウンロードし、ソース・デプロイメントのサービス・マネージャにCA証明書を追加します。

  3. ターゲット・デプロイメントで、接続する分散パスのユーザーを作成します。

  4. 前のステップで作成したユーザーを使用して、ターゲット・デプロイメントに接続するソース・デプロイメント内に資格証明を作成します。

    たとえば、ドメインがGGNORTH_to_GGSOUTH、別名がPathReceiverです。

クライアント証明書とサーバー証明書を構成した後は、次の構成オプションを設定する必要があります。これらのオプションをUIのどこで設定するかを確認するには、次の図を参照してください。

  1. 「生成されたソースURI」を変更してサーバー名にlocalhostを指定します。

    これにより、任意のOracle RACノードで分散パスを起動できるようになります。

  2. 「ターゲット認証方式」UserID Aliasに、「ターゲット」転送プロトコルをwss (セキュアWebソケット)に設定します。

    ターゲット・ホストを、ターゲット・システムへの接続に使用するターゲット・ホスト名/VIPに設定し、NGINXの構成に使用したポート番号を指定します(デフォルトは443)。

    ターゲット・ホスト名/VIPは、NGINXで使用されるCA署名付き証明書での共通名と一致している必要があります。

  3. 「ドメイン」を、前述のステップ4で作成した、ビデオで示されている資格証明ドメインに設定します(GGNORTH_to_GGSOUTHなど)。

    「別名」は、ビデオ内のステップ4でも作成した、資格証明別名に設定されます。

  4. 分散サーバーの起動時に分散パスが自動的に再起動されるように設定します。

    これは、分散サーバーのOracle RACノード再配置の後に手動操作を不要にするために必要です。「再試行」の回数を10に設定することをお薦めします。「遅延」を1に設定します。これは、再起動を試行してから次に試行するまでの一時停止時間(分数)です。

図23-2 分散パス作成のステップ1から3


分散パス作成のステップ1から3

図23-3 分散パス作成のステップ4


分散パス作成のステップ4

Replicat構成

  1. チェックポイント表は、GoldenGate Replicatプロセスに必要なコンポーネントです。必ず、データベースGoldenGate管理者(GGADMIN)スキーマにチェックポイント表が作成されていることを確認してください。

    チェックポイント表を作成するには、Oracle GoldenGate Administration Server GUIを使用し、「+」ボタンをクリックし、schema.tablenameという形式でチェックポイント表名を入力します。これを次の図で示します。

    図23-4 Replicatプロセス用のチェックポイント表の作成


    Replicatプロセス用のチェックポイント表の作成

    チェックポイント表の作成の詳細は、チェックポイント表の概要を参照してください。

  2. Oracle GoldenGate Administration Server GUIインタフェースを使用してReplicatを作成するときは、「トレイルのサブディレクトリ」パラメータを、分散パスまたはローカルExtractで証跡ファイルが作成されている場所に設定します。

  3. チェックポイント表が以前に作成されている場合は、「チェックポイント表」プルダウン・リストからその表名を選択します。

    図23-5 「トレイルのサブディレクトリ」と「チェックポイント表」を使用したReplicat作成


    「トレイルのサブディレクトリ」と「チェックポイント表」を使用したReplicat作成

タスク11: ExtractプロセスとReplicatプロセスの自動起動の構成

ExtractプロセスとReplicatプロセスを、Oracle GoldenGate Administration Serverの起動時に自動的に起動されて、ExtractプロセスかReplicatプロセスが異常終了した場合に再起動されるように構成します。GoldenGate Microservicesでは、自動起動と再起動はプロファイルによって管理されます。

Oracle GoldenGate Administration Server GUIを使用して、各Oracle GoldenGateプロセスに割り当てることができる新しいプロファイルを作成します。

プロファイルの構成オプション 推奨設定
デフォルト・プロファイル 有効
自動開始 有効
開始の遅延 1分
自動再起動 有効
最大再試行回数 5
再試行の遅延 30秒
再試行期間 30分
失敗時にのみ再起動 有効
試行回数に達したらタスクを無効化 有効

プロファイルが作成され、デフォルト・プロファイルとして設定された後は、作成された新しいGoldenGateプロセスすべてにこのプロファイルが割り当てられます。既存のすべてのプロセスに対して、このプロファイルをプロセスごとに割り当てる必要があります。

「概要」ペインの「プロセス情報」タブで、「管理対象オプション」の下の「プロファイル名」を選択します。

ノート:

XAGとともにOracle GoldenGate Microservicesを使用する場合は、ExtractプロセスやReplicatプロセスに対して「デプロイメントのヘルスに不可欠」フラグを有効にしないでおくことをお薦めします。これを行うと、単一のExtract障害またはReplicat障害によってGoldenGateデプロイメント全体が停止する可能性があり、XAGでGoldenGateを再起動できなくなる可能性もあります。Replicatを不可欠と設定したことによる停止のトラブルシューティングの例は、「Oracle RACでのOracle GoldenGateのトラブルシューティング」を参照してください。