B Oracle Streamsの制限事項

この付録では、Oracle Streamsの制限事項について説明します。

内容は次のとおりです。

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

この項では、取得プロセスの制限事項について説明します。

この項の内容は次のとおりです。

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

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

  • BFILE

  • ROWID

  • ユーザー定義型(オブジェクト型、REF、VARRAY、ネストした表など)

  • オブジェクト・リレーショナルまたはバイナリXMLとして格納されているXMLType

  • Oracle提供のAny型、URI型、空間型、メディア型

  • 4000バイトを超える、VARCHAR2およびNVARCHAR2の拡張データ型

  • 2000バイトを超える、RAWの拡張データ型

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

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

取得プロセスで、サポートされていないデータ型の列へのDML変更に関して行LCRを作成しようとすると、エラーが発生します。エラーが発生すると、取得プロセスはエラーの原因となったLCRをトレース・ファイルに書き込み、ORA-26744エラーを生成した後で無効になります。この場合は、エラーを回避するように、取得プロセスで使用されるルールを変更してから、取得プロセスを再起動します。

追加のデータ型をサポートするようにOracle Streamsを構成できます。手順については、Webブラウザを使用してMy Oracle Support (旧OracleMetaLink) Webサイトを参照してください。

http://support.oracle.com/

Oracle Streamsの追加のデータ型のサポートについては、データベース掲示板556742.1で説明されています。

注意:

取得プロセスのネガティブ・ルール・セットに、サポートされていないデータ型の列を含む表への変更を廃棄するように取得プロセスに指示するルールを追加できます。ただし、これらのルールが単純なルールではない場合、取得プロセスは変更に対する行LCRを作成して、処理を続行することがあります。この場合、変更が取得プロセスで使用されるルール・セットの条件を満たさなくても、サポートされないデータ型を含む変更のために、取得プロセスでエラーが発生することがあります。DBMS_STREAMS_ADMパッケージでは単純なルールのみを作成できます。

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

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

取得プロセスでは、一時表またはオブジェクト表に加えられたDML変更は取得できません。

注意:

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

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

B.1.2.3 取得プロセスではサポートされていない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は無視され、そのDDL LCRに関する情報が適用プロセスのトレース・ファイルに記録されます。

構文にタイムスタンプまたはシステム変更番号(SCN)値が指定されたDDL変更が取得プロセスによって取得された場合は、この変更をデキューする適用プロセスのDDLハンドラを構成します。DDLハンドラは、タイムスタンプまたはSCN値を適切に処理する必要があります。たとえば、特定の表に対するDDL変更を取得するようにルール・セットで指定されている場合はFLASHBACK TABLE文が取得されます。FLASHBACK TABLE文の構文には、タイムスタンプまたはSCN値が指定されます。

関連項目:

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提供パッケージによってデータベース・オブジェクトが変更された場合、これらの変更は、取得プロセスによっては取得されません。XMLに関連するパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

  • Oracle Textに関連するOracle提供パッケージによってデータベース・オブジェクトが変更された場合、これらの変更は、取得プロセスによっては取得されません。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列を問い合せます。表領域の現在のロギング・モードを判別するには、DBA_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句を使用しないでください。

ソース・データベースで変更を記録せずにダイレクト・パス・ロードを実行し、ソース・データベースの宛先データベースで同様のダイレクト・パス・ロードを実行しない場合、ソース・データベースのロード済オブジェクトに対して変更が行われると、これらの宛先データベースで適用エラーが発生することがあります。この場合、ソース・データベースの取得プロセスによってこれらのオブジェクトに対する変更を取得し、1つ以上の伝播によってそれらの変更を宛先データベースに伝播できます。適用プロセスによってこれらの変更の適用が試行された場合、変更されたオブジェクトとそのオブジェクト内の変更された行が宛先データベースに存在していないと、エラーが発生します。

したがって、ダイレクト・パス・ロードでUNRECOVERABLE句を使用し、ロード済オブジェクトに対する変更を取得するように取得プロセスが構成されている場合は、適用エラーを回避するために、すべての宛先データベースにロード済オブジェクトとロード済データが含まれていることを確認してください。宛先データベースにこれらのオブジェクトが存在するかどうかを確認する方法の1つとして、ソース・データベースで実行したダイレクト・パス・ロードと同様のダイレクト・パス・ロードを、これらの宛先データベースそれぞれで実行する方法があります。

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 ダウンストリーム取得の操作要件

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

  • ソース・データベースでOracle Database 10g以上が実行されており、ダウンストリーム取得データベースで、ソース・データベースのリリース以上のOracle Databaseが実行されている必要があります。

  • リアルタイム・ダウンストリーム取得を構成するには、ダウンストリーム・データベースでOracle Database 10gリリース2以上が実行されている必要があります。この場合、ソース・データベースでOracle Database 10gリリース1以上が実行されている必要があります。

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

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

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

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

