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

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

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

トピック:

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

Oracle GoldenGate for PostgreSQLでサポートされているデータベースおよび制限事項は、次のとおりです。
  • キャプチャおよび配信でサポートされているのはユーザー・データベースのみです。

  • Oracle GoldenGateでは、アーカイブされたログからの取得はサポートされません。

  • 取得および配信は、レプリカ、スタンバイ・データベースに対してはサポートされていません。

  • 高可用性:
    • Oracle GoldenGate Extractでは、PostgreSQL高可用性構成を使用したプライマリExtractからセカンダリExtractへのシームレスなロール・トランジションはサポートされていません。ただし、手動操作に従って、新しいプライマリExtractからの継続性を提供できます。

    • 詳細は、Oracle Supportノート『Oracle GoldenGate Procedures for PostgreSQL HA Failover』(ドキュメントID 2818379.1)で入手可能な詳細を参照してください。

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

Oracle GoldenGateでサポートされているPostgreSQLデータ型とこのサポートの制限事項を示します。

  • bigint

  • bigserial

  • bit(n)

  • bit varying(n)

  • boolean

  • bytea

  • char (n)

  • cidr

  • citext

  • date

  • decimal

  • double precision

  • inet

  • integer

  • interval

  • json

  • jsonb

  • macaddr

  • macaddr8

  • money

  • numeric

  • real

  • serial

  • smallint

  • smallserial

  • text

  • time (タイムゾーンあり/なし)

  • timestamp (タイムゾーンあり/なし)

  • uuid

  • varchar(n)

  • varbit

  • xml

サポートの制限事項

  • charvarchartextまたはbyteaデータ型の列が主キーまたは一意キーの一部である場合、これらの列の個々の最大長が8191バイトを超えることはできません。

  • 主キーの一部であるデータ型CITEXTの列は、最大8000バイトのサイズでサポートされます。8000バイトを超える主キーの一部であるCITEXT列はサポートされません。

  • realdoublenumericdecimal: NaN入力値はサポートされていません。

  • bit/varbitデータ型には、次の制限事項が適用されます。

    • 最大4kの長さがサポートされます。4kより大きい長さの場合、データは切り捨てられ、下位の4kビットのみが取得されます。

    • ソースのbit(n)列は、PostgreSQL以外のターゲットの文字型の列にのみ適用でき、PostgreSQLターゲットのchar型またはbit/varbit列に適用できます。

  • 次の制限事項は、タイムゾーンを指定したtimestampとタイムゾーンを指定しないtimestampの両方に適用されます。
    • データ内にBCまたはADタグのあるtimestampデータはサポートされていません。

    • 1883-11-18 12:00:00より古いtimestampデータはサポートされていません。

    • YEARコンポーネントの数字が4桁を超えるtimestampデータはサポートされていません。

    • timestamp列のInfinity/-Infinity入力文字列はサポートされていません。

  • intervalを使用する場合の制限事項は、次のとおりです。

    • interval型の列からの混合記号intervalデータの取得はサポートされていません。Extractパラメータ・ファイルでDBOPTIONS ALLOWNONSTANDARDINTERVALDATAを使用すると、混合符号intervalデータ(またはOracle GoldenGateでサポートされない他の形式のintervalデータ)を文字列(標準のintervalデータではなく)として取得できます。

      次に、Extractパラメータ・ファイルでDBOPTIONS ALLOWNONSTANDARDINTERVALDATAを使用して証跡ファイルに書き込まれるデータの例を示します。

    • +1026-9 +0 +0:0:22.000000は、1026年、9か月、0日、0時間、0分、22秒と解釈されます。

    • -0-0 -0 -8は、0年、0か月、0日、8時間として解釈されます。

    • +1-3 +0 +3:20は、1年、3か月、0日、3時間、20分と解釈されます。

  • Replicat: ソースintervalデータがDBOPTIONS ALLOWNONSTANDARDINTERVALDATAを使用して取得され、証跡に文字列として書き込まれた場合、対応するソース列はターゲットのcharまたはbinary型の列にマップできます。

  • dateの制限事項は次のとおりです。

    • データ内にBCまたはADタグのあるdateデータはサポートされていません。

    • date列のInfinity/-Infinity入力文字列はサポートされていません。

  • textjsonxmlbyteachar (>8191)varchar (>8191)の列はLOB列として扱われ、次の制限事項があります。

    • GETUPDATEBEFORESを使用する場合、LOB列の変更前イメージは記録されません。

    • NOCOMPRESSUPDATESを使用する場合、LOB列は変更された場合のみ変更後イメージに記録されます。

  • 浮動小数点数の範囲および精度のサポートは、ホスト・マシンによって異なります。通常は有効桁数が16桁の精度ですが、データベースのドキュメントで想定されている近似について確認してください。Oracle GoldenGateでは、サポートされる精度を超える値は丸められるか切り捨てられます。

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

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

  • box

  • circle

  • コンポジット型

  • ドメイン・タイプ

  • 列挙型

  • line

  • lseq

  • オブジェクト識別子タイプ

  • path

  • pg_lsn

  • pg_snapshot

  • point

  • polygon

  • 疑似型

  • 範囲タイプ

  • tsquery

  • tsvector

  • ユーザー定義型(UDT)

  • https://www.postgresql.org/docs/current/contrib.htmlに一覧表示されている拡張機能および追加提供モジュール

