サポートされる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
を使用する場合などでは、処理に制限があります。次の表に、これらの制限事項を示します。
サポートされているデータ型 | サポートなし |
---|---|
|
次の特殊な例:
|
|
一意性が制限された表 |
|
X |
|
X |
|
X |
|
X |
階層対応表 |
X |
|
X |
|
X |
|
X |
IDENTITY列 |
X |
|
X |
ノート:
DBMS_LOG.FRAGMENT
を使用して更新されたSECUREFILE
LOB、またはNOLOGGING
に設定されたSECUREFILE
LOBは、REDOから読み取られるかわりにフェッチされます。
REDOからのサポートされるキャプチャ:
-
NUMBER
、BINARY FLOAT
、BINARY DOUBLE
および(論理)UROWID
-
DATE
およびTIMESTAMP
-
CHAR
、VARCHAR2
、LONG
、NCHAR
およびNVARCHAR2
-
RAW
、LONG RAW
、CLOB
、NCLOB
、BLOB
、SECUREFILE
、BASICFILE
およびBFILE
(LOBサイズは4GBに制限されます) -
CLOB
、Binary
およびオブジェクト・リレーショナル(OR)として格納されるXML
列 -
XML CLOB
、XML
オブジェクト・リレーショナルおよび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 TIMEZONE
、TIMESTAMP WITH LOCAL TIMEZONE
、TIMESTAMP WITH TIMEZONE
-
INTERVAL YEAR TO MONTH
、INTERVAL DAY TO SECOND
-
BINARY FLOAT
、BINARY 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
の拡張(拡張またはLONGVARCHAR
)-
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がソースとターゲットの間で一致する必要があります。