B 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
パッケージでは単純なルールのみを作成できます。
関連項目:
-
単純ルールの詳細は、「単純ルール条件」を参照
-
データ型の詳細は、『Oracle Database SQL言語リファレンス』を参照
-
SecureFiles LOB列に関するLogMinerの制限事項の詳細は、『Oracle Databaseユーティリティ』を参照
-
データベースの互換性の詳細は、『Oracle Databaseアップグレード・ガイド』を参照
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以上に設定されていることです。
関連項目:
-
圧縮表の詳細は、『Oracle Database管理者ガイド』を参照
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値が指定されます。
関連項目:
-
適用プロセスによるDDL変更の適用の詳細は、「DDL変更を適用するときの考慮事項」を参照
-
Oracle Streamsクライアントのルール・セット、およびメッセージがルール・セットを満たす仕組みの詳細は、「Oracle Streamsでのルールの使用方法」を参照
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提供パッケージによってデータベース・オブジェクトが変更された場合、これらの変更は、取得プロセスによっては取得されません。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、LONG
、LONG
RAW
、ユーザー定義型(オブジェクト型、REF
、VARRAY、ネストした表など)およびOracle提供の型(Any
型、XML型、空間型、メディア型など)のデータ型の列は、サプリメンタル・ログ・グループに含めることはできません。
関連項目:
-
データ型の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
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.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
宣言ルールベースの変換を指定して、サポートされていない列を削除します。
関連項目:
-
Oracle Streamsクライアントのルール・セット、およびメッセージがルール・セットを満たす仕組みの詳細は、「Oracle Streamsでのルールの使用方法」を参照
-
データ型の詳細は、『Oracle Database SQL言語リファレンス』を参照
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
。 -
同期取得では、
CALL
、EXPLAIN
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.3 キューの制限事項
B.3.1 ANYDATAキューの明示的エンキューの制限事項
次の型のペイロードを含むANYDATA
ペイロードはANYDATA
キューに明示的にエンキューできません。
-
CLOB
-
NCLOB
-
BLOB
-
LOB属性を含むオブジェクト型
-
型進化または型継承を使用するオブジェクト型
注意:
ROWID
データ型のペイロードはANYDATA
ラッパーでラップできません。この制約はUROWID
データ型のペイロードには適用されません。
関連項目:
-
ANYDATA
ラッパーでのペイロードのラップ、ANYDATA
キューへのメッセージのエンキューおよびデキューのためのプログラム的な環境、伝播およびユーザー定義型など、ANYDATA
キューの関連情報については、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』 を参照 -
ANYDATA
タイプの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照 -
データ・タイプの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
B.3.2 バッファ・メッセージ機能の制限事項
バッファ・メッセージ機能を使用するには、Oracle Databaseの互換性レベルが10.2.0
以上である必要があります。
DBMS_STREAMS_MESSAGING
パッケージを使用して、バッファ・キューへのメッセージのエンキューおよびバッファ・キューからのメッセージのデキューを行うことはできません。ただし、DBMS_AQ
パッケージではバッファ・メッセージのエンキューとデキューがサポートされています。
関連項目:
-
DBMS_AQ
パッケージに関する情報は『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照
B.4 伝播の制限事項
この項では、伝播の制限事項について説明します。
この項の内容は次のとおりです。
関連項目:
B.4.2 伝播のキャラクタ・セットの制限事項
伝播によって、オブジェクト型、VARRAYまたはネストした表のペイロードをカプセル化したANYDATA
メッセージをデータベース間で伝播できるのは、それらのデータベースで同じキャラクタ・セットを使用している場合のみです。
伝播では、同じキャラクタ・セットまたは異なるキャラクタ・セットのデータベース間で論理変更レコード(LCR)を伝播できます。
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のLONG
、LONG
RAW
またはアセンブルされていないLOB列データは処理できません。ただし、文DMLハンドラでは、LOBアセンブリで構築された行LCRのLOB列データは処理できます。LOBアセンブリは、文DMLハンドラに対してデフォルトで有効になっています。
プロシージャDMLハンドラおよびエラー・ハンドラでは、行LCRのLONG
またはLONG
RAW
の列データは処理できません。ただし、プロシージャDMLハンドラおよびエラー・ハンドラでは、行LCRのアセンブルされていないLOB列データとアセンブルされたLOB列データの両方を処理できますが、アセンブルされていないLOB列データは変更できません。
関連項目:
-
LOBアセンブリの詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照
-
データ・タイプの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
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テキストでオブジェクトにスキーマが指定されていない場合に使用されるスキーマです。
関連項目:
-
データベース構造の詳細は、『Oracle Database概要』を参照
-
DDL LCRの
current_schema
属性の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照
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、
LONG
、LONG
RAW
、ユーザー定義型(オブジェクト型、REF
、VARRAY、ネストした表など)およびOracle提供の型(Any
型、XML型、空間型、メディア型など)のデータ型の列が1つ以上存在する表に対してサブセット・ルールを作成することはできません。
関連項目:
-
データ・タイプの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
B.7.2 アクション・コンテキストの制限事項
アクション・コンテキストには、次のデータ型の情報を含めることはできません。
-
CLOB
-
NCLOB
-
BLOB
-
LONG
-
LONG
RAW
-
4000バイトを超える、
VARCHAR2
およびNVARCHAR2
の拡張データ型 -
2000バイトを超える、
RAW
の拡張データ型
また、アクション・コンテキストには、これらのデータ型の属性を持つオブジェクト型、および型進化や型継承を使用するオブジェクト型を含めることはできません。
関連項目:
B.8 ルールベースの変換の制限事項
B.8.1 宣言ルールベースの変換ではサポートされていないデータ型
列の追加の変換を除き、列に対して実行される宣言ルールベースの変換では、Oracle Streamsの取得プロセスでサポートされているものと同じデータ型がサポートされています。
列の追加の変換では、BLOB
、CLOB
、NCLOB
、BFILE
、LONG
、LONG
RAW
、ROWID
、ユーザー定義型(オブジェクト型、REF
、VARRAY、ネストした表など)、Oracle提供の型(Any
型、XML型、空間型、メディア型など)、およびVARCHAR2
、NVARCHAR2
またはRAW
の拡張データ型のデータ型の列は追加できません。
関連項目:
B.8.2 カスタム・ルールベースの変換ではサポートされていないデータ型
LONG
、LONG
RAW
、アセンブルされていないLOB列データまたはXMLType
データは、カスタム・ルールベースの変換ファンクションでは変更しないでください。
関連項目: