データベース構成

キャプチャ用のデータベース・ソフトウェア

Oracle GoldenGateでは、PostgreSQLデータベースからキャプチャするためには、そのデータベースにtest_decodingデータベース・プラグインがインストールされている必要があります。このプラグインは、データベースのインストール時にデフォルトでインストールされていない場合があります。

次の例で示すように、postgresqlversion#-contribパッケージがデータベース・サーバーにインストールされていることを確認してください。

sudo yum install postgresql14-contrib

PostgreSQLデータベース構成ファイル内のパラメータ

Oracle GoldenGateの場合、PostgreSQLデータベース構成ファイル$PGDATA/postgresql.confで次のパラメータを構成します。

ノート:

これらの変更は、Oracle GoldenGateが取得するプライマリPostgreSQLデータベース、およびプライマリ・データベースに障害が発生した場合にOracle GoldenGateが取得する可能性のあるスタンバイ・データベースに対して必要です。
  • ExtractまたはReplicatのリモート接続の場合は、リモート・データベース接続を許可するようにPostgreSQL listen_addressesを設定します。たとえば:

    listen_addresses=remotehost_ip_address

    ノート:

    pg_hba.confファイルを構成して、Oracle GoldenGateホストからの接続を許可するようにクライアント認証が設定されていることを確認します。詳細は、次のドキュメントを参照してください: pg_hba.confファイル

  • Oracle GoldenGate Extractをサポートするには、先行書込みロギングをlogicalに設定する必要があります。これにより、トランザクション・レコードのデコードをサポートするために必要な情報が追加されます。

    最大レプリケーション・スロットの数は、Extractごとに1つのオープン・スロットを格納するように設定する必要があり、通常、データベースごとに1必要なExtractは1つのみです。たとえば、PostgreSQLネイティブ・レプリケーションがすでに使用されており、現在構成されているすべてのレプリケーション・スロットを使用している場合は、値を増加してExtractの登録を許可します。

    最大先行書込み送信者は、最大レプリケーションスロット値と一致するように設定する必要があります。

    オプションで、コミット・タイムスタンプを先行書込みログで有効にできます。これにより、論理先行書込みロギングが同時に有効になっている場合、その時点以降の最初のDMLコミット・レコードが正しいタイムスタンプ値で追跡されます。それ以外の場合は、Oracle GoldenGate取得で取得された最初のレコードに、正しくないコミット・タイムスタンプが含まれます。

    wal_level = logical                       # set to logical for Capture
     
    max_replication_slots = 1                 # max number of replication slots,
                                              # one slot per Extract/client
     
    max_wal_senders = 1                       # one sender per max repl slot
     
    track_commit_timestamp = on               # optional, correlates tx commit time
                                              # with begin tx log record (useful for
                                              # timestamp-based positioning)
    
  • 前述の変更を行った後、データベースを再起動します。

次の手順を使用して、Azure for PostgreSQL、Amazon Aurora PostgreSQL、Amazon RDS for PostgreSQL、Google AlloyDB for PostgreSQLおよびGoogle Cloud SQL for PostgreSQLのデータベース設定を管理します。

Azure Database for PostgreSQL

Azure Database for PostgreSQLに対してOracle GoldenGate for PostgreSQL Extractを構成する場合、論理デコードを有効にしてLOGICALに設定する必要があります。

手順は、Microsoftのドキュメントを参照してください。

https://learn.microsoft.com/en-us/azure/postgresql/

Azure Database for PostgreSQLのその他のデータベース設定は、データベース・インスタンスの「Server parameters」セクションを使用して管理できます。

Azure Database for PostgreSQLインスタンスへの接続では、Azureのデフォルトの「接続のセキュリティ」設定でSSL接続が必要です。この要件に従うには、Oracle GoldenGateとのSSL接続をサポートするための追加ステップが必要です。

詳細は、PostgreSQLのSSLサポートの構成に記載されている内容に従ってください。

Amazon Aurora PostgreSQLおよびAmazon RDS for PostgreSQL

Amazon Aurora PostgreSQLおよびPostgreSQLのAmazon RDSの場合、データベース設定はパラメータ・グループ内で変更されます。

新しいパラメータ・グループ内のデータベース設定を編集し、データベース・インスタンスに割り当てる方法の詳細は、Amazon AWSのドキュメントを参照してください:

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html

  • 前にリストしたデータベース構成設定について、インスタンスに割り当てられたパラメータ・グループでこれらの設定を検証し、正しいことを確認します。

  • Amazonデータベース・サービスのwal_level設定はrds.logical_replicationというパラメータで構成され、そのデフォルトは0で、データベースがOracle GoldenGate Extractのソース・データベースとして使用される場合は1に設定する必要があります。

  • Amazon RDSでは、レプリケーション・スロット名の先頭を文字列rdsで開始することはサポートされません。レプリケーション・スロット名が文字列rdsで始まっている場合、Oracle GoldenGate Extractでレプリケーション・スロットの作成に使用されるコマンドがエラーを返します。このエラーを回避するには、たとえば、次の例に示すようにレプリケーション・スロットにrdscdcではなくordscdcという名前を付けることができます:
    select slot_name from  pg_create_logical_replication_slot('ordscdc',
    'test_decoding');
    このコマンドは、ordscdcレプリケーション・スロットを追加します。ただし、レプリケーション・スロット名にrdscdcを使用すると、次のエラーが発生します:
    ERROR:  must be superuser or replication role to use logical replication  slots in the 'rds'
    namespace

制限事項:

Amazon Aurora PostgreSQLバージョン12.17で、大文字のSHOWコマンドを実行すると、次のエラーが報告されます:

"ERROR: must be superuser or replication role to run this operation."

このエラーを回避するには、小文字のSHOWコマンドを使用する必要があります。

Google AlloyDB for PostgreSQL

Oracle GoldenGateリリース21.14以降、Oracle GoldenGateはGoogle AlloyDB for PostgreSQLをサポートしています。Google AlloyDB for PostgreSQLに対してOracle GoldenGate for PostgreSQLのExtractを構成する場合は、alloydb.logical_decoding configurationパラメータ(フラグ)をONに設定する必要があります。

Google Cloud SQL for PostgreSQL

Google Cloud SQL for PostgreSQLデータベース用にOracle GoldenGate for PostgreSQL Extractを構成する場合は、論理デコードを設定する必要があり、そのためにはcloudsql.logical_decoding変数をONに設定します。このデータベース・フラグを有効にする方法の手順は、Googleによって示されています。詳細は、https://cloud.google.com/sql/docs/postgres/flags#postgres-lを参照してください。