Oracle: DDLおよびDMLに対してサポートされているデータ型、オブジェクトおよび操作
Oracle Database上のOracle GoldenGateでサポートされているデータ型、オブジェクトおよび操作を確認します。
- サポートされるOracleデータ型およびオブジェクトの詳細
- Oracle Databaseエディションのサポートの詳細
- Oracle DMLのオブジェクトと操作のサポートの詳細
- Oracle DDLのオブジェクトと操作のサポートの詳細
親トピック: Oracle
サポートされるOracleデータ型およびオブジェクトの詳細
DBA_GOLDENGATE_SUPPORT_MODE
を使用して、サポートされるオブジェクトに関する情報を取得できます。レプリケーション・サポートには様々なタイプがあります。
-
REDOからのキャプチャによるサポート
-
プロシージャ・レプリケーション・サポート
ほとんどのデータ型がサポートされいます(SUPPORT_MODE=FULL
)。つまり、Oracle GoldenGateではREDO以外の変更がキャプチャされるということです。一部の珍しいケースで情報を取得できない場合もありますが、データベースへの接続を使用して情報をフェッチできます(SUPPORT_MODE=ID KEY
)。
Oracle GoldenGate 21c以降では、DBA_GOLDENGATE_SUPPORT_MODE.SUPPORT_MODE= NONE
が設定されていると、サポートされていない表に対するDMLは自動的にスキップされます。ただし、そうしたオブジェクトに対するDDLは、DDL INCLUDE
/EXCLUDE
の設定に基づいてキャプチャされます。DDLサポートについては、「Oracle DDLのオブジェクトと操作のサポートの詳細」を参照してください。
ID KEY
でサポートされる表では、これらの表をサポートするためにフェッチする、ソース・データベースまたはADGスタンバイ・データベースへの接続が必要です。ダウンストリームExtractを使用するときには、NOUSERID
の場合、FETCHUSERID
またはFETCHUSERIDALIAS
の接続を指定する必要があります。
他の変更は、Extractの追加パラメータ設定を必要とするプロシージャ・レプリケーション(SUPPORT_MODE=PLSQL
)でレプリケートできます。ネイティブ・サポートがなく、フェッチによるサポートもなく、プロシージャ・レプリケーションのサポートもない、まれなケースでは、Oracle GoldenGateはサポートされません。
Oracleのデータ型、オブジェクト、および操作の詳細なサポート情報は、次のとおりです:
ExtractのREDOサポート:
NOUSERID
パラメータを使用できます。
-
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
表 -
DTYJSON
コードで識別されるネイティブJSON
データ型。 -
ソース・データベースの互換性が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
またはST_GEOMETRY
-
ソース・データベースの互換性が18.1.0.0.0以上のIDENTITY列
-
ソース・データベースの互換性が19.1.0.0.0以上の
SDO_RDF_TRIPLE_S
データベースからフェッチされるデータ型
ここに示すデータ型は、REDOログで読み取ることができません。Extractプロセスで処理中にフェッチする必要があります。そうしたレコードのフェッチ方法は、FETCHOPTIONS
パラメータを使用して制御します。
REDOデータを生成するデータベースと、Oracle GoldenGateがデータのフェッチに使用するデータベースは同じにすることをお薦めします。ただし、これが不可能な場合は、フェッチ・データベースとして、読取り専用でオープンしているActive Data Guardスタンバイ・データベースを使用することもできます。
SECUREFILE
LOB
-
DBMS_LOB.FRAGMENT_*
プロシージャで変更済 -
NOLOGGING
LOB -
ソース・データベースのリリースが12gR2未満である重複解除LOB
-
ネストされた表
-
SDO_TOPO_GEOMETRY
-
SDO_GEORASTER
フェッチでは、UDTのANYDATA
列はサポートされません。
その他の考慮事項
-
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の解決列(競合検出および解決)
-
-
拡張
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
;
-
-
BFILE
列はロケータをレプリケートします。データベースの外部にあるサーバー・ファイル・システムのファイルは、レプリケートされません-
マルチバイト文字データ:ソースとターゲットのデータベースが、レプリケートされる表と順序のスキーマ定義に関して論理上同一である必要があります。変換、フィルタリングおよび他の操作は使用できません。
-
2つのデータベース間の文字セットは、次のいずれかである必要があります。
-
ソースとターゲットで同一
-
同等。同じ文字セットではありませんが、同じ文字のセットを含みます
-
ターゲットがソースのスーパーセット
マルチバイト・データは、バイトまたは文字のセマンティクスで使用できます。
-
-
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文をレプリケートし、基となるターゲット表からのデータの選択を可能にします。TRANLOGOPTIONS GETCTASDML
パラメータが設定されている場合は、OIDが保持されます。XMLType
表の場合、行オブジェクトIDがソースとターゲットの間で一致する必要があります。 -
JSON
データ型の場合、DTYJSON
は、問合せおよび領域効率、プラットフォーム間の転送性のためにバイナリJSON形式で格納されます。JSONデータをテキストとして含む列は、任意のテキスト・データ型(VARCHAR2
、CLOB
)とIS JSON
制約を使用して宣言します。JSONデータ型は、XStream Out、XStream Inプロセスとともに、Oracle GoldenGate ExtractおよびReplicatプロセスでサポートされます。JSONサポートは、Replicatが異常終了しないようにインライン・テキストJSONを4Kに制限します。デフォルトでは、ExtractはネイティブJSON列をテキスト形式で書き込みますが、
binary_json_format
パラメータを使用すると、強制的にネイティブ形式で書き込むようになります。そのため、このパラメータはVARCHAR2
、NVARVAR2
、CLOB
、NCLOB
には設定しないでください。このパラメータは、デフォルトでは設定されていません。OracleからOracleにのみレプリケートする場合は、このパラメータを設定して、わずかなパフォーマンスの向上を得られます。また、str
などの列操作関数は、テキストJSONに対してのみサポートされます。 -
ターゲット・データベースのLOBデータ型に対する重複除外は解除することをお薦めします。
DEDUPLICATION
を有効なままにしておくと、適用側のパフォーマンスに重大な影響を与えます。
SQLEXECの制限事項
レプリケーション・サポートが存在する場合はいくつかありますが、SQLEXEC
を使用する場合などでは、処理に制限があります。次の表に、これらの制限事項を示します。
SQLEXECでサポートされているデータ型 | サポートの制限事項 |
---|---|
|
次の特殊な例:
|
|
サポート対象外 |
|
サポート対象外 |
ネイティブ |
|
|
サポート対象外 |
|
サポート対象外 |
階層対応表 |
サポート対象外 |
|
サポート対象外 |
|
サポート対象外 |
|
サポート対象外 |
IDENTITY列 |
サポート対象外 |
|
サポート対象外 |
ノート:
DBMS_LOG.FRAGMENT
を使用して更新されたSECUREFILE
LOB、またはNOLOGGING
に設定されたSECUREFILE
LOBは、REDOから読み取られるかわりにフェッチされます。
ノート:
この表にリストされていないデータ型は、通常の製品と同じ制限がありますが完全にSQLEXECでサポートされます。特別なデータ型の処理
Extract用の様々なOracleデータ型に対する特別な構成要件を次に示します。
マルチバイト文字型
マルチバイト文字は、サポートされている文字セットの一部としてサポートされます。Oracleソース・データベースのセマンティクス設定がBYTE
で、Oracleターゲットの設定がCHAR
の場合、構成でReplicatパラメータSOURCEDEFS
を使用し、DEFGEN
ユーティリティによって生成された定義ファイルをターゲットに配置します。これらのステップは、ソースおよびターゲットのデータ定義が同一であるかどうかにかかわらず、セマンティクス内の差異のサポートに必要です。Replicatでは、定義ファイルを参照して固定サイズの文字列のサイズ上限を決定します。
親トピック: 特別なデータ型の処理
TIMESTAMP
タイムスタンプ・データをレプリケートするために、Oracle Databaseは、TIMESTAMP WITH LOCAL TIME ZONE
データを受信先のデータベース(Oracle GoldenGateの場合はターゲット・データベース)のローカルのタイムゾーンに正規化します。適用するデータの元のタイム・スタンプを保持するために、Replicatはセッションをソース・データベースのタイムゾーンに設定します。Replicatパラメータ・ファイルのSOURCETIMEZONE
を使用することで、このデフォルトをオーバーライドして、異なるタイムゾーンを指定できます。Replicatでセッションをターゲット・タイムゾーンに強制的に設定させるには、PRESERVETARGETTIMEZONE
パラメータを使用します。
TIMESTAMP WITH TIME ZONE
がTZR
で表されてOracle GoldenGateが異常終了しないようにするには、ExtractパラメータTRANLOGOPTIONS
をINCLUDEREGIONIDWITHOFFSET
で使用して、TZR
で表されたTIMESTAMP WITH TIMEZONE
を、バージョン10g以降のOracleソースからそれより前のOracleターゲットに、またはOracleソースからOracle以外のターゲットにレプリケートします。これらのオプションにより、TZRで表されたTIMESTAMP WITH TIME ZONE
をサポートしないOracleバージョン、およびUTCオフセットで表されたタイムゾーンのみをサポートするデータベース・システムにレプリケートできます。
SOURCETIMEZONE
パラメータを使用して、バージョン12.1.2より前のExtractでキャプチャされるデータのソース・タイムゾーンを指定することもできます。これらのバージョンは、ソース・タイムゾーンを証跡に書き込みません。
親トピック: 特別なデータ型の処理
ラージ・オブジェクト(LOB)
Extract LOBの構成ガイドラインを次に示します。
-
可能な場合、行外にラージ・オブジェクトを保存します。
-
Extractは、REDOログからLOBをキャプチャします。LOBドキュメントに対する
UPDATE
操作では、LOBの変更された部分のみが記録されます。変更された部分のみが記録される場合にLOBドキュメント全体の証跡への書込みを強制するには、Extractパラメータ・ファイルでFETCHPARTIALLOB
オプションを指定してTRANLOGOPTIONS
パラメータを使用します。Extractは、ログマイニング・サーバーから部分的なLOBコンテンツを受信すると、部分的なLOBを処理するのではなく、LOBイメージ全体をフェッチします。Oracle以外のターゲットにレプリケートする場合、またはLOBイメージ全体が必要なその他の場合にこのオプションを使用します。
親トピック: 特別なデータ型の処理
XML
Oracle GoldenGate制約内でXMLを使用するためのツールは、次のとおりです。
-
ExtractはXMLスキーマへの変更のキャプチャをサポートしませんが、スキーマを展開してから、再同期しなくてもそのレプリケーションを再開できます。XMLスキーマの変更のサポートを参照してください。
-
Extractは、REDOログからXMLをキャプチャします。XMLドキュメントの
UPDATE
操作では、OBJECT RELATIONAL
またはBINARY
として格納されている場合、XMLの変更された部分のみが記録されます。変更された部分のみが記録される場合にXMLドキュメント全体の証跡への書込みを強制するには、Extractパラメータ・ファイルでFETCHPARTIALXML
オプションを指定してTRANLOGOPTIONS
パラメータを使用します。Extractは、ログマイニング・サーバーから部分的なXMLコンテンツを受信すると、部分的なXMLを処理するのではなく、XMLドキュメント全体をフェッチします。Oracle以外のターゲットにレプリケートする場合、またはXMLイメージ全体が必要なその他の場合にこのオプションを使用します。
トピック:
親トピック: 特別なデータ型の処理
XMLスキーマの変更のサポート
XMLスキーマの変更のサポートについて学習します。Extractは、XMLスキーマに対する変更のキャプチャをサポートしていません。
トピック:
RegisterSchemaのサポート
RegisterSchema
は、XMLスキーマを参照する表を作成する前に、ソースとターゲットの両方のデータベースでスキーマ定義を登録することで処理されます。
親トピック: XMLスキーマの変更のサポート
DeleteSchemaのサポート
まず、ソース・データベースでDeleteSchema
を発行します。
Replicatでソース・データベースの変更が処理されたら、ターゲット・データベースでDeleteSchema
コールを発行します。
親トピック: XMLスキーマの変更のサポート
CopyEvolveのサポート
CopyEvolveプロシージャではスキーマを展開(変更)し、列を追加または削除することで表を変更できます。
CopyEvolveプロシージャも、XMLドキュメントが有効かどうかを変更するために使用できます。CopyEvolve
の処理には、調整が必要です。
ソース・データベースでCopyEvolve
を発行する場合、次の手順を使用します。
- ソース・データベースで独立した表への変更を停止します。
- プライマリまたはソースのデータベースで
CopyEvolve
を実行します。 - Replicatがそれらの表からのデータをすべてターゲット・データベースに適用し終えるのを待ちます。
- Replicatを停止します。
- ターゲット・データベースで
CopyEvolve
を適用します。 - Replicatを再起動します。
親トピック: XMLスキーマの変更のサポート
ユーザー定義型
Oracle Databaseの互換性がリリース12.0.0.0.0以上の場合、ExtractはREDOからデータをキャプチャします(フェッチなし)。詳細は、「フラッシュバック問合せの設定」を参照してください。
NCHAR
、NVARCHAR2
またはNCLOB
属性のユーザー定義型を含むソース・データをOracleターゲットにレプリケートする場合は、Replicatパラメータ・ファイルのHAVEUDTWITHNCHAR
パラメータを使用します。この型のデータが証跡で検出される場合は、HAVEUDTWITHNCHAR
によって、ReplicatがAL32UTF8
でOracleターゲットに接続されます(これは、これらの属性のいずれかがユーザー定義のデータ型に含まれる場合に必要です)。HAVEUDTWITHNCHAR
は、NLS_LANG
がターゲットでAL32UTF8
に設定される場合でも必要です。デフォルトのReplicatは、NLS_LANG
を無視し、データベースのネイティブ文字セットでOracle Databaseに接続します。ReplicatはOracle Call InterfaceのOCIString
オブジェクトを使用していますが、これはNCHAR
、NVARCHAR2
またはNCLOB
属性をサポートしないため、ReplicatがそれらをCHAR
としてバインドする必要があります。このような状況では、AL32UTF8
のターゲットに接続することでデータの損失を防ぎます。HAVEUDTWITHNCHAR
は、パラメータ・ファイルのUSERID
またはUSERIDALIAS
パラメータの前に存在する必要があります。
親トピック: 特別なデータ型の処理
サポートされていないOracleデータ型
Oracle GoldenGateでは、次のデータ型はサポートされません。
-
+12:00から-12:00の範囲外の時間オフセット値。Oracle GoldenGateでは、+12:00から-12:00の間の時間オフセット値をサポートしています。
-
単一列のみが含まれ、その列が次のいずれかである表。
-
UDT
-
LOB (CLOB、NCLOB、BLOB、BFILE)
-
XMLType列
-
データが32KBを超えるVARCHAR2 (MAX)
-
-
LOB、UDT、XMLまたはXMLType列があり、次のいずれかがない表。
-
主キー
-
一意制約または一意索引を持つスカラー列
すべてのスカラー列の組合せで一意性が保証されない表はサポートされません。
-
- 次のXML特性を持つ表:
-
XML属性で構成された主キー制約を持つ表
-
オブジェクト識別子に基づく主キー(PKOID)を持つXMLType表。
-
行オブジェクト識別子(OID)がソースとターゲット間で一致しないXMLType表。
-
空のCTAS文で作成されるXMLType表。
-
XMLスキーマに変更が加えられるXMLスキーマベースのXMLType表および列(XMLスキーマは、
dbms_xml
パッケージを使用してソース・データベースおよびターゲット・データベースに登録する必要があります)。 -
XMLTypeを更新する
SET
値の全体の長さは、新しいコンテンツと他の操作、XQueryバインド値を含めて32Kを超えます。 -
XML-バイナリおよびXML-ORのSQL*Loaderダイレクト・パス・インサート。
-
-
次のUDT特性を持つ表:
-
CFILEまたはOPAQUEを含むUDT (XMLTypeを除く)
-
バイナリまたは印刷できない文字が含まれているCHAR属性とVARCHAR属性を含むUDT
-
RMTTASKパラメータを使用するUDT
-
-
次の条件を持つUDTおよびネストされた表:
-
CHAR、NVARCHAR2またはNCLOB属性を持つネストされた表のUDT。
-
UDTにCLOB、BLOB、拡張(32k) VARCHAR2またはRAW属性を含むネストされた表。
-
他のUDTの一部である、ネストされた表の列/属性。
-
-
ネストされた表のデータを更新する際には、ネストされた表が含まれている行を同時に更新する必要があります。それ以外の場合、サポートはありません。
-
VARRAYSとネストされた表をフェッチすると、変更箇所のみでなく、毎回、列の内容全体がフェッチされます。それ以外の場合、サポートはありません。
-
オブジェクト表には次の属性があります。
-
ネストされた表
-
SDO_TOPO_GEOMETRY
-
SDO_GEORASTER
-
その他の除外については、「サポートされるOracleデータ型およびオブジェクトの詳細」を参照してください。
Oracle Databaseエディションのサポートの詳細
この項では、現行のOracle GoldenGateリリースでサポートされているOracleデータベース製品ファミリのデータベース・エディションについて説明します。
Oracle Database Express Edition (XE)は配信のみでサポートされ、統合Replicatや統合モードのパラレルReplicatなどの統合機能はサポートしていません。
-
Extract、統合Replicatおよび統合モードのパラレルReplicatは、単一スレッドに制限されます。
Oracle Database Enterprise Edition (EE)には、完全なOracle GoldenGate機能を備えています。
Oracle Database Personal Edition (PE)は配信のみでサポートされ、統合または統合モードのパラレルReplicatなどの統合機能はサポートしていません。
Oracle DMLのオブジェクトと操作のサポートの詳細
DML操作の取得とレプリケーションについてOracle GoldenGateでサポートされるOracleオブジェクトと操作のリストを次に示します。
トピック:
マルチテナント・コンテナ・データベース
Oracle GoldenGateは、マルチテナント・コンテナ・データベースとの間でキャプチャと配信を実行します。「マルチテナント・コンテナ・データベースの構成」を参照してください。
アプリケーション・コンテナはサポートされていません。
親トピック: Oracle DMLのオブジェクトと操作のサポートの詳細
表、ビューおよびマテリアライズド・ビュー
Oracle GoldenGateでは、標準の表、索引構成表、クラスタ化された表およびマテリアライズド・ビューに対して行われる次のDML操作がサポートされます。
-
INSERT
-
UPDATE
-
DELETE
-
関連するトランザクション制御操作
ヒント:
DBA_GOLDENGATE_SUPPORT_MODE
データ・ディクショナリ・ビューを使用して、データベースの表に対するOracle GoldenGateキャプチャ・プロセス・サポートのレベルの情報を表示できます。DBA_GOLDENGATE_SUPPORT_MODE
のPLSQL
値は、表がネイティブでサポートされるが、手続き型サプリメンタル・ロギングが必要なことを示します。詳細は、DBA_GOLDENGATE_SUPPORT_MODE
に関する項を参照してください。主索引およびNULL以外の一意索引を持たないすべての表を表示する必要がある場合は、DBA_GOLDENGATE_NOT_UNIQUE
を使用できます。詳細は、DBA_GOLDENGATE_NOT_UNIQUE
に関する項を参照してください。
トピック:
標準の表のサポートの制限
これらの制限は、Extractに適用されます。
-
Oracle GoldenGateでは、任意の数の行を含む表をサポートします。
-
行の長さは最大4MBです。列の変更前および変更後の両方イメージを処理範囲に含むようにOracle GoldenGateが構成されている場合、完全な変更前イメージと変更後イメージの長さの合計に適用される長さは、最大4MBになります。たとえば、行識別子として使用されている列で
UPDATE
操作が実行されると、変更前および変更後のイメージが処理され、合計で4MBを超えることはできません。変更前および変更後のイメージは、行識別子でない列にも必要ですが、競合の検出および解決(CDR)の比較列として使用されます。CLOB
など、4KBを超えるデータが許可される文字の列では、最初の4KBのデータのみが行内に格納され、4MBの最大行長が可能になります。BLOB
など、4KBを超えるデータが許可されるバイナリの列では、最初の8KBのデータが行内に格納され、4MBの最大行長が可能になります。 -
Oracle GoldenGateでは、データベースによってサポートされている表ごとに最大列数がサポートされています。
-
Oracle GoldenGateでは、データベースによってサポートされている最大列サイズがサポートされます。
-
Oracle GoldenGateでは、列に次のデータ型の1つが含まれていないかぎり、列が1つだけ含まれている表がサポートされています。
-
LOB
-
LONG
-
LONG VARCHAR
-
ネストされた表
-
ユーザー定義型(UDT)
-
VARRAY
-
XMLType
-
-
未使用の列を含む表に対するレプリケートの前に、
DBOPTIONS ALLOWUNUSEDCOLUMN
を設定します。 -
Oracle GoldenGateでは、次のパーティション化属性を持つ表がサポートされます。
-
レンジ・パーティション化
-
ハッシュ・パーティション化および時間隔パーティション化
-
コンポジット・パーティション化
-
仮想列ベースのパーティション化
-
参照パーティション化
-
リスト・パーティション化
-
-
Oracle GoldenGateでは、仮想列を含む表がサポートされますが、これらの列に対する変更データのキャプチャも適用も行われません。データベースでは仮想列がトランザクション・ログに書き込まれず、Oracle Databaseでは仮想列に対するDMLが許可されません。同じ理由から、初期ロード・データは仮想列に適用できません。仮想列から非仮想列へのデータのマップは行えます。
-
Oracle GoldenGateでは、仮想列を含む一意索引を考慮しません。
-
Oracle GoldenGateでは、Oracle Exadataとの間のレプリケーションがサポートされます。Exadataハイブリッド列圧縮をサポートするには、ソース・データベース互換性が11.2.0.0.0以上に設定されている必要があります。
-
Oracle GoldenGateでは、Transparent Data Encryption(TDE)がサポートされます。
-
Oracle GoldenGateでは、DDLレプリケーション・サポートの一環として、あるいはDDLサポートとは無関係のスタンドアロン機能として
TRUNCATE
文がサポートされます。 -
Oracle GoldenGateでは、XMLバイナリおよびXMLオブジェクト・リレーショナルのSQL*Loaderダイレクト・パス・インサートを除き、ダイレクト・ロード
INSERT
のキャプチャがサポートされます。サプリメンタル・ロギングが有効であることと、データベースがアーカイブ・ログ・モードであることが必要です。次の直接ロード方式がサポートされています。-
/*+ APPEND */
ヒント -
/*+ PARALLEL */
ヒント -
DIRECT=TRUE
を設定したSQLLDR
-
-
Oracle GoldenGateは、Extractの圧縮オブジェクトからのキャプチャを完全にサポートしています。
-
Oracle GoldenGateでは、XAおよびPDML分散トランザクションがサポートされます。
-
Oracle GoldenGateでは、
FLASHBACK ARCHIVE
を有効にした表でのDML操作がサポートされます。ただし、Oracle GoldenGateでは、FLASHBACK ARCHIVE
句を含む表を作成するDDL、またはフラッシュバック・データ・アーカイブ自身を作成、変更または削除するDDLはサポートされません。
親トピック: 表、ビューおよびマテリアライズド・ビュー
ビューのサポートの制限
これらの制限は、Extractに適用されます。
-
Extractが初期ロード・モードの場合、Oracle GoldenGateでビューからのキャプチャがサポートされます(REDOログではなく、ソース・ビューからの直接のキャプチャ)。
-
Oracle GoldenGateで、変更データはビューからキャプチャされませんが、ビューの基になる表からのキャプチャはサポートされます。
親トピック: 表、ビューおよびマテリアライズド・ビュー
マテリアライズド・ビューのサポートの制限
マテリアライズド・ビューはExtractでサポートされますが、次の制限があります。
-
WITH ROWID
を使用して作成されるマテリアライズド・ビューはサポートされていません。 -
WITH ROWID
を使用してマテリアライズド・ビューのログを作成できます。 -
ソース表に主キーを設定しておく必要があります。
-
マテリアライズド・ビューの切捨てはサポートされていません。
DELETE FROM
文を使用できます。 -
マテリアライズド・ビューの全体リフレッシュのDML(DDLではない)はサポートされます。この機能のDDLサポートが必要な場合はOracle GoldenGateのサポート事例をオープンしてください。
-
Replicatの場合、
Create MV
コマンドにFOR UPDATE
句を含める必要があります。 -
マテリアライズド・ビューまたは基礎となるベース表のいずれか(両方ではない)をレプリケートできます。
親トピック: 表、ビューおよびマテリアライズド・ビュー
システム・パーティション化
システム・パーティション化は、名前付きパーティションによって表を作成できるようにするOracleデータベース機能です。システム・パーティション表は、データベースではメンテナンスされません。各DMLでは、行を配置するパーティションを指定する必要があります。ExtractおよびReplicatのすべてのモードで、システム・パーティション化がサポートされます。システム・パーティション表に関連する各証跡ファイルのレコード・ヘッダーには、パーティション名が含まれます。Oracle GoldenGate 21c以降では、システム・パーティション表に対してパーティション名レコード(PNR)が生成されます(そのレコードがPARTITION
パラメータに含まれている場合)。
Oracle GoldenGateリファレンスのPARTITION | PARTITIONEXCLUDE
を参照してください。
親トピック: Oracle DMLのオブジェクトと操作のサポートの詳細
順序およびIDENTITY列
-
IDENTITY列はOracleデータベース18c以降でサポートされていて、Extract、統合モードのパラレルReplicatまたは統合Replicatが必要です。
-
Oracle GoldenGateは、1方向のアクティブ/パッシブ高可用性構成での順序値とIDENTITY列のレプリケーションをサポートしています。
-
Oracle GoldenGateによって、ターゲットの順序値が常にソースの順序値よりも大きくなります(または、キャッシュがゼロの場合、それらに等しくなります)。
トピック:
順序のサポートの制限
これらの制限は、Extractに適用されます。
-
Oracle GoldenGateは、アクティブ/アクティブ双方向構成での順序値のレプリケーションはサポートしません。
-
ソースおよびターゲットの順序のキャッシュ・サイズおよび増分間隔は、同一である必要があります。キャッシュは0を含む任意のサイズにできます(
NOCACHE
)。 -
順序は、循環を有効または無効に設定できますが、ソース・データベースとターゲット・データベースの設定は同一にする必要があります。
-
デフォルトの順序列を持つ表は、Extractのレプリケーションから除外されます。
親トピック: 順序およびIDENTITY列
Oracle DMLでサポートされていないオブジェクトおよび操作
Extractでサポートされない追加のOracleオブジェクトまたは操作は、次のとおりです。
-
Oracle Database 12.2以降との互換性を確保するために、
REF
はネイティブでサポートされますが、主キー・ベースのREF
(PKREF
)はサポートされません -
アクティブ/アクティブ双方向構成での順序値
-
データベース・リプレイ
-
EXTERNAL
として作成された表
親トピック: Oracle DMLのオブジェクトと操作のサポートの詳細
DML自動取得
-
TABLEEXCLUSION
パラメータがサポートされています。 -
TABLE
パラメータがサポートされています。 -
Extractは、自動取得用にデータベースによって配信された表DMLレコードを証跡ファイルに書き込みます。
親トピック: Oracle DMLのオブジェクトと操作のサポートの詳細
Oracle DDLのオブジェクトと操作のサポートの詳細
DDL操作の取得とレプリケーションについてOracle GoldenGateでサポートされるOracleオブジェクトと操作について学習します。
Oracle DDLでサポートされているオブジェクトおよび操作
DDLキャプチャのサポートは、データベース・ログマイニング・サーバーに統合されています。データベース・パラメータの互換性を11.2.0.4.0以降に設定する必要があります。Extractは次のようなパスワード・ベースの列の暗号化を含むDDLをサポートします。
-
CREATE TABLE t1 ( a number, b varchar2(32) ENCRYPT IDENTIFIED BY my_password);
-
ALTER TABLE t1 ADD COLUMN c varchar2(64) ENCRYPT IDENTIFIED BY my_password;
DDLサポートに関して、Extractに次の追加の文が適用されます。
-
Oracle GoldenGateのすべてのトポロジ構成は、Oracle DDLレプリケーションでサポートされています。
-
Oracle DDLのアクティブ/アクティブ(双方向)レプリケーションは、同一のメタデータが含まれている2つ(および2つだけ)のデータベース間でサポートされています。
-
Oracle GoldenGateでは、次のオブジェクトでDDLはサポートされます。
-
クラスタ
-
ディレクトリ
-
ファンクション
-
索引
-
パッケージ
-
プロシージャ
-
表
-
表領域
-
ロール
-
順序
-
シノニム
-
トリガー
-
型
-
ビュー
-
マテリアライズド・ビュー
-
ユーザー
-
非表示列
-
-
Oracle DDLのOracleエディション・ベース再定義(EBR)のデータベース・レプリケーションは、次のOracle Databaseオブジェクトに対するExtractでサポートされています。
-
ファンクション
-
ライブラリ
-
パッケージ(仕様と本体)
-
プロシージャ
-
シノニム
-
型(仕様と本体)
-
ビュー
-
-
Oracle GoldenGate 21c以降、サイズが4MBを超えるDDLにレプリケーション・サポートが提供されます。
-
Oracle GoldenGateは、グローバル一時表(GTT) DDL操作をレプリケートできるように、Extractへのこの操作の表示をサポートしています。この操作はデフォルトでは設定されていないため、有効にするには
DDLOPTIONS
パラメータを設定する必要があります。 -
Oracle GoldenGateは、
NOUSERID
およびTRANLOGOPTIONS GETCTASDML
とともに使用するディクショナリをサポートしています。これは、Extractは、ディクショナリ・オブジェクトを問い合せることなく、LogMinerディクショナリからオブジェクト・メタデータを受信することを意味します。Oracle GoldenGateは、ソース・データベースの互換性パラメータが11.2.0.4以降のときに自動的にディクショナリを使用します。Oracle GoldenGate release 12.2.xでディクショナリと証跡フォーマットを使用するときには、Extractはマイニング・データベースにLogminerパッチが適用されることを必要とします(Oracle Databaseのリリースが12.1.0.2よりも前の場合)。
-
Oracle GoldenGateは、Extractでの非表示列のレプリケーションをサポートしています。証跡フォーマット・リリース12.2が必要です。Replicatでは
MAPINVISIBLECOLUMNS
パラメータを指定するか、MAP
パラメータのCOLMAP
句で非表示列に明示的にマップする必要があります。SOURCEDEFS
またはTARGETDEFS
を使用する場合、Oracle表の定義ファイルのメタデータ・フォーマットは証跡フォーマットと互換性があることが必要です。メタデータ・フォーマット12.2は証跡フォーマット12.2と互換性があり、12.2より前のメタデータ・フォーマットは12.2より前の証跡フォーマットと互換性があります。定義ファイルのメタデータ・フォーマットを指定するには、DEFGEN
で定義ファイルを生成するときに、DEFSFILE
パラメータのFORMAT RELEASE
オプションを使用します。 -
ネームスペース・コンテキストを作成するDDL文(
CREATE CONTEXT
)は、Extractによってキャプチャされ、Replicatによって適用されます。 -
ポンプ・モードのExtractは、次のDDLオプションをサポートしています。
-
DDL INCLUDE ALL
-
DDL EXCLUDE ALL
-
DDL EXCLUDE OBJNAME
DDL EXCLUDE
のSOURCECATALOG
およびALLCATALOG
オプションもサポートされています。DDLパラメータが指定されていない場合、すべてのDDLが証跡に書き込まれます。
DDL EXCLUDE OBJNAME
が指定されている場合は、オブジェクト所有者が除外ルールに一致しないと証跡に書き込まれます。 -
-
Oracleデータベース21c以降では、Oracle GoldenGateによってレプリケートされないDML/DDLの変更のブロックをサポートするために、次のDDLを使用できます。
ALTER DATABASE [ENABLE | DISABLE] goldengate blocking mode;
Oracle GoldenGateのブロック・モードが有効な場合、表でsupport_mode NONE
を使用して、サポートされていないOracle PL/SQL文を実行するDMLは、次のエラーで失敗します。ORA-26981: "operation was unsupported during Oracle GoldenGate blocking mode"
Oracleデータベース21cの場合は、次の機能により、Oracle GoldenGateで表にsupport_mode NONE
が設定されます。-
ADT列または型指定表の属性としての
BFILE
-
スカラーのない表
-
OLAP AW$表
-
シャード・キュー表
-
ソートされたハッシュ・クラスタ表
-
リレーショナル表のADT属性に対する主キー制約
-
長い(4000バイトを超える)
raw
/varchar
に対する主キー/一意キー制約 -
V$DATABASE
列、Goldengate_Blocking_Mode
を問い合せると、現在のブロック・モードのステータスを確認できます。
-
-
DDL自動取得モードの場合:
-
Extractは
TABLE
およびTABLEEXCLUDE
パラメータに基づいてDDLを取得するため、DDL INCLUDE MAPPED
にのみ関連します。 -
自動取得できるのは、表関連のDDLのみです。
-
表レベルで自動取得を有効にするDDL:
CREATE/ALTER TABLE … ENABLE LOGICAL REPLICATION ALLKEYS;
またはCREATE/ALTER TABLE … ENABLE LOGICAL REPLICATION ALLOW NOVALIDATE KEYS;
Oracle DatabaseユーティリティガイドのOracle GoldenGateのサプリメンタル・ロギングの取得方法を参照してください。
-
-
次の操作は、パーティション関連のDDLとパーティション・メンテナンス操作でサポートされます。
-
パーティションの削除:
同じ名前でパーティションが再作成されると、新しいオブジェクト番号が付与されます。内部キャッシュは、パーティション削除DDLの処理時に、領域の消費量が最小限になるようにクリアされます。
-
パーティションの切捨て:
パーティション名とオブジェクト番号は同じままです。元表のオブジェクト・バージョンは同じままです。
-
パーティション名の変更:
パーティション・オブジェクト番号は同じままですが、新しい名前が付与されます。元表のオブジェクト・バージョンがバンプされます。メモリー内の名前キャッシュは、このDDLが確認されると無効になり、次のDML時に再移入されます。特定のパーティション・オブジェクト番号が重要かどうかを格納するキャッシュは、新しいパーティション名がフィルタ処理済からフィルタ処理なしに切り替わる可能性があるため、再評価する必要もあります。
-
パーティションの交換:
パーティション内のデータを表内のデータと交換します(またはその逆に交換します)。交換されるパーティションのオブジェクト番号は変更されません。データ・オブジェクト番号は変更されますが、Extractでは使用しません。パーティション自体は引き続き同じ表に属します。
-
パーティションのマージ:
1つ以上のパーティションを新しいパーティションにマージします。DDLによって新しいパーティションが作成され、マージ元のパーティションが削除されます。メモリー内のキャッシュは領域を節約するためにクリアする必要があり、ユーザーはフィルタ・ルールが新しく作成されたパーティションに対して適切なことを確認する必要があります。
-
パーティションの分割:
分割されるパーティションには元の名前とオブジェクト番号が保持され、分割されたデータのための新しいパーティションが作成されます。ユーザーは、パーティションのフィルタ・ルールが新しく作成されたパーティションに適していることを確認する必要があります。
-
パーティションの結合:
ハッシュ・パーティション表のパーティション数を減らします。結合される特定のパーティションはデータベースにより選択され、コンテンツの再配布後に削除されます。残存するパーティションでは、同じ名前とオブジェクト番号が維持されます。内部キャッシュは、領域の消費量が最小限になるようにクリアする必要があります。
-
パーティションの変更:
リスト・パーティションの値の追加または削除とは別に、パーティションのデフォルトの属性と実際の属性を変更します。すべての変更で、パーティション名とオブジェクト番号は維持されます。
-
パーティションの移動:
パーティション・データが新しい表領域に移動されます。パーティション名と番号は同じままです。
-
表の再定義:
dbms_redefinition
は、暫定表を使用して表をパーティション化するために使用できます。パーティションは暫定表に作成され、finish_redef
操作後に表の名前がスワップされます。暫定表に作成されたパーティションでは、表のスワップ時に名前とオブジェクト番号が保持されます。パーティションは元表に属するようになっているため、Extractフィルタ・キャッシュはfinish_redef
時に再評価する必要があります。ユーザーはフィルタ・ルールが適切なことを確認する必要があります。 -
再定義パーティション:
表を再定義する場合、パーティションは元の表から暫定表に引き継がれます。たとえば、元の表には
USER
表領域に存在するパーティションがあり、暫定表がパーティションなしで作成され、その表がNEW
表領域に存在する場合について考えてみます。この場合、finish_redef
操作後に、表がスワップされたときにもパーティションは引き続きUSER
表領域に存在します。再定義パーティションによって、パーティションは暫定表のNEW
表領域に移動できるようになります。パーティションの名前とオブジェクト番号は維持されます。 -
システム生成のパーティション名:
ハッシュ・パーティションや分割パーティションなどの操作に対してパーティションが自動的に作成される場合、パーティション名の形式は
SYS_P sequence value
になります。同様に、サブパーティションの形式はSYS_SUBP sequence value
になります。フィルタ・ルールに準拠するDMLを除外する前に、このパーティション名の変更をお薦めします。
-
親トピック: Oracle DDLのオブジェクトと操作のサポートの詳細
サポートされていないOracle DDLのオブジェクトおよび操作
ここでは、Oracle DDLでサポートされていないオブジェクトと操作を示します。
除外されるオブジェクト
次の名前または名前の接頭辞はOracle予約済とみなされ、Oracle GoldenGate DDL構成から除外する必要があります。これらの名前を含むオブジェクトはOracle GoldenGateによって無視されます。
除外されるスキーマ:
"ANONYMOUS", // HTTP access to XDB "APPQOSSYS", // QOS system user "AUDSYS", // audit super user "BI", // Business Intelligence "CTXSYS", // Text "DBSNMP", // SNMP agent for OEM "DIP", // Directory Integration Platform "DMSYS", // Data Mining "DVF", // Database Vault "DVSYS", // Database Vault "EXDSYS", // External ODCI System User "EXFSYS", // Expression Filter "GSMADMIN_INTERNAL", // Global Service Manager "GSMCATUSER", // Global Service Manager "GSMUSER", // Global Service Manager "LBACSYS", // Label Security "MDSYS", // Spatial "MGMT_VIEW", // OEM Database Control "MDDATA", "MTSSYS", // MS Transaction Server "ODM", // Data Mining "ODM_MTR", // Data Mining Repository "OJVMSYS", // Java Policy SRO Schema "OLAPSYS", // OLAP catalogs "ORACLE_OCM", // Oracle Configuration Manager User "ORDDATA", // Intermedia "ORDPLUGINS", // Intermedia "ORDSYS", // Intermedia "OUTLN", // Outlines (Plan Stability) "SI_INFORMTN_SCHEMA", // SQL/MM Still Image "SPATIAL_CSW_ADMIN", // Spatial Catalog Services for Web "SPATIAL_CSW_ADMIN_USR", "SPATIAL_WFS_ADMIN", // Spatial Web Feature Service "SPATIAL_WFS_ADMIN_USR", "SYS", "SYSBACKUP", "SYSDG", "SYSKM", "SYSMAN", // Adminstrator OEM "SYSTEM", "TSMSYS", // Transparent Session Migration "WKPROXY", // Ultrasearch "WKSYS", // Ultrasearch "WK_TEST", "WMSYS", // Workspace Manager "XDB", // XML DB "XS$NULL", "XTISYS", // Time Index
特別なスキーマ:
"AURORA$JIS$UTILITY$", // JSERV "AURORA$ORB$UNAUTHENTICATED", // JSERV "DSSYS", // Dynamic Services Secured Web Service "OSE$HTTP$ADMIN", // JSERV "PERFSTAT", // STATSPACK "REPADMIN", "TRACESVR" // Trace server for OEM
除外される表は次のとおりです(*ワイルドカードは任意のスキーマまたは文字を示します)。
"*.AQ$*", // advanced queues "*.DR$*$*", // oracle text "*.M*_*$$", // Spatial index "*.MLOG$*", // materialized views "*.OGGQT$*", "*.OGG$*", // AQ OGG queue table "*.ET$*", // Data Pump external tables "*.RUPD$*", // materialized views "*.SYS_C*", // constraints "*.MDR*_*$", // Spatial Sequence and Table "*.SYS_IMPORT_TABLE*", "*.CMP*$*", // space management, rdbms >= 12.1 "*.DBMS_TABCOMP_TEMP_*", // space management, rdbms < 12.1 "*.MDXT_*$*" // Spatial extended statistics tables
サポートされていないその他のDDL
Oracle GoldenGateでは次のものはサポートされていません。
-
ネストされた表に対するDDL。
-
IDENTITY列に対するDDL。
-
ALTER DATABASE
およびALTER SYSTEM
(これらはDDLとはみなされません)。ディクショナリを使用している場合は、ALTER DATABASE DEFAULT EDITION
およびALTER PLUGGABLE DATABASE DEFAULT EDITION
をレプリケートできます。その他のALTER [PLUGABLE] DATABASE
コマンドはすべて無視されます。 -
スタンバイ・データベースに対するDDL。
-
データベース・リンクDDL。
-
FLASHBACK ARCHIVE
句を含む表を作成するDDL、またはフラッシュバック・データ・アーカイブ自身を作成、変更または削除するDDL。FLASHBACK ARCHIVE
を含む表に対するDMLはサポートされません。 -
一部のDDLは、システム生成のオブジェクト名を生成します。システム生成オブジェクトの名前は、異なる2つのデータベース間で常に同じであるとはかぎりません。そのため、システム生成名を持つオブジェクトに対するDDL操作は、その名前がターゲットで完全に同じ場合にのみ実行する必要があります。