Oracle DMLのオブジェクトと操作のサポートの詳細
DML操作の取得とレプリケーションについてOracle GoldenGateでサポートされるOracleオブジェクトと操作のリストを次に示します。
マルチテナント・コンテナ・データベース
Oracle GoldenGateは、マルチテナント・コンテナ・データベースとの間でキャプチャと配信を実行します。「マルチテナント・コンテナ・データベースの構成」を参照してください。
アプリケーション・コンテナはサポートされていません。
表、ビューおよびマテリアライズド・ビュー
通常の表、索引構成表、クラスタ化表およびマテリアライズド・ビューでは、次のDML操作がサポートされています:
-
INSERT
-
UPDATE
-
DELETE
-
関連するトランザクション制御操作
Oracle GoldenGate 23ai以降では、表に対して次の機能を使用できます。
-
行サイズが4 MB未満の表での4K列
-
ブロックチェーンおよび不変表
詳細は、「ブロックチェーンおよび不変表のサポートの制限」を参照してください。
ヒント:
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
-
Nested table
-
ユーザー定義型(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
句を含める必要があります。 -
マテリアライズド・ビューまたは基礎となるベース表のいずれか(両方ではない)をレプリケートできます。
ブロックチェーンおよび不変表のサポートの制限
- 一方向レプリケーションのサポート
-
-
ブロックチェーン表バージョンv1 (Oracle Database 19.10で導入)とv2 (Oracle Database 23aiで導入)の両方と、不変表バージョンv1 (Oracle Database 19.11で導入)とv2 (Oracle Database 23aiで導入)の両方が、調整Replicatを除くすべてのReplicatでサポートされています。
-
タイプとバージョン間の相互運用性は次のとおりです。
-
ソースの任意のバージョンのブロックチェーンおよび不変表からターゲットの従来の表へのレプリケーションはサポートされています。
-
ソースの従来の表からターゲットの任意のバージョンのブロックチェーンおよび不変表へのレプリケーションはサポートされていません。
-
-
DML、DDLおよびプロシージャ・レプリケーションを有効にする必要があります。プロシージャ・レプリケーションの場合、ブロックチェーン表を追加する必要があります。
-
期限切れの行の削除操作はレプリケートされません。有効期限は、各データベース・システムによって個別に管理されます。
-
- 双方向(アクティブ/アクティブ)レプリケーションのサポート
-
-
バージョンv2のみのサポート。
-
統合モードのパラレルReplicatおよび統合Replicatのみのサポート。
-
ACDRを構成する必要があります。ブロックチェーンおよび不変表のACDRには、次の解決方法が含まれています。
-
最新のタイムスタンプ
-
最も古いタイムスタンプ
ノート:
他の解決方法(列グループやデルタ解決など)はサポートされていません。手動CDRのサポートはありません。 -
-
ブロックチェーンまたは不変表には、最大1つの主キー制約または一意制約を使用できますが、一意索引は使用できません。
-
ACDRのブロックチェーンまたは不変表の主キー制約または一意キー制約では、一意でない索引が使用されます。
-
ブロックチェーンおよび不変表はINSERT専用の表であるため、ACDRではINSERT-INSERT競合のみを管理します。ACDRにより、タイムスタンプ(
CDRTS$ROW
)と可視性(ORABCTAB_INVISIBLE$
)の2つの非表示列が追加されます。これらの非表示列は次のように機能します。
ACDRで競合が解決され、両方の行のコピーが保持されます。非表示の列
ORABCTAB_INVISIBLE$
を1に設定することで、通常は破棄または上書きされる競合するINSERTが論理的に無効としてマークされます。その結果、同じキー値を持つ行が複数存在する可能性がありますが、各キーの最大1行が有効になり、ORABCTAB_INVISIBLE$
が0に設定されます。
-
-
DML自動取得
-
TABLEEXCLUSION
パラメータがサポートされています。 -
TABLE
パラメータがサポートされています。 -
Extractは、自動取得用にデータベースによって配信された表DMLレコードを証跡ファイルに書き込みます。
システム・パーティション化
システム・パーティション化は、名前付きパーティションによって表を作成できるようにするOracleデータベース機能です。システム・パーティション表は、データベースではメンテナンスされません。各DMLでは、行を配置するパーティションを指定する必要があります。ExtractおよびReplicatのすべてのモードで、システム・パーティション化がサポートされます。システム・パーティション表に関連する各証跡ファイルのレコード・ヘッダーには、パーティション名が含まれます。Oracle GoldenGate 21c以降では、システム・パーティション表に対してパーティション名レコード(PNR)が生成されます(そのレコードがPARTITION
パラメータに含まれている場合)。
Oracle GoldenGateパラメータおよび機能リファレンスのPARTITION | PARTITIONEXCLUDE
を参照してください。