B.1.6 Oracle Streams適用プロセスと取得プロセスの相互運用性

Oracle Database 11g リリース2 (11.2)以上の適用プロセスによって処理される変更を取得する場合、取得プロセスはOracle9i リリース2 (9.2.0.6)以上である必要があります。取得プロセスのリリースにおけるデータ型の制限事項は、取得プロセスのソース・データベースで適用されます。

関連項目:

以前のリリースでの取得プロセスと適用プロセスのデータ型の制限事項については、そのOracle DatabaseリリースのOracle Streamsのマニュアルを参照

B.2 同期取得の制限事項

この項では、同期取得の制限事項について説明します。

この項の内容は次のとおりです。

B.2.1 表ルールのみを使用する同期取得

同期取得は、DBMS_STREAMS_ADMパッケージ内のプロシージャで作成された表ルールのみを使用します。同期取得は、スキーマ・ルール、グローバル・ルール、およびDBMS_RULE_ADMパッケージ内のプロシージャで作成されたルールを無視します。

関連項目:

同期取得のルール

B.2.2 同期取得ではサポートされていないデータ型

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

  • LONG

  • LONG RAW

  • CLOB

  • NCLOB

  • BLOB

  • BFILE

  • ROWID

  • ユーザー定義型(オブジェクト型、REF、VARRAY、ネストした表など

  • Oracle提供の型(Any型、XML型、空間型、メディア型など)

  • 4000バイトを超える、VARCHAR2およびNVARCHAR2の拡張データ型

  • 2000バイトを超える、RAWの拡張データ型

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

同期取得では、サポートされていないデータ型の列が含まれている表に対するDML変更に対して行LCRを作成しようとすると、エラーが発生します。ユーザーにORA-25341エラーが戻され、DML変更は行われません。エラーが発生しないようにするには、同期取得で使用されるルールを変更します。

注意:

  • 同期取得で取得される変更のタイプは、ポジティブ・ルール・セットのルールによって決定されます。エラーが発生しないようにするには、サポートされていないデータ型の表に対する変更が同期取得で取得されないようにこれらのルールが指定されていることを確認します。

  • サポートされていない列が含まれている表に対する変更を取得できるように同期取得を構成することもできます。この場合は、関連する同期取得ルールにDELETE_COLUMN宣言ルールベースの変換を指定して、サポートされていない列を削除します。

関連項目:

B.2.3 同期取得ではサポートされていない変更

この項では、同期取得でサポートされていない変更について説明します。

この項の内容は次のとおりです。

B.2.3.1 同期取得ではサポートされていないスキーマ

同期取得では、次のスキーマに対して行われた変更は取得されません。

  • CTXSYS

  • DBSNMP

  • DMSYS

  • DVSYS

  • EXFSYS

  • LBACSYS

  • MDDATA

  • MDSYS

  • OLAPSYS

  • ORDDATA

  • ORDPLUGINS

  • ORDSYS

  • OUTLN

  • SI_INFORMTN_SCHEMA

  • SYS

  • SYSMAN

  • SYSTEM

  • WMSYS

  • XDB

B.2.3.2 同期取得ではサポートされていない表タイプ

同期取得では、一時表、オブジェクト表またはハイブリッド列圧縮によって圧縮された表に加えられたDML変更は取得できません。

注意:

基本表圧縮または高度な行圧縮によって圧縮された表に対する変更を同期取得で取得できるのは、データベースの互換性レベルが11.2.0.0.0以上に設定されている場合です。

B.2.3.3 同期取得によって無視される変更

同期取得によって無視される変更のタイプは次のとおりです。

  • DDL変更。

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

  • システム制御文ALTER SYSTEM

  • 同期取得では、CALLEXPLAIN PLANまたはLOCK TABLE文は無視されます。

  • ダイレクト・パス・ロードによって行われた変更。

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

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

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

注意:

  • XMLに関連するOracle提供パッケージによって、データベース・オブジェクトが変更された場合、これらの変更は、同期取得によっては取得されません。XMLに関連するパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

  • Oracle Textに関連するOracle提供パッケージによってデータベース・オブジェクトが変更された場合、これらの変更は、同期取得によっては取得されません。Oracle Textに関連するパッケージの詳細は、『Oracle Textリファレンス』を参照してください。

関連項目:

様々なデータベースの異なる2つの行で順序生成値が同一になることを回避する方針の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照

B.2.4 同期取得ルールおよびDBMS_STREAMS_ADMパッケージ

DBMS_RULE_ADMパッケージを使用して同期取得のルール・セットを作成できますが、同期取得の動作はDBMS_STREAMS_ADMパッケージを使用して作成されたルールのみによって決定されます。同期取得ではDBMS_RULE_ADMパッケージによって作成されたルールは無視されます。

B.2.5 同期取得ではサポートされていないOracle Label Security

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

B.3 キューの制限事項

この項では、キューの制限事項について説明します。

この項の内容は次のとおりです。

関連項目:

キュー

B.3.1 ANYDATAキューの明示的エンキューの制限事項

次の型のペイロードを含むANYDATAペイロードはANYDATAキューに明示的にエンキューできません。

  • CLOB

  • NCLOB

  • BLOB

  • LOB属性を含むオブジェクト型

  • 型進化または型継承を使用するオブジェクト型

注意:

ROWIDデータ型のペイロードはANYDATAラッパーでラップできません。この制約はUROWIDデータ型のペイロードには適用されません。

関連項目:

B.3.2 バッファ・メッセージ機能の制限事項

バッファ・メッセージ機能を使用するには、Oracle Databaseの互換性レベルが10.2.0以上である必要があります。

DBMS_STREAMS_MESSAGINGパッケージを使用して、バッファ・キューへのメッセージのエンキューおよびバッファ・キューからのメッセージのデキューを行うことはできません。ただし、DBMS_AQパッケージではバッファ・メッセージのエンキューとデキューがサポートされています。

B.3.3 トリガーおよびキュー表

パフォーマンスに悪影響を与える可能性があるので、キュー表でのトリガーの使用はお薦めしません。索引構成キュー表でのトリガーもサポートされていません。

B.4 伝播の制限事項

この項では、伝播の制限事項について説明します。

この項の内容は次のとおりです。

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

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

B.4.2 伝播のキャラクタ・セットの制限事項

伝播によって、オブジェクト型、VARRAYまたはネストした表のペイロードをカプセル化したANYDATAメッセージをデータベース間で伝播できるのは、それらのデータベースで同じキャラクタ・セットを使用している場合のみです。

伝播では、同じキャラクタ・セットまたは異なるキャラクタ・セットのデータベース間で論理変更レコード(LCR)を伝播できます。

B.4.3 キュー・ツー・キュー伝播の互換性要件

キュー・ツー・キュー伝播を使用するには、伝播に使用されるキューが含まれる各データベースの互換レベルが10.2.0以上である必要があります。

B.5 適用プロセスの制限事項

この項では、適用プロセスの制限事項について説明します。

この項の内容は次のとおりです。

B.5.1 適用プロセスではサポートされていないデータ型

適用プロセスは、次のデータ型の列にはDML変更の結果を含む行LCRを適用しません。

  • BFILE

  • ROWID

  • ユーザー定義型(オブジェクト型、REF、VARRAY、ネストした表など)

  • オブジェクト・リレーショナルまたはバイナリXMLとして格納されているXMLType

  • Oracle提供のAny型、URI型、空間型、メディア型

  • 4000バイトを超える、VARCHAR2およびNVARCHAR2の拡張データ型

  • 2000バイトを超える、RAWの拡張データ型

サポートされていないデータ型の列に関する情報を含む行LCRを適用しようとすると、適用プロセスにエラーが発生します。また、適用プロセスでは、一時表またはオブジェクト表に対するDML変更を適用できません。このような変更を適用しようとすると、適用プロセスにエラーが発生します。適用プロセスでは、LCRのエラーが発生すると、LCRを含むトランザクションがエラー・キューに移動されます。

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

追加のデータ型をサポートするようにOracle Streamsを構成できます。手順については、Webブラウザを使用してMy Oracle Support (旧OracleMetaLink) Webサイトを参照してください。

http://support.oracle.com/

Oracle Streamsの追加のデータ型のサポートについては、データベース掲示板556742.1で説明されています。

関連項目:

適用されるデータ型

B.5.2 適用ハンドラではサポートされていないデータ型

文DMLハンドラでは、行LCRのLONGLONG RAWまたはアセンブルされていないLOB列データは処理できません。ただし、文DMLハンドラでは、LOBアセンブリで構築された行LCRのLOB列データは処理できます。LOBアセンブリは、文DMLハンドラに対してデフォルトで有効になっています。

プロシージャDMLハンドラおよびエラー・ハンドラでは、行LCRのLONGまたはLONG RAWの列データは処理できません。ただし、プロシージャDMLハンドラおよびエラー・ハンドラでは、行LCRのアセンブルされていないLOB列データとアセンブルされたLOB列データの両方を処理できますが、アセンブルされていないLOB列データは変更できません。

関連項目:

B.5.3 適用プロセスによって無視される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.5.4 Oracle Streams環境におけるデータベース構造

取得されたDDL変更が宛先データベースで適切に適用されるためには、宛先データベースの構造がソース・データベースと同じであるか、DDL文に指定されているデータベース構造情報が同じである必要があります。データベース構造には、データファイル、表領域、ロールバック・セグメントと、データベース・オブジェクトをサポートするその他の物理構造および論理構造が含まれます。

たとえば、表に対して取得されたDDL変更が宛先データベースで適切に適用されるためには、次の条件を満たす必要があります。

  • CREATE TABLE文には、ソース・データベースおよび宛先データベースで同じ記憶域パラメータを指定する必要があります。

  • DDL文が特定の表領域またはロールバック・セグメントを参照する場合、その表領域またはロールバック・セグメントには、ソース・データベースおよび宛先データベースで同じ名前および同じ互換性の指定が必要です。

    ただし、表領域およびロールバック・セグメントがDDL文に指定されていない場合は、デフォルトの表領域およびロールバック・セグメントが使用されます。この場合、表領域およびロールバック・セグメントは、ソース・データベースと宛先データベースで異なることがあります。

  • ソース・データベースおよび宛先データベースで同じパーティションの指定が使用される必要があります。

B.5.5 宛先データベースに存在する必要がある現行スキーマ・ユーザー

DDL LCRが宛先データベースで正常に適用されるためには、DDL LCRのcurrent_schemaとして指定されるユーザーは、宛先データベースに存在する必要があります。現行スキーマは、DDLテキストでオブジェクトにスキーマが指定されていない場合に使用されるスキーマです。

関連項目:

B.5.6 適用プロセスではサポートされていないOracle Label Security

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

B.5.7 Oracle Streams取得コンポーネントと適用プロセスの相互運用性

Oracle Database 11g リリース2 (11.2)以上の取得プロセスで取得される変更を処理する場合、適用プロセスはOracle9i リリース2 (9.2.0.6)以上である必要があります。適用プロセスのリリースにおけるデータ型の制限事項は、適用プロセス・データベースで適用されます。

Oracle Database 11g リリース2(11.2)以上の同期取得で取得される変更を処理する場合、適用プロセスはOracle Database 11g リリース1(11.1)以上である必要があります。適用プロセスのリリースにおけるデータ型の制限事項は、適用プロセス・データベースで適用されます。

関連項目:

以前のリリースでの適用プロセスのデータ型の制限事項については、そのOracle DatabaseリリースのOracle Streamsのマニュアルを参照してください。

B.6 メッセージ・クライアントの制限事項

この項では、メッセージ・クライアントの制限事項について説明します。

この項の内容は次のとおりです。

B.6.1 メッセージ・クライアントおよびバッファ・メッセージ

メッセージ・クライアントはバッファ・メッセージをデキューできません。ただし、DBMS_AQパッケージではバッファ・メッセージのエンキューとデキューがサポートされています。

関連項目:

DBMS_AQパッケージに関する情報は『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照

B.7 ルールの制限事項

この項では、ルールの制限事項について説明します。

この項の内容は次のとおりです。

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

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

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

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

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

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

関連項目:

B.7.2 アクション・コンテキストの制限事項

アクション・コンテキストには、次のデータ型の情報を含めることはできません。

  • CLOB

  • NCLOB

  • BLOB

  • LONG

  • LONG RAW

  • 4000バイトを超える、VARCHAR2およびNVARCHAR2の拡張データ型

  • 2000バイトを超える、RAWの拡張データ型

また、アクション・コンテキストには、これらのデータ型の属性を持つオブジェクト型、および型進化や型継承を使用するオブジェクト型を含めることはできません。

B.7.3 データ型の制限

次のデータ型の制限が適用されます。

  • 拡張データ型VARCHAR2(32K)の列は、ルールで参照できません。

B.8 ルールベースの変換の制限事項

この項では、ルールベースの変換の制限事項について説明します。

この項の内容は次のとおりです。

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

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

列の追加の変換では、BLOBCLOBNCLOBBFILELONGLONG RAWROWID、ユーザー定義型(オブジェクト型、REF、VARRAY、ネストした表など)、Oracle提供の型(Any型、XML型、空間型、メディア型など)、およびVARCHAR2NVARCHAR2またはRAWの拡張データ型のデータ型の列は追加できません。

B.8.2 カスタム・ルールベースの変換ではサポートされていないデータ型

LONGLONG RAW、アセンブルされていないLOB列データまたはXMLTypeデータは、カスタム・ルールベースの変換ファンクションでは変更しないでください。

B.9 Oracle StreamsでのOracle Multitenantオプションの制限事項

Oracle Streamsは、マルチテナント・コンテナ・データベース(CDB)またはプラガブル・データベース(PDB)で使用できません。