BXStream Outの制限事項

XStream Outには制限事項があります。

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

取得プロセスには制限事項があります。

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

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

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

  • BFILE

  • 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操作を取得プロセスで取得する場合に、そのINSERT操作にオブジェクト・リレーショナルまたはバイナリXMLとして格納されているXMLTypeの列が含まれていると、エラーが発生します。

関連項目:

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が処理されません。

  • BFILE

  • 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変更は、変更を含むDDL LCRをアウトバウンド・サーバーのルール・セットに従って適用する必要がある場合にアウトバウンド・サーバーによって適用されます。

注意:

  • アウトバウンド・サーバーでは、ALTER object_type object_name RENAME変更が処理されます(ALTER TABLE jobs 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、ネストした表およびOracle提供型(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言語リファレンスを参照してください。