B XStream Outの制限事項

次の制限がXStream Outに適用されます。

B.1 取得プロセスの制限事項

次の制限が取得プロセスに適用されます。

B.1.1 取得プロセスではサポートされていないデータ型

取得プロセスでは、一部のデータ型はサポートされません。

取得プロセスは、次のデータ型の列に対するDML変更の結果は取得しません。

  • ROWID

  • ネストした表

  • Oracle提供型: ANYTYPEANYDATASET、URI型、SDO_TOPO_GEOMETRYSDO_GEORASTERおよびExpression

これらのデータ型の制限事項は、通常の(ヒープ構成)表および索引構成表の両方に適用されます。

ノート:

XStreamは、可変幅のマルチバイト文字セットのデータベースでは、LONG列をサポートしません。

取得プロセスでは、ソース・データベースの互換性レベルが11.2.0.0以上に設定されている場合のみ、SecureFiles LOB列への変更を取得できます。また、取得プロセスでは、SecureFiles LOB列に対するフラグメントベースの操作によって生じた変更の取得、およびSecureFilesアーカイブ・マネージャ操作によって生じた変更の取得はサポートされていません。

取得プロセスでは、サポートされていないデータ型の列に対するDML変更の行LCRを作成しようとすると、表に対する変更が無視されるか、エラーが発生することがあります。取得プロセスの動作は、ignore_unsupported_table取得プロセス・パラメータの設定によって異なります。

取得プロセスで表に対する変更が無視された場合、変更は取得されず、アラート・ログに表名が記録されます。取得プロセスは、エラーが発生すると、エラーの原因となったLCRをトレース・ファイルに書き込み、ORA-26744エラーを生成した後で無効になります。いずれの場合も、取得プロセスで使用されるルールを変更して、アラート・ログにメッセージが記録されないようにするか、またはプロセス・エラーを取得します。取得プロセスのルールを変更した後に、取得プロセスを再起動します。

ノート:

  • 取得プロセスのネガティブ・ルール・セットに、サポートされていないデータ型の列を含む表への変更を廃棄するように取得プロセスに指示するルールを追加できます。

  • 取得プロセスでは、オブジェクト型の属性を含む主キーはサポートされません。

  • 取得プロセスでは、APPENDヒントを使用してINSERT操作を取得しようとした場合、型がオブジェクト・リレーショナルとして格納されているXMLTypeまたはバイナリXMLとして格納されているXMLTypeのいずれかである列がINSERT操作に含まれていると、エラーが発生します。

関連項目:

B.1.2 取得プロセスではサポートされていない変更

取得プロセスでは、一部の変更はサポートされません。

B.1.2.1 取得プロセスではサポートされていないスキーマ

取得プロセスでは、一部のスキーマはサポートされません。

デフォルトでは、取得プロセスでは、次のスキーマに対して行われた変更は取得されません。

  • CTXSYS

  • DBSNMP

  • DMSYS

  • DVSYS

  • EXFSYS

  • LBACSYS

  • MDDATA

  • MDSYS

  • OLAPSYS

  • ORDDATA

  • ORDPLUGINS

  • ORDSYS

  • OUTLN

  • SI_INFORMTN_SCHEMA

  • SYS

  • SYSMAN

  • SYSTEM

  • WMSYS

  • XDB

include_objects取得プロセス・パラメータでこれらの1つ以上のスキーマを指定した場合、取得プロセスは、指定したスキーマに対する変更を取得します。include_objects取得プロセス・パラメータでこれらのスキーマの1つ以上の表を指定した場合、取得プロセスは、指定された表に対する変更を取得します。

デフォルトでは、include_objects取得プロセス・パラメータはNULLに設定されています。したがって、取得プロセスでは、これらのスキーマに対する変更は取得されません。

関連項目:

include_objects取得プロセス・パラメータの詳細は、Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンスを参照

B.1.2.2 取得プロセスではサポートされていない表タイプ

取得プロセスでは、一部の表タイプはサポートされません。

取得プロセスでは、次のタイプの表に対して行われたDML変更を取得できません。

