BXStream Outの制限事項
XStream Outには制限事項があります。
- 取得プロセスの制限事項
取得プロセスには制限事項があります。 - 伝播の制限事項
伝播には制限事項があります。 - アウトバウンド・サーバーの制限事項
アウトバウンド・サーバーには制限事項があります。 - XStream Outのルールの制限事項
ルールには制限事項があります。 - XStream Outのルールベースの変換の制限事項
XStream Outのルールベースの変換には制限事項があります。 - 拡張データ型に関するXStream Outの制限事項
XStream Outには拡張データ型に関する制限事項があります。
B.1 取得プロセスの制限事項
取得プロセスには制限事項があります。
- 取得プロセスではサポートされていないデータ型
取得プロセスでは一部のデータ型がサポートされません。 - 取得プロセスではサポートされていない変更
取得プロセスでは一部の変更がサポートされません。 - サプリメンタル・ロギング・データ型の制限事項
一部のタイプの列は、サプリメンタル・ログ・グループに含めることができません。 - XStream Outでのダウンストリーム取得の操作要件
XStream Outでのダウンストリーム取得には操作要件があります。 - 取得プロセスではサポートされていないOracle Label Security
取得プロセスでは、Oracle Label Security (OLS)を使用するデータベース・オブジェクトがサポートされません。
B.1.1 取得プロセスではサポートされていないデータ型
取得プロセスでは一部のデータ型がサポートされません。
取得プロセスは、次のデータ型の列に対するDML変更の結果は取得しません。
-
BFILE
-
ROWID
-
ネストした表
-
Oracle提供型:
ANYTYPE
、ANYDATASET
、URI型、SDO_TOPO_GEOMETRY
、SDO_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の列が含まれていると、エラーが発生します。
関連項目:
-
取得プロセス・パラメータ
ignore_unsupported_table
の詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照してください。 -
SecureFiles LOB列に関するLogMinerの制限事項の詳細は、Oracle Databaseユーティリティを参照してください。
-
データベースの互換性の詳細は、『Oracle Databaseアップグレード・ガイド』を参照
B.1.2 取得プロセスではサポートされていない変更
取得プロセスでは一部の変更がサポートされません。
- 取得プロセスではサポートされていないスキーマ
取得プロセスでは一部のスキーマがサポートされません。 - 取得プロセスではサポートされていない表タイプ
取得プロセスでは一部の表タイプがサポートされません。 - 取得プロセスではサポートされていないDDL変更
取得プロセスでは、一部のデータ定義言語(DDL)変更がサポートされません。 - 取得プロセスによって無視される変更
取得プロセスでは、一部のタイプの変更が無視されます。 - SQL操作用のNOLOGGINGおよびUNRECOVERABLEキーワード
SQL操作にNOLOGGING
キーワードまたはUNRECOVERABLE
キーワードを使用した場合は、SQL操作によって発生した変更を取得プロセスで取得できません。 - ダイレクト・パス・ロード用のUNRECOVERABLE句
ダイレクト・パス・ロードでSQL*Loader制御ファイルにUNRECOVERABLE
句を使用した場合は、ダイレクト・パス・ロードによって発生する変更を取得プロセスで取得できません。
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以上に設定されていることが必要です。
関連項目:
-
圧縮表の詳細は、Oracle Database管理者ガイドを参照
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
。 -
CALL
、EXPLAIN
PLAN
およびLOCK
TABLE
文。 -
ビューに対する
GRANT
文。 -
DBMS_REDEFINITION
パッケージを使用して、オンライン再定義によって表またはスキーマに対して行われた変更。取得プロセスが変更を取得する表では、オンラインで表を再定義できますが、表の論理構造は、オンライン再定義前とオンライン再定義後とで同一の構造である必要があります。 -
順序値の変更。たとえば、ユーザーが
NEXTVAL
を参照するか、または順序を設定した場合、取得プロセスでは、これらの操作による変更は取得されません。また、複数のデータベースで順序を共有すると、これらのデータベースの個別の行で使用される順序値が異なる場合があります。 -
PL/SQLプロシージャの起動。これは、PL/SQLプロシージャのコールが取得されないことを意味します。ただし、PL/SQLプロシージャのコールによってデータベース・オブジェクトが変更された場合、その変更は、取得プロセスのルール・セットを満たしていれば取得プロセスで取得できます。
注意:
-
XMLに関連するOracle提供パッケージによってデータベース・オブジェクトが変更された場合、これらの変更は、取得プロセスによっては取得されません。
-
Oracle Textに関連するOracle提供パッケージによってデータベース・オブジェクトが変更された場合、これらの変更は、取得プロセスによっては取得されません。
関連項目:
-
XMLに関連するパッケージの詳細は、 Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照してください。
-
Oracle Textに関連するパッケージの詳細は、Oracle Textリファレンスを参照してください。
-
別々のデータベースにある2つの異なる行で順序生成値が同一にならないようにするための方針については、Oracle Streamsレプリケーション管理者ガイドを参照
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、LONG
、LONG
RAW
、ユーザー定義型(オブジェクト型、REF
、VARRAY、ネストした表など)およびOracle提供の型(Any
型、XML型、空間型、メディア型など)のデータ型の列は、サプリメンタル・ログ・グループに含めることはできません。
関連項目:
-
データ型の詳細は、Oracle Database SQL言語リファレンスを参照してください。
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.3 アウトバウンド・サーバーの制限事項
アウトバウンド・サーバーには制限事項があります。
- アウトバウンド・サーバーではサポートされていないデータ型
アウトバウンド・サーバーでは一部のデータ型がサポートされません。 - アウトバウンド・サーバーによって無視されるDDL変更のタイプ
アウトバウンド・サーバーでは一部のタイプのDDL変更がサポートされません。 - アウトバウンド・サーバーには適用できない適用プロセスの機能
アウトバウンド・サーバーでは一部の機能を使用できません。
B.3.1 アウトバウンド・サーバーではサポートされていないデータ型
アウトバウンド・サーバーでは一部のデータ型がサポートされません。
アウトバウンド・サーバーでは、次のデータ型の列でのDML変更の結果が格納されている行LCRが処理されません。
-
BFILE
-
ROWID
-
ネストした表
-
Oracle提供型:
ANYTYPE
、ANYDATASET
、URI型、SDO_TOPO_GEOMETRY
、SDO_GEORASTER
およびExpression
注意:
XStreamは、可変幅のマルチバイト・キャラクタ・セットのデータベースでは、LONG
列をサポートしません。
サポートされないデータ型の列に関する情報を含む行LCRを処理しようとすると、アウトバウンド・サーバーでエラーが発生します。また、アウトバウンド・サーバーでは、次のタイプの表に対するDML変更を処理できません。
-
一時表
-
サポートされていないデータ型を含むオブジェクト表
アウトバウンド・サーバーでこのような変更を処理しようとすると、エラーが発生します。アウトバウンド・サーバーでLCRのエラーが発生すると、LCRを含むトランザクションがエラー・キューに移動されます。
関連項目:
-
データ型の詳細は、Oracle Database SQL言語リファレンスを参照してください。
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、
LONG
、LONG
RAW
、ネストした表およびOracle提供型(Any
型、XML型、空間型、メディア型など)のデータ型の列が1つ以上存在する表には、サブセット・ルールを作成できません。
関連項目:
-
データ型の詳細は、Oracle Database SQL言語リファレンスを参照してください。
B.5 XStream Outのルールベースの変換の制限事項
XStream Outでのルールベースの変換には制限事項があります。
- 宣言ルールベースの変換ではサポートされていないデータ型
列の追加の変換を除き、列に対して実行される宣言ルールベースの変換では取得プロセスでサポートされているものと同じデータ型がサポートされます。
関連項目:
B.5.1 宣言ルールベースの変換でサポートされないデータ型
列の追加の変換を除き、列に対して実行される宣言ルールベースの変換では、取得プロセスでサポートされているものと同じデータ型がサポートされます。
列の追加の変換では、次のデータ型の列を追加できません: BLOB
、CLOB
、NCLOB
、BFILE
、LONG
、LONG
RAW
、ROWID
、ネストした表およびOracle提供型(Any
型、XML型、空間型、メディア・タイプなど)。
次のタイプの宣言ルールベースの変換では拡張データ型列を使用できません。
-
列の追加
-
列の保持
関連項目:
-
データ型の詳細は、Oracle Database SQL言語リファレンスを参照してください。
B.6 拡張データ型に関するXStream Outの制限事項
XStream Outには拡張データ型に関する制限事項があります。
COMPATIBLE
初期化パラメータを12.0.0
に、MAX_STRING_SIZE
初期化パラメータをEXTENDED
に設定している場合、Oracle Database 12cではVARCHAR2
、NVARCHAR2
およびRAW
の各データ型の最大サイズが大きくなりました。XStream Outではこれらの拡張データ型がサポートされます。
ただし、拡張データ型については次の制限事項があります。
-
データ操作言語(DML)操作の元のLCRには、拡張データ型の列に関する情報が含まれていない場合があります。かわりに、XStream Outでは拡張データ型列がLOB列と同じように処理される場合があります。具体的には、追加のLCRに拡張データ型列の情報が含まれる場合があります。
-
XStreamのルールから拡張データ型列に関するLCR内のデータにはアクセスできません。
-
サブセット・ルール句では拡張データ型列を指定できません。
-
次のタイプの宣言ルールベースの変換では拡張データ型列を使用できません。
-
列の追加
-
列の保持
-
関連項目:
拡張データ型の詳細は、Oracle Database SQL言語リファレンスを参照してください。