サポートされるOracleデータ型およびオブジェクトの詳細

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

データベース内で、ディクショナリ・ビューDBA_GOLDENGATE_SUPPORT_MODEを使用して、サポートされるオブジェクトに関する情報を取得できます。レプリケーション・サポートには様々なタイプがあります。
  • REDOからのキャプチャによるサポート

  • プロシージャ・レプリケーション・サポート

ほとんどのデータ型はサポートされており(SUPPORT_MODE=FULL)、Oracle GoldenGateによってREDO以外の変更がキャプチャされることを意味します。一部の珍しいケースで情報を取得できない場合もありますが、データベースへの接続を使用して情報をフェッチできます(SUPPORT_MODE=ID KEY)。ID KEYでサポートされる表では、これらの表をサポートするためにフェッチする、ソース・データベースまたはADGスタンバイ・データベースへの接続が必要です。ダウンストリーム統合Extractを使用し、NOUSERIDを使用している場合、顧客はFETCHUSERID接続またはFETCHUSERIDALIAS接続を指定する必要があります。

他の変更は、Extractの追加パラメータ設定を必要とするプロシージャ・レプリケーション(SUPPORT_MODE=PLSQL)でレプリケートできます。詳細は、「プロシージャ・レプリケーションについて」を参照してください。ネイティブ・サポートがなく、フェッチによるサポートもなく、プロシージャ・レプリケーションのサポートもない、まれなケースでは、Oracle GoldenGateはサポートされません。

キャプチャ・モードの詳細は、「使用するキャプチャ方法の決定」を参照してください。

ソース・データベースのDBA_GOLDENGATE_SUPPORT_MODEの他に、ターゲット側のDBA_GOLDENGATE_NOT_UNIQUEディクショナリ・ビューを確認する必要があります。一意性がなく、バインドされていないdata_types (BAD_COLUMN='Y')が設定された表がある場合は、表レコードを一意に識別できないため、論理レプリケーションには使用できません。

Oracleデータ型、オブジェクトおよび操作に関するサポート情報の詳細は、「Oracle DMLのオブジェクトと操作のサポートの詳細」に記載されています。

レプリケーション・サポートが存在する場合はいくつかありますが、SQLEXECを使用する場合などでは、処理に制限があります。次の表に、これらの制限事項を示します。

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

NUMBER, BINARY FLOAT, BINARY DOUBLE UROWID

次の特殊な例:
  • XMLタイプ

  • UDT

  • オブジェクト表

  • コレクションまたはネストされた表

DATEおよびTIMESTAMP

一意性が制限された表

(N)CHAR(N) VARCHAR2 LONGRAWLONG RAW (N)CLOBCLOBBLOBSECUREFILEBASICFILEおよびBFILE

X

XML列、XMLType

X

UDT

X

ANYDATA

X

階層対応表

X

RET

X

DICOM

X

SDO_TOPO_GEOMETRYSDO_GEORASTER

X

IDENTITY列

X

SDO_RDF_TRIPLE_S

X

ノート:

DBMS_LOG.FRAGMENTを使用して更新されたSECUREFILE LOB、またはNOLOGGINGに設定されたSECUREFILE LOBは、REDOから読み取られるかわりにフェッチされます。

REDOからのサポートされるキャプチャ:

  • NUMBERBINARY FLOATBINARY DOUBLEおよび(論理) UROWID

  • DATEおよびTIMESTAMP

  • CHARVARCHAR2LONGNCHARおよびNVARCHAR2

  • RAWLONG RAWCLOBNCLOBBLOBSECUREFILEBASICFILEおよびBFILE (LOBサイズは4GBに制限されます)

  • CLOBBinaryおよびオブジェクト・リレーショナル(OR)として格納されるXML

  • XML CLOBXMLオブジェクト・リレーショナルおよびXML Binaryとして格納されるXMLType列およびXMLType

  • ソース・データベースの互換性が12.0.0.0.0以上であるBYTEセマンティクスのUDT (ユーザー定義または抽象データ型)

  • ソース・データベースの互換性が12.0.0.0.0以上のANYDATAデータ型

  • 階層対応表は、ソース・データベースの互換性が12.2.0.0.0以上でプロシージャ・レプリケーションが有効なOracle XMLデータベース・リポジトリで管理されます。

  • ソース・データベースの互換性が12.2.0.0.0以上のREF

  • ソース・データベースの互換性が12.0.0.0.0以上のDICOM

  • ソース・データベースの互換性が12.2.0.0.0以上でプロシージャ・レプリケーションが有効なSDO _TOPO_GEOMETRYまたはSDO_GEORASTER

  • ソース・データベースの互換性が18.1.0.0.0以上のIDENTITY列

  • ソース・データベースの互換性が19.1.0.0.0以上のSDO_RDF_TRIPLE_S

サポート対象(データベースからフェッチ)