ノート:

  • 基本表圧縮およびOLTP表圧縮によって圧縮された表に対する変更を取得プロセスで取得できるのは、ソース・データベースと取得データベースのどちらの互換性レベルも11.2.0.0.0以上に設定されている場合のみです。

  • 取得プロセスでは、次のすべての条件を満たす場合、ハイブリッド・コラム圧縮によって圧縮された表に対する変更を取得できます。その条件とは、ソース・データベースと取得データベースの両方でOracle Database 11gリリース2 (11.2.0.2)が実行されていること、およびソース・データベースと取得データベースのどちらの互換性レベルも11.2.0.0.0以上に設定されていることです。

B.1.2.3 取得プロセスではサポートされていないDDL変更

取得プロセスでは、一部のデータ定義言語(DDL)変更がサポートされません。

取得プロセスでは、次のタイプのDDL変更を除き、ルール・セットを満たすDDL変更が取得されます。

  • ALTER DATABASE

  • CREATE CONTROLFILE

  • CREATE DATABASE

  • CREATE PFILE

  • CREATE SPFILE

取得プロセスではDDL文を取得できますが、DDL文がCREATE TABLE AS SELECT文である場合を除き、DDL文の結果は取得できません。たとえば、取得プロセスでANALYZE文が取得される場合でも、ANALYZE文によって生成された統計は取得されません。ただし、取得プロセスでCREATE TABLE AS SELECT文が取得される場合は、この文自体と(INSERTの行LCRとして)選択されたすべての行が取得されます。

取得プロセスによって取得されたDDL変更の一部のタイプは、アウトバウンド・サーバーで適用できません。アウトバウンド・サーバーでは、処理できない操作を指定するDDL LCRを受信した場合、そのDDL LCRは無視され、それに関する情報がトレース・ファイルに記録されます。

B.1.2.4 取得プロセスによって無視される変更

取得プロセスでは、一部のタイプの変更が無視されます。

取得プロセスでは、次のタイプの変更が無視されます。

  • セッション制御文ALTER SESSIONおよびSET ROLE

  • システム制御文ALTER SYSTEM

  • CALLEXPLAIN PLANおよびLOCK TABLE文。

  • ビューに対するGRANT文。

  • DBMS_REDEFINITIONパッケージを使用して、オンライン再定義によって表またはスキーマに対して行われた変更。取得プロセスが変更を取得する表では、オンラインで表を再定義できますが、表の論理構造は、オンライン再定義前とオンライン再定義後とで同一の構造である必要があります。

  • 順序値の変更。たとえば、ユーザーがNEXTVALを参照するか、または順序を設定した場合、取得プロセスでは、これらの操作による変更は取得されません。また、複数のデータベースで順序を共有すると、これらのデータベースの個別の行で使用される順序値が異なる場合があります。

  • PL/SQLプロシージャの起動。これは、PL/SQLプロシージャのコールが取得されないことを意味します。ただし、PL/SQLプロシージャのコールによってデータベース・オブジェクトが変更された場合は、それらの変更が取得プロセスのルール・セットを満たせば、取得プロセスでそれらの変更を取得できます。

ノート:

  • XMLに関連するOracle提供パッケージによってデータベース・オブジェクトが変更された場合、これらの変更は、取得プロセスによっては取得されません。

  • Oracle Textに関連するOracle提供パッケージによってデータベース・オブジェクトが変更された場合、これらの変更は、取得プロセスによっては取得されません。

関連項目:

B.1.2.5 SQL操作用のNOLOGGINGおよびUNRECOVERABLEキーワード

SQL操作にNOLOGGINGまたはUNRECOVERABLEキーワードを使用した場合、取得プロセスではSQL操作によって発生する変更は取得できません。

したがって、SQL操作によって発生する変更を取得するために、これらのキーワードを使用しないでください。

ロギング属性を指定しているオブジェクトがFORCE LOGGINGモードのデータベースまたは表領域に存在する場合、Oracle Databaseでは、そのデータベースまたは表領域がFORCE LOGGINGモードでなくなるまでNOLOGGINGまたはUNRECOVERABLE設定は無視されます。データベースの現行のロギング・モードを判別するには、V$DATABASE動的パフォーマンス・ビューのFORCE_LOGGING列を問い合せます。表領域の現在のロギング・モードを判別するには、ALL_TABLESPACES静的データ・ディクショナリ・ビューのFORCE_LOGGING列を問い合せます。

