PostgreSQL: サポートされているデータ型、オブジェクトおよび操作

Oracle GoldenGate for PostgreSQLでは、サポート対象バージョンのPostgreSQLデータベース・バージョンの初期ロードおよびトランザクション・データを取得および配信できます。

Oracle GoldenGate for PostgreSQLでは、このドキュメントで特に記載されていないかぎり、ソース・データのマッピング、フィルタリングおよび変換がサポートされており、このドキュメントで特に明記されている場合を除き、Oracle GoldenGateでサポートされている他のソース・データベースから導出されたデータのPostgreSQLデータベースへのレプリケーションもサポートされます。

サポートされているデータベース

Oracle GoldenGate for PostgreSQLでサポートされているデータベースおよび制限事項は、次のとおりです。

高可用性の考慮事項

Oracle GoldenGateでは、PostgreSQL高可用性構成からの変更データの取得がサポートされています。この機能は、PostgreSQLデータベース・バージョン16以上でのみ使用できます。変更データ取得は、プライマリ・サーバーまたは高可用性設定の読取り専用スタンバイ・サーバーで構成できます。フェイルオーバー時に発生する可能性のあるデータ損失および手動操作を回避するために、Oracle GoldenGateでは、同期レプリケーションを使用して高可用性設定を構成することをお薦めします。

データ損失の可能性と手動介入のシナリオの詳細は、Oracle GoldenGateのPostgreSQL高可用性フェイルオーバーの手順(ドキュメントID 2818379.1)を参照してください。

PostgreSQL高可用性設定からCDC Extractを構成するには、次のタスクを実行します: 1。Extractは、高可用性設定でプライマリ・サーバーまたは読取り専用スタンバイ・サーバーからデータを取得するように構成できます。

  1. Extractが1つのノード(プライマリまたはスタンバイ)で構成されている場合、データ取得を開始する前に、高可用性設定の他のすべてのノードに同じ名前のレプリケーション・スロットを同時に作成する必要があります。

    1. 次の例に示すように、REGISTER EXTRACTコマンドを使用して、1つのサーバー(Extractが構成されているサーバー)にレプリケーション・スロットを作成します。

      REGISTER EXTRACT exte
    2. Extractを登録した直後に、同じ名前のレプリケーション・スロットを作成します。高可用性設定の他のすべてのノードで、同じレプリケーション・スロット名を明示的に使用する必要があります。

      postgres=# select pg_create_logical_replication_slot('exte_ac6b520cab2871b7', 'test_decoding');
       pg_create_logical_replication_slot
      
      ------------------------------------
       (exte_ac6b520cab2871b7,0/8169E00)
      (1  row)
      2025-01-20T06:58:22Z  INFO    OGG-25355  Successfully created replication slot 'exte_ac6b520cab2871b7' for Extract group 'EXTE' in database 'postgres'.
    3. 対応するデータベースに接続し、PSQLからpg_create_logical_replication_slot文を実行します。注意: STANDBYでのREPLICATION SLOT CREATIONの重要なノート: (REGISTER EXTRACTコマンドまたはpg_create_logical_replication_slot文を使用して)読取り専用スタンバイ・サーバーでレプリケーション・スロットの作成が試行されると、高可用性設定でプライマリ・サーバーの任意の表でDML (任意のランダムDML)が実行された後にのみ、操作が完了します。または、プライマリ・サーバーでハートビート機能を有効にすると、プライマリ・サーバーで必要なDMLアクティビティが発生し、スタンバイ・サーバーでのレプリケーション・スロットの作成が完了する可能性があります。

  1. ADD TRANDATAまたはDELETE TRANDATAコマンドは、PostgreSQL高可用性設定の読取り専用スタンバイ・サーバーではサポートされていません。読取り専用スタンバイ・サーバー上の表のREPLICA IDENTITY設定は、プライマリ・サーバー上の対応する表のREPLICA IDENTITY設定と同じです。

  2. データ取得が読取り専用スタンバイ・サーバーで構成されている場合にハートビート機能を使用するには、プライマリ・サーバーでハートビート機能を有効にする必要があります。

  3. フェイルオーバーの場合、Extractパラメータ・ファイルは、フェイルオーバー後にデータ取得を続行するために、目的のノード(要件に基づくプライマリ/スタンバイ)に接続するように変更する必要があります。

    例

    PostgreSQL高可用性クラスタに3つのノードがあり、対応する接続別名がある状況を考えてみます。

    Node1 (現在のプライマリ)と対応する接続別名: node1

    Node2 (スタンバイ)と対応する接続別名: node2

    Node3 (スタンバイ)と対応する接続別名: node3

    フェイルオーバーの前に、Extractがいずれかのノード(node2など)からデータを取得するように構成されている場合、Extractパラメータ・ファイルには次のようなエントリが含まれます。

    USERIDALIAS node2

    フェイルオーバーの場合、プライマリ・ノード(node1)が停止し、セカンダリ・ノード(node2)が新しいプライマリになるため、次の2つの可能性があります。

    1. 同じnode2からのデータ取得を続行するには:

      • Extractパラメータ・ファイルでの変更は必要ありません。

      • Extractを再起動します。

    2. 常に別のノードからデータを取得するには:

      • Extractパラメータ・ファイルを変更して、目的のノード(Node3など)に接続します。

        USERIDALIAS node3
      • Extractを再起動します。

サポートされているPostgreSQLデータ型

Oracle GoldenGateでサポートされているPostgreSQLデータ型およびこのサポートの制限事項のリストを次に示します。

配列データ型の処理

PostgreSQLは、様々な組込みおよびUDT型のarrayをサポートしています。Oracle GoldenGateリリース26ai以降、Oracle GoldenGateのExtractおよびReplicatは、次のタイプのPostgreSQL arrayデータ型をサポートしています。

real、double、numericデータ型は、NaNおよびInfinity/-Infinity特殊数値をサポートします。

特殊な値をサポートするデータベース別のデータ型の詳細は、「データベース・データ型でサポートされる特別な値」を参照してください。

初期ロードとCDCの両方のExtractで、これらの配列型がサポートされます。

ノート:初期ロードExtractでは、timeデータ型のPostgreSQL arrayはサポートされていません。

サポートの制限

サポートされていないPostgreSQLデータ型

Oracle GoldenGate for PostgreSQLでは、次のデータ型はサポートされていません。

PostgreSQLについてサポートされているオブジェクトおよび操作

表、ビューおよびマテリアライズド・ビュー

キャプチャと配信の対象に含める表は次の要件を満たし、サポートされているPostgreSQLデータ型にリストされたデータ型のみを含む必要があります。

制限事項

順序およびIDENTITY列