ノート:

Extractパラメータ・ファイルにサポートされていないデータ型の表が含まれている場合、Extractはエラー・メッセージとともに停止します。レプリケーションを再開するには、Extractファイルから表を削除するか、サポートされていないデータ型を含む列を表から削除します。

ノート:

拡張機能または追加提供モジュールがサポートされている場合は、サポートされているPostgreSQLデータ型リストに明示的に追加されます。

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

  • Oracle GoldenGate for PostgreSQLでは、DML操作(挿入/更新/削除)のみサポートされます。DDLレプリケーションはサポートされていません。

  • Oracle GoldenGate for PostgreSQLでは、PostgreSQL 11以降から開始した切捨て操作のレプリケーションがサポートされており、ExtractおよびReplicatでGETTRUNCATESパラメータが必要です。

  • 大/小文字を区別する名前と区別しない名前の使用:
    • 引用符で囲まれていない名前は、大/小文字の区別がなく、暗黙的に小文字です。たとえば、CREATE TABLE MixedCaseTableSELECT * FROM mixedcasetableは同等です。

    • 引用符で囲まれた表および列の名前は大/小文字が区別され、Extract、ReplicatおよびOracle GoldenGateコマンドで正しくリストされている必要があります。

      たとえば、大/小文字が区別される表名をサポートするには、TABLE appschema.”MixedCaseTable”およびADD TRANDATA appschema.”MixedCaseTable”が必要です。

トピック:

表とビュー

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

  • Oracle GoldenGate for PostgreSQLでは、ユーザー表からのトランザクションDMLの取得およびユーザー表への配信がサポートされます。

  • Oracle GoldenGate for PostgreSQLでは、パーティション表への配信がサポートされています。

  • グローバリゼーションは、オブジェクト名(表名/スキーマ名/データベース名/列名)および列データでサポートされています。

制限事項:

  • Oracle GoldenGate for PostgreSQLでは、ビューに対する取得および配信はサポートされていません。

  • Oracle GoldenGate for PostgreSQLでは、パーティション表からの取得はサポートされていません。

順序およびIDENTITY列

  • 順序は、一方向、双方向および複数方向の実装について、ソース表とターゲット表でサポートされています。

  • GENERATED BY DEFAULT AS IDENTITY句を使用して作成されたIDENTITY列は、一方向、双方向および複数方向の実装について、ソース表とターゲット表でサポートされています。

  • GENERATED ALWAYS AS IDENTITY句を使用して作成されたIDENTITY列はターゲット・データベース表ではサポートされていないため、IDENTITYプロパティをターゲット表から削除するか、GENERATED BY DEFAULT AS IDENTITYに変更する必要があります。

  • 双方向および複数方向の実装の場合は、構成内のサーバー数に等しいINCREMENT BY値およびそれぞれに異なるMINVALUEを使用して、IDENTITY列および順序を定義します。

    たとえば、2つのデータベースのある双方向構成のMINVALUE /INCREMENT BY値は、次のようになります。

    Database1。INCREMENT BYを2にして、MINVALUEを1に設定します。

    Database2。INCREMENT BYを2にして、MINVALUEを2に設定します。

    たとえば、3つのデータベースのある複数方向構成のMINVALUE /INCREMENT BY値は、次のようになります。

    Database1。INCREMENT BYを3にして、MINVALUEを1に設定します。

    Database2。INCREMENT BYを3にして、MINVALUEを2に設定します。

    Database3。INCREMENT BYを3にして、MINVALUEを3に設定します。