ノート:

UNRECOVERABLEキーワードは非推奨のため、logging_clauseではNOLOGGINGキーワードに置き換えられています。UNRECOVERABLEは下位互換性用にサポートされていますが、可能な場合はNOLOGGINGキーワードを使用することを強くお薦めします。

関連項目:

NOLOGGINGキーワード、UNRECOVERABLEキーワード、FORCE LOGGINGモードおよびlogging_clauseの詳細は、Oracle Database SQL言語リファレンスを参照

B.1.2.6 ダイレクト・パス・ロード用のUNRECOVERABLE句

ダイレクト・パス・ロードでSQL*Loader制御ファイルにUNRECOVERABLE句を使用した場合、ダイレクト・パス・ロードによって発生する変更を取得プロセスでは取得できません。

したがって、ダイレクト・パス・ロードによって発生する変更を取得プロセスで取得する必要がある場合は、UNRECOVERABLE句を使用しないでください。

FORCE LOGGINGモードのデータベースまたは表領域にオブジェクトをロードする場合、Oracle Databaseでは、ダイレクト・パス・ロード時にすべてのUNRECOVERABLE句が無視され、ロードされた変更が記録されます。データベースの現行のロギング・モードを判別するには、V$DATABASE動的パフォーマンス・ビューのFORCE_LOGGING列を問い合せます。表領域の現在のロギング・モードを判別するには、DBA_TABLESPACES静的データ・ディクショナリ・ビューのFORCE_LOGGING列を問い合せます。

関連項目:

ダイレクト・パス・ロードおよびSQL*Loaderの詳細は、Oracle Databaseユーティリティを参照

B.1.3 サプリメンタル・ロギング・データ型の制限事項

いくつかのタイプの列は、サプリメンタル・ログ・グループの一部にはできません。

LOB、LONGLONG RAW、ユーザー定義型(オブジェクト型、REF、VARRAY、ネストした表など)およびOracle提供の型(Any型、XML型、空間型、メディア型など)のデータ型の列は、サプリメンタル・ログ・グループに含めることはできません。

B.1.4 XStream Outでのダウンストリーム取得の操作要件

XStream Outでのダウンストリーム取得の操作要件があります。

ダウンストリーム取得を使用する場合の操作要件は次のとおりです。

  • ソース・データベースがOracle Database 10gリリース2 (10.2)以降を実行している必要があります。

  • ダウンストリーム・データベースでOracle Database 11gリリース2 (11.2.0.3)以降を実行している必要があり、ソース・データベースでOracle Database 10gリリース2 (10.2)以降を実行している必要があります。

  • ソース・サイトおよびダウンストリーム取得サイトのオペレーティング・システムは同じである必要があります。ただし、オペレーティング・システムのリリースが同じである必要はありません。また、ダウンストリーム・サイトでは、ソース・サイトと異なるディレクトリ構造を使用できます。

  • ソース・サイトおよびダウンストリーム取得サイトのハードウェア・アーキテクチャが同じである必要があります。たとえば、ダウンストリーム取得構成では、ソース・データベースが64ビットのSunシステム上に構成されている場合、ダウンストリーム・データベースが64ビットのSunシステム上に構成されている必要があります。CPUの数、メモリー・サイズ、記憶域構成などのその他のハードウェア要素は、ソース・サイトとダウンストリーム・サイトで同じである必要はありません。

B.1.5 取得プロセスではサポートされていないOracle Label Security

取得プロセスでは、Oracle Label Security(OLS)を使用するデータベース・オブジェクトはサポートされません。

B.2 伝播の制限事項

次の制限が伝播に適用されます。

B.2.1 接続修飾子および伝播

伝播で使用されるデータベース・リンクに接続修飾子を指定することはできません。

B.3 アウトバウンド・サーバーの制限

次の制限がアウトバウンド・サーバーに適用されます。

B.3.1 アウトバウンド・サーバーではサポートされていないデータ型

アウトバウンド・サーバーでは、一部のデータ型はサポートされません。