SECUREFILE LOB

  • DBMS_LOB.FRAGMENT_*プロシージャで変更済

  • NOLOGGING LOB

  • ソース・データベースのリリースが12gR2未満である重複解除LOB

次のデータ型を含むUDT:

  • リージョンIDを持つTIMESTAMP WITH TIMEZONETIMESTAMP WITH LOCAL TIMEZONETIMESTAMP WITH TIMEZONE

  • INTERVAL YEAR TO MONTHINTERVAL DAY TO SECOND

  • BINARY FLOATBINARY DOUBLE

  • BFILE

オブジェクト表には次の属性があります。
  • ネストされた表

  • SDO_TOP_GEOMETRY

  • SDO_GEORASTER

その他の考慮事項

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

  • 非論理的なUROWID列は、Extractによって識別されます。警告メッセージはレポート・ファイルに生成されます。列情報は証跡レコードに含まれません。レコードのそれ以外のサポートされているデータ型はすべて証跡レコードの一部であり、レプリケートされます。

  • 初期ロード、SQLEXEC、または列をデータベースからのみフェッチできる操作についてのTZR (リージョンID)で表されたTIMESTAMP WITH TIME ZONE。これらの場合、列が選択されると、ソース・データベースによってリージョンIDが時間オフセットに変換されます。Replicatは、タイムスタンプを日付と時間のデータとして、時間オフセット値とともにターゲット・データベースに適用します。

  • 4Kから32KへのVARCHARの拡張(拡張またはLONG VARCHAR)
    • 32KのLONG列は行識別子として使用することはできません。
      • キー索引または一意索引の一部としての列

      • TABLEパラメータまたはMAPパラメータのKEYCOLS句内の列。

    • CDRの解決列としての32KのLONG列(競合の解決および検出)

    • 拡張VARCHAR列が一意索引または制約の一部の場合、この表へのダイレクト・パス挿入により、Replicatが異常終了して警告が表示されることがあります。ALL_INDEXESまたはALL_IND_COLUMNS (一意索引)、あるいはALL_CONS_COLUMNSまたはALL_CONSTRAINTS (一意制約)をチェックして、拡張VARCHARによって異常終了が発生したことを確認します。拡張VARCHARを確認したら、索引を一時的に削除にするか、制約を無効にできます。
      • 一意索引: DROP INDEX index_name;

      • 一意制約: ALTER TABLE table_name MODIFY CONSTRAINT constraint_name DISABLE;

  • Oracle GoldenGateでは、4Kより大きいオブジェクトのフィルタリング、列マッピングまたは操作はサポートされません。

  • BFILE列はロケータをレプリケートします。データベースの外部にあるサーバー・ファイル・システムのファイルは、レプリケートされません

  • マルチバイト文字データ:ソースとターゲットのデータベースが、レプリケートされる表と順序のスキーマ定義に関して論理上同一である必要があります。変換、フィルタリングおよび他の操作は使用できません。

  • 2つのデータベース間の文字セットは、次のいずれかである必要があります。

    • ソースとターゲットで同一

    • 同等。同じ文字セットではありませんが、同じ文字のセットを含みます

    • ターゲットがソースのスーパーセット

    マルチバイト・データは、バイトまたは文字のセマンティクスで使用できます。

  • UDTおよび抽象データ型(ADT)自体の構造は、ソースとターゲットの両方で同じである必要があります。UDTには、異なるソース・スキーマとターゲット・スキーマを含めることができます。オブジェクトの列または行内に値が含まれているUDTは、TABLE文またはMAP文のフィルタ基準で使用したり、Oracle GoldenGateの列変換関数の入力または出力、SQLEXECまたは他の組込みデータ操作ツールとして使用することはできません。Oracleの同様のソースおよびターゲットにのみ、サポートが提供されます。

    CREATE TABLE as SELECT (CTAS)文を使用して作成されたオブジェクト表を完全にサポートするには、CTAS文からDMLをキャプチャするように統合Extractを構成する必要があります。Oracleのオブジェクト表は、サポートされているターゲット・データベースのOracle以外のオブジェクト表にマップできます。

  • XML列タイプは、フィルタリングおよび操作では使用できません。TABLE文またはMAP文でCOLMAP句を使用して、オブジェクトのXML表現を文字列にマップできます。

    XMLデータで作業する場合は、AL32UTF8文字セットをデータベース文字セットにすることをお薦めします。これにより、Oracle GoldenGateによってソースからターゲットに正しく変換されます。DDLレプリケーションが有効な場合、Oracle GoldenGateでCTAS文をレプリケートし、基となるターゲット表からのデータの選択を可能にします。TRANSLOGOPTIONS GETCTASDMLパラメータが設定されている場合、OIDが保持されます。XMLType表の場合、行オブジェクトIDがソースとターゲットの間で一致する必要があります。