15 PostgreSQLのサポート対象の理解

この章では、Oracle GoldenGate for PostgreSQLでサポートされている機能について説明します。

内容は次のとおりです。

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

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

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

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

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

    • 詳細は、Oracle SupportノートOracle GoldenGateでのPostgreSQL高可用性フェイルオーバーのための手順(ドキュメントID 2818379.1)を参照してください。

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

このトピックでは、Oracle GoldenGateでサポートされているデータ型とサポートされていないデータ型について説明します。

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

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

  • bigint

  • bigserial

  • bit(n)

  • bit varying(n)

  • boolean

  • bytea

  • char (n)

  • cidr

  • 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バイト以下にする必要があります。

  • 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

  • User-defined Types (UDTs)

  • https://www.postgresql.org/docs/current/contrib.htmlにリストされている拡張および追加提供モジュールは、「サポートされているPostgreSQLデータ型」で明示的にリストされていないかぎり、Oracle GoldenGateではサポートされていません。

ノート:

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

ノート:

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

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

このトピックでは、Oracle GoldenGateでサポートされているオブジェクトおよび操作について説明します。

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

  • Oracle GoldenGate for PostgreSQLでは、PostgreSQL 11以上の切捨て操作のレプリケーションがサポートされており、ExtractおよびReplicatにおいてGETTRUNCATESパラメータが必要になります。

  • 大/小文字を区別する名前と区別しない名前の使用方法を次に示します。

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

    • 引用符で囲まれた表名および列名は、大/小文字が区別され、ExtractとReplicatsで、および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句を使用して作成されたアイデンティティ列は、単方向、双方向および多方向の実装での、ソース表とターゲット表でサポートされています。

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

  • 双方向および多方向の実装の場合は、アイデンティティ列および順序を、構成内のサーバーの数に等しいINCREMENT BY値、およびそれぞれに異なるMINVALUEを指定して定義します。

    たとえば、双方向の、データベースが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に設定します。