アウトバウンド・サーバーでは、次のデータ型の列のDML変更の結果が含まれている行LCRは処理されません。

  • ROWID

  • ネストした表

  • Oracle提供型: ANYTYPEANYDATASET、URI型、SDO_TOPO_GEOMETRYSDO_GEORASTERおよびExpression

ノート:

XStreamは、可変幅のマルチバイト文字セットのデータベースでは、LONG列をサポートしません。

アウトバウンド・サーバーでは、サポートされていないデータ型の列に関する情報を含む行LCRを処理しようとすると、エラーが発生します。さらに、アウトバウンド・サーバーでは、次のタイプの表に対するDML変更を処理できません。

  • 一時表

  • サポートされていないデータ型を含むオブジェクト表

アウトバウンド・サーバーでは、このような変更を処理しようとすると、エラーが発生します。アウトバウンド・サーバーでは、LCRのエラーが発生すると、LCRを含むトランザクションがエラー・キューに移動されます。

B.3.2 アウトバウンド・サーバーによって無視されるDDL変更のタイプ

アウトバウンド・サーバーでは、一部のタイプのDDL変更はサポートされません。

次のタイプのDDL変更は、アウトバウンド・サーバーによってサポートされていません。

  • ALTER MATERIALIZED VIEW

  • ALTER MATERIALIZED VIEW LOG

  • CREATE DATABASE LINK

  • CREATE SCHEMA AUTHORIZATION

  • CREATE MATERIALIZED VIEW

  • CREATE MATERIALIZED VIEW LOG

  • DROP DATABASE LINK

  • DROP MATERIALIZED VIEW

  • DROP MATERIALIZED VIEW LOG

  • FLASHBACK DATABASE

  • RENAME

アウトバウンド・サーバーでは、処理できない操作を指定するDDL LCRを受信した場合、そのDDL LCRは無視され、無視されたDDLテキストの後に次のメッセージがアウトバウンド・サーバーのトレース・ファイルに記録されます。

Apply process ignored the following DDL:

変更内容を含むDDL LCRをアウトバウンド・サーバーのルール・セットに従って適用する必要がある場合、アウトバウンド・サーバーでは、他のすべてのタイプのDDLの変更が適用されます。

ノート:

  • アウトバウンド・サーバーは、ALTER TABLE jobs RENAMEなど、ALTER object_type object_name RENAMEの変更を処理します。したがって、オブジェクトの名前を変更するDDL変更を処理する場合は、RENAME文のかわりにALTER object_type object_name RENAME文を使用します。

  • マテリアライズド・ビューとは、スナップショットの同義語です。マテリアライズド・ビューでの文に相当するスナップショットは、アウトバウンド・サーバーで無視されます。

B.3.3 アウトバウンド・サーバーに適用できない適用プロセス機能

一部の機能は、アウトバウンド・サーバーでは使用できません。

次の適用プロセス機能は、アウトバウンド・サーバーでは使用できません。

  • 適用ハンドラ

    アウトバウンド・サーバーの適用ハンドラを指定することはできません。かわりに、クライアント・アプリケーションでは、必要に応じてLCRのカスタム処理を実行できます。ただし、アウトバウンド・サーバーと同じデータベースで適用プロセスを構成する場合、これらの適用プロセスの適用ハンドラを指定できます。また、データベースの汎用適用ハンドラを構成できます。アウトバウンド・サーバーでは、汎用適用ハンドラは無視されます。

  • 次の適用パラメータ:

    • allow_duplicate_rows

    • commit_serialization

    • compare_key_only

    • disable_on_error

    • parallelism

    • preserve_encryption

    • rtrim_on_implicit_conversion

    アウトバウンド・サーバーでは、これらの適用パラメータの設定は無視されます。

    commit_serializationパラメータは、アウトバウンド・サーバーでは常にFULLに設定され、parallelismパラメータは、アウトバウンド・サーバーでは常に1に設定されます。

  • 適用タグ

    アウトバウンド・サーバーでは、処理対象の変更に対する適用タグは設定できません。

  • 適用データベース・リンク

    アウトバウンド・サーバーでは、データベース・リンクを使用できません。

  • 競合の検出および解決

    アウトバウンド・サーバーでは競合は検出されず、アウトバウンド・サーバーに対して競合解消を設定できません。

  • 依存性スケジューリング

    並列度が1である必要があるため、アウトバウンド・サーバーでは依存性は評価されません。

  • 代替キー列設定

    アウトバウンド・サーバーでは、代替キー列の設定は無視されます。

  • DBMS_APPLY_ADMパッケージのSET_ENQUEUE_DESTINATIONプロシージャによって指定されたエンキュー・ディレクティブ

    アウトバウンド・サーバーでは、SET_ENQUEUE_DESTINATIONプロシージャを使用して自動的にOracleデータベース・キューに変更をエンキューできません。

  • DBMS_APPLY_ADMパッケージのSET_EXECUTEプロシージャによって指定された実行ディレクティブ

    アウトバウンド・サーバーでは、実行ディレクティブは無視されます。

  • エラーの作成および実行

    エラーが発生したときにアウトバウンド・サーバーでエラー・トランザクションは作成されません。ALL_APPLYビューにエラーに関する情報が記録されますが、トランザクションはエラー・キューにエンキューされません。

B.4 XStream Outのルールの制限事項

ルールには制限事項があります。

B.4.1 サブセット・ルールの制限

サブセット・ルールには制限事項があります。

サブセット・ルールには次の制限が適用されます。

  • サブセット・ルールで参照される表名の表が、サブセット・ルールと同じデータベースに存在する必要があります。また、この表は、サブセット・ルールで表に関して参照されるスキーマと同じスキーマに存在する必要があります。

  • サブセット・ルールが取得プロセスのポジティブ・ルール・セットに含まれる場合、表には、サブセット条件で指定した列が含まれている必要があります。これらの各列のデータ型はソース・データベースの対応する列のデータ型と一致する必要があります。

  • サブセット・ルールが伝播のポジティブ・ルール・セットに含まれる場合、表には、サブセット条件で指定した列が含まれている必要があります。各列のデータ型は、サブセット・ルールでTRUEと評価された行LCRの対応する列のデータ型と一致する必要があります。

  • LOB、LONGLONG RAW、ネストされた表およびOracle提供の型(Any型、XML型、空間型、メディア型など)のデータ型の列が1つ以上存在する表に対してサブセット・ルールを作成することはできません。

関連項目:

B.5 XStream Outのルールベースの変換の制限事項

次の制限がXStream Outのルールベースの変換に適用されます。

B.5.1 宣言ルールベースの変換ではサポートされていないデータ型

列の追加の変換を除き、列に対して実行される宣言ルールベースの変換では、取得プロセスでサポートされているものと同じデータ型がサポートされています。

列の追加の変換では、データ型がBLOBCLOBNCLOBBFILELONGLONG RAWROWID、ネストされた表およびオラクル社提供の型(Any型、XML型、空間型、メディア型など)である列は追加できません。

次のタイプの宣言ルールベースの変換では拡張データ型列を使用できません。

  • 列の追加

  • 列の保持

B.6 XStream Outの拡張データ型の制限事項

XStream Outには拡張データ型に関する制限事項があります。

COMPATIBLE初期化パラメータを12.0.0に、MAX_STRING_SIZE初期化パラメータをEXTENDEDに設定している場合、Oracle Database 12cではVARCHAR2NVARCHAR2およびRAWの各データ型の最大サイズが大きくなりました。XStream Outではこれらの拡張データ型がサポートされます。

ただし、次のような制限が拡張データ型に適用されます。

  • データ操作言語(DML)操作の元のLCRには、拡張データ型の列に関する情報が含まれていない場合があります。かわりに、XStream Outでは、LOB列を処理する場合と同様の方法で拡張データ型の列を処理する場合があります。具体的には、追加のLCRに拡張データ型列の情報が含まれる場合があります。

  • XStreamのルールから拡張データ型列に関するLCR内のデータにはアクセスできません。

  • サブセット・ルール句では拡張データ型列を指定できません。

  • 次のタイプの宣言ルールベースの変換では拡張データ型列を使用できません。

    • 列の追加

    • 列の保持

関連項目:

拡張データ型の詳細は、Oracle Database SQL言語リファレンスを参照