| Oracle® Fusion Middleware Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成 12c (12.2.0.1) E70107-04 |
|
![]() 前 |
![]() 次 |
次に、Oracle GoldenGateでサポートされるOracleデータ型の詳細を概説します。特に断りのないかぎり、クラシックと統合の両方のキャプチャ・モードでサポートされます。これらのモードの詳細は、「キャプチャおよび適用モードの選択」を参照してください。
次のANYDATAデータ型がサポートされます。
次のデータ型のみでソース表からフェッチされます。
BINARY_DOUBLE
BINARY_FLOAT
CHAR
DATEINTERVAL DAY TO SECOND
INTERVAL YEAR TO MONTH
NCHAR
NUMBER
NVARCHAR2
RAW
TIMESTAMP
TIMESTAMP WITH TIME ZONE
TIMESTAMP WITH LOCAL TIMEZONE
UDT
VARCHAR/VARCHAR2
次の文字データ型がサポートされます。
CHAR
VARCHAR2
LONG
NCHAR
NVARCHAR2
拡張VARCHAR列が一意索引または制約の一部の場合、この表へのダイレクト・パス挿入により、Replicatが異常終了して警告が表示されることがあります。all_indexes/all_ind_columns (一意索引)またはall_cons_columns/all_constraints (一意制約)をチェックして、拡張VARCHARによって異常終了が発生したことを確認します。拡張VARCHARを確認したら、索引を一時的に削除にするか、制約を無効にできます。
拡張(32K) VARCHAR2およびNVARCHAR2列は、Extractが統合キャプチャ・モードである間は変更されません。Replicatのすべてのモードは、32K VARCHAR2およびNVARCHAR2列をサポートします。次の制限が適用されます。
Oracle GoldenGateは、キーまたは一意索引の一部、またはTABLEまたはMAPパラメータのKEYCOLS句の列として、32K VARCHAR2およびNVARCHAR2列をサポートしません。32K列は、主キーの一部になる場合でも、補足的にログに記録されないため、行識別子として使用できません。
32K列は、CDR (競合の検出および解決)構成の解決列、またはトランザクション・ログに列値が必要なその他の作業の基準としてサポートされません。
Oracle GoldenGateでは、32K列の数に制限がありませんが、各証跡レコードには、インライン・レコードで4MBの長さの制限があります。この制限に達する32K列の数は約160列ですが、列の数は、拡張されたVARCHAR2列の実際のサイズによっても異なります。
次のマルチバイト文字型がサポートされます。
NCHARおよびNVARCHAR2のマルチバイト文字データ型
CHAR列およびVARCHAR2列に保存されるマルチバイト・データ
Oracle GoldenGateでマルチバイト文字データをサポートするには、ソースとターゲットのデータベースが、レプリケートされる表と順序のスキーマ定義に関して論理上同一である必要があります。変換、フィルタリングおよび他の操作はサポートされていません。2つのデータベース間のキャラクタ・セットは、次のいずれかである必要があります。
同一。たとえば、ソースとターゲットでSHIFT-JISなどです。
同等。同じキャラクタ・セットではありませんが、同じ文字のセットを含みます(SHIFT-JISとEUC-JPなど)。
ターゲットはソースのスーパーセットです。たとえば、UNICODEはすべての文字タイプのスーパーセットです。したがって、他のすべてのキャラクタ・セットのスーパーセットです。
長さセマンティクスがバイト単位であるか、文字単位であるかに関係なく、マルチバイト・データがサポートされています。
その他の構成要件については、「特別なデータ型の処理」を参照してください。
次の日時データ型がサポートされます。
DATE
TIMESTAMP(「サポートの制限」を参照)
Oracle GoldenGateでは、マイナスの日付はサポートされていません。
ターゲット列のサイズがソースのサイズ以上である場合にのみ、INTERVAL DAYおよびINTERVAL YEARがサポートされます。
Oracle GoldenGateでは、UTCオフセットで表されたTIMESTAMP WITH TIME ZONE (TIMESTAMP '2011-01-01 8:00:00 -8:00')のキャプチャとレプリケーションがサポートされます。
TZR(リージョンID)で表されたTIMESTAMP WITH TIME ZONEは、データ変更のレプリケーションについてはサポートされますが、初期ロード、SQLEXECまたは列をデータベースからフェッチする必要がある操作についてはサポートされません。これらの場合、列が選択されると、データベースによってリージョンIDが時間オフセットに変換されます。Replicatでは、タイムスタンプは、時間オフセット値付きの日付と時間のデータとしてレプリケートされます。
Oracle GoldenGateでは、0001/01/03 00:00:00から9999/12/31 23:59:59のタイムスタンプ・データをサポートします。タイムスタンプがGMTからローカル時間に変換されると、これらの制限も変換後のタイムスタンプに適用されます。タイムゾーンに応じて、変換により時間が追加または引かれる場合があり、これにより、タイムスタンプがサポートされている上限を超えたり、下回ったりすることがあります。
Oracle GoldenGateでは、+12:00から-12:00の間の時間オフセット値をサポートしています。
TZRで表されたTIMESTAMP WITH TIME ZONEをサポートし、TIMESTAMP WITH LOCAL TIMEZONEの適切な処理も行うには、「特別なデータ型の処理」を参照してください。
次のラージ・オブジェクト型がサポートされます。
CLOB
NCLOB
BLOB
SECUREFILEおよびBASICFILE
Oracle GoldenGateでは、4Kより大きいラージ・オブジェクトのフィルタリング、列マッピングまたは操作はサポートされません。
DDLサポートが有効な場合、Oracle GoldenGateでCTAS文をレプリケートし、基となるターゲット表からのデータの選択を可能にします。これはGET_CTAS_DMLSパラメータを使用して制御され、すべての型付き表に適用されます。このパラメータが使用されると、OIDが保持されます。
BASICFILEオプションLOBは、REDOログからキャプチャされますが、次の場合、データベースからフェッチされます。
ExtractでLOBが無効と判断される場合。
LOBデータがREDOログ内にない場合。これは、BASICFILE LOBがNOLOGGINGオプションを指定して作成された場合に起こります。
LOBがCACHEオプションを使用して作成されています。
LOBが一部のみ更新される場合。Oracle GoldenGateでは、部分的な列データはサポートされていません。LOBがLOBリセット・レコードから開始しない場合、あるいは新しいLOBの長さに則した最初のバイトで開始せず、最後のバイトで終了しない場合に、ExtractによってLOBデータは不完全であるとみなされます。部分更新は、OCILOBWrite()、OCILobAppend()、OCiLobCopy()、OCILobLoadFromFile()およびOCILobTrim()の各OCIコールと、dbms_lobパッケージのプロシージャを使用して行われた更新によって生成されます。
ExtractでLOBデータの異常が検出される場合。
SECUREFILEオプションLOBは、更新が完了し、LOBの変換(列の圧縮、暗号化または重複除外)が行われず、行外に格納される場合にのみ、REDOログからキャプチャされます。SECUREFILE LOBは、次の場合にデータベースからフェッチされます。
LOBが行内に格納される場合。
LOBが圧縮または暗号化のいずれかにより変換される場合。
LOBがCACHE属性を使用して作成されている場合。
ExtractによってLOBインスタンスが無効であることが決定される場合。
REDOログにLOBデータがない場合。これが行われる可能性があるのは、DEDUPLICATE、NOLOGGING、FILESYSTEM_LIKE_LOGGNGのいずれかのオプションを使用してLOBを作成した場合です。
LOBは、OCILOBWrite()、OCILobAppend()、OCiLobCopy()、OCILobLoadFromFile()およびOCILobTrim()を使用するか、dbms_lobパッケージのプロシージャを介して更新されています。
Extractによって検出されるようなその他の異常。
SECUREFILE LOBをある記憶域から別の記憶域に変更すると(たとえば、ENCRYPTからDECRYPTに)、Oracleによって表全体が更新され、Extractによってそれらの更新がログからキャプチャされます。そのため、Oracleによって表に関連付けられているすべてのデータ・ブロックが更新されているように見えます。ALTER TABLEコマンドによってDEFAULT値がNULL値の列に設定される場合も、これが発生する可能性があります。
JavaScriptオブジェクト注釈(JSON)列を含む表を持つ、管理バンドル・エージェント(XAG)の高可用性環境では、デフォルトのReplicatモードでデータをレプリケートできませんが、Extractsでは、このデータを抽出できます。Replicatの異常終了を回避するには、DBOPTIONS NOSKIPTEMPLOBパラメータを設定する必要があります。
その他の設定要件については、「特別なデータ型の処理」を参照してください。
次のXML型がサポートされます。
統合キャプチャ・モードでは、Oracle GoldenGateは、XML CLOB、XMLオブジェクト・リレーショナルおよびXMLバイナリとして格納されるXMLType列およびXMLType表をサポートします。
クラシック・キャプチャ・モードでは、Oracle GoldenGateは、XML CLOBおよびXMLバイナリとして格納されるXMLType列をサポートします。
次のものはサポートされません。
フィルタリングと操作はサポートされていません。TABLE文またはMAP文でCOLMAP句を使用して、オブジェクトのXML表現を文字列にマップできます。
XMLデータで作業する場合は、AL32UTF8キャラクタ・セットをデータベース・キャラクタ・セットにすることをお薦めします。これにより、Oracle GoldenGateによってソースからターゲットに正しく変換されます。
階層対応の表は、Oracle XMLデータベース・リポジトリで管理され、手続き型ロギングでサポートされます。
DDLサポートが有効な場合、Oracle GoldenGateでCTAS文をレプリケートし、基となるターゲット表からのデータの選択を可能にします。これはTRANSLOGOPTIONS GETCTASDMLパラメータを使用して制御され、すべての型付き表に適用されます。このパラメータが使用されると、OIDが保持されます。XMLType表の場合、行オブジェクトIDがソースとターゲットの間で一致する必要がありますが、これは、Replicatで論理SQL文を使用すると保持されません。空の文(新規表にデータを挿入しない)で作成されたXMLType表は適切に保持されません。
主キーベースのオブジェクト識別子(OID)を持つXMLType表
1つのXML列を持つリレーショナル表
XMLバイナリおよびXMLオブジェクト・リレーショナルに対するSQL*Loader直接パス挿入
XMLスキーマベースのXMLTypeはサポートされますが、XMLスキーマに対する変更はレプリケートされず、DBMS_XMLSCHEMAパッケージを使用してソースとターゲットの両方のデータベースに登録する必要があります。
XMLType列を含む表が、スカラー列で構成された1つ以上の一意キー制約を持つか、すべてのスカラー列の組合せで一意性が保証される必要があります。ExtractまたはReplicatでは、行の識別用のXML属性で構成された一意キー制約または主キー制約は使用できません。
ネイティブ・キャプチャの場合、XML ORおよびXML Binary。XMLバイナリ/ORは、11.2.0.3より上のリリースと互換性がある場合にフェッチされます。
XML CLOBでは、ソース・データベース互換性はリリース11.0.0.0.0より上です。
XMLTypeを更新するSET全体の長さは、新しいコンテンツと他の操作、XQueryバインド値を含めて最大32Kです。
XMLバイナリの場合、Oracle GoldenGateによってソース・データベースから追加の行データがフェッチされます。フェッチされたデータは元のトランザクションの一部ではない場合があるため、不整合が発生する可能性があります。
XML Object Relationalは、クラシック・キャプチャ・モードでサポートされません。
XMLのレプリケートの詳細は、「特別なデータ型の処理」を参照してください。
ソースおよびターゲットの構造が同一である場合、Oracle GoldenGateでユーザー定義型(UDT)または抽象データ型(ADT)がサポートされます。スキーマ名は別々にすることができます。
REDOベースはほとんどの属性タイプをサポートしますが、UDTに次のものが含まれている場合は、ソース表からフェッチにフォールバックします。
ネストされた表
SDO_TOPO_GEOMETRY
SDO_GEORASTER
フェッチベースは、次のものを含むUDTをサポートしません。
ANYDATA
TIMESTAMP WITH TIMEZONE
TIMESTAMP WITH LOCAL TIMEZONE
INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND
BINARY FLOAT
BINARY DOUBLE
BFILE
Oracle GoldenGateは、次のものを含むUDTをサポートしません。
CFILE
REF
OPAQUE (XMLTypeおよびANYDATAを除く)
UDTが含まれている表には、主キー、一意な制約がある列または一意な索引を設定する必要があります。
キーにUDTが含まれている、またはUDTが列のみであるオブジェクトまたはリレーショナル表はサポートされていません。
RMTTASKパラメータはUDTをサポートしていません。
バイナリまたは印刷できない文字が含まれているCHAR属性およびVARCHAR属性は、サポートされていません。
オブジェクトの列または行内に値が含まれているUDTは、TABLE文またはMAP文のフィルタ基準で使用したり、Oracle GoldenGateの列変換関数の入力または出力、SQLEXECまたは他の組込みデータ操作ツールとして使用することはできません。Oracleの同様のソースおよびターゲットにのみ、サポートが提供されます。
UDTおよびネストされた表はサポートされますが、次の制限があります。
ネストされた表のUDTには、CHAR、NVARCHAR2またはNCLOB属性を含めることができません。
拡張(32k) VARCHAR2またはRAW属性がUDTにある場合、ネストされた表はサポートされません。
CLOBまたはBLOB属性がUDTにある場合、ネストされた表はサポートされません。
他のUDTの一部である、ネストされた表の列/属性はサポートされません。
その他の設定要件については、「特別なデータ型の処理」を参照してください。
ネストされた表のデータを更新する際には、ネストされた表が含まれている行を同時に更新する必要があります。
VARRAYSとネストされた表をフェッチすると、変更箇所のみでなく、毎回、列の内容全体がフェッチされます。
統合キャプチャのみ(REDOベース)
REDOベースは、REDOからオブジェクト表をキャプチャしますが、オブジェクト表に次の属性が含まれている場合は、ソース表からフェッチにフォールバックします。
SDO_TOPO_GEOMETRYSDO_GEORASTERCREATE TABLE as SELECT (CTAS)文で作成されたオブジェクト表を完全にサポートするには、CTAS文からDMLをキャプチャするように統合キャプチャを構成する必要があります。CTASの詳細は、「CREATE TABLE AS SELECT」を参照してください。
Oracleのオブジェクト表は、サポートされているターゲット・データベースのOracle以外のオブジェクト表にマップできます。
クラシックおよび統合キャプチャ(フェッチベース)
フェッチベースは、リーフレベルのすべての属性、ルートレベルLOB、XML、UDT、ANYDATA、およびコレクションの属性をフェッチします。
フェッチベースは、次のリーフレベルの属性を含むオブジェクト表をサポートしません。
ANYDATATIMESTAMP WITH TIMEZONETIMESTAMP WITH LOCAL TIMEZONEINTERVAL YEAR TO MONTHINTERVAL DAY TO SECINDBINARY FLOATBINARY DOUBLEOracle GoldenGatでは、1方向とアクティブ/アクティブ構成でオブジェクト表がサポートされます。オブジェクト表はREDOログからキャプチャされますが、LOB、コレクション型などの標準のリレーショナル表の場合はデータベースからフェッチされる特定のデータ型もオブジェクト表の場合はフェッチされます。同様に、標準の表の場合にコレクション型に適用される現在の制限が、オブジェクト表の場合のそれらの型にも適用されます。
主キーは、オブジェクト表のルートレベルのオブジェクト属性で定義する必要があり、リーフレベルの属性を含めることはできません。キーが定義されていない場合には、Oracle GoldenGateで有効なすべての列が擬似キーとして使用されます。
Oracle GoldenGateは、オブジェクト表のDDL操作のレプリケーションをサポートしていません。この制限には、オブジェクト表のALTERと関連付けられているデータベース・オブジェクトのバージョニングが含まれます。
オブジェクト表またはオブジェクト型が含まれているオブジェクト表では、シノニムはサポートされていません。
Oracle GoldenGateでは、SDO_GEOMETRY、SDO_TOPO_GEOMETRYおよびSDO_GEORASTER(ラスター表)がサポートされています。
その他の構成情報は、「特別なデータ型の処理」を参照してください。
Oracle GoldenGateでは、次のデータ型はサポートされません。
これらのデータ型内に埋め込まれた名前付きコレクションおよびVARRAYSを含まないVARRAYSを指定したデータ型に対する、ANYDATAフェッチベースの列サポート
最上位のVARRAY列
ANYDATASET
ANYTYPE
MLSLABEL
ORDDICOM
REF
TIMEZONE_ABBR
URITYPE
サポートされていないOracleデータ型を含むUDT
Oracle GoldenGateでは、ID列データまたはValid Time Temporal列データのレプリケーションをサポートしていません。
その他の除外については、「各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー」を参照してください。