この章では、様々なOracle Streamsコンポーネントの監視に使用できる問合せの例を示します。
次の各項では、様々なOracle Streamsコンポーネントの監視について説明します。
注意: Oracle Enterprise Manager Cloud ControlのOracle Streamsツールも、Oracle Streams環境を監視するための優れた手段です。詳細は、Oracle Streamsツールのオンライン・ヘルプを参照してください。 |
関連項目: この章で説明するデータ・ディクショナリ・ビューの詳細は、『Oracle Databaseリファレンス』を参照 |
次の各項では、Oracle Streams管理者、およびリモートOracle Streams管理者にアクセスを許可する他のユーザーを表示するために実行できる問合せについて説明します。
関連項目: DBMS_STREAMS_AUTH パッケージを使用したOracle Streams管理者およびその他のOracle Streamsユーザーの構成の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照 |
DBMS_STREAMS_AUTH
パッケージのGRANT_ADMIN_PRIVILEGE
プロシージャを実行して、ローカルOracle Streams管理者に権限を付与できます。DBA_STREAMS_ADMINISTRATOR
データ・ディクショナリ・ビューには、ユーザーに対して GRANT_ADMIN_PRIVILEGE
プロシージャを実行する際にgrant_privileges
パラメータをTRUE
に設定して作成したローカルOracle Streams管理者のみが含まれます。生成されたスクリプトを使用してOracle Streams管理者を作成し、そのユーザーに対してGRANT_ADMIN_PRIVILEGE
プロシージャを実行する際にgrant_privileges
パラメータをFALSE
に設定した場合、そのユーザーはOracle Streams管理者としてDBA_STREAMS_ADMINISTRATOR
データ・ディクショナリ・ビューに表示されません。
GRANT_ADMIN_PRIVILEGE
プロシージャの実行時にgrant_privileges
パラメータをTRUE
に設定して作成したローカルOracle Streams管理者を表示するには、次の問合せを実行します。
COLUMN USERNAME HEADING 'Local Streams Administrator' FORMAT A30 SELECT USERNAME FROM DBA_STREAMS_ADMINISTRATOR WHERE LOCAL_PRIVILEGES = 'YES';
出力は次のようになります。
Local Streams Administrator ------------------------------ STRMADMIN
Oracle Streams管理者であるユーザーについてGRANT_ADMIN_PRIVILEGE
が実行されていない可能性があります。そのような管理者は、この項の問合せによって返されません。また、ユーザーに対してGRANT_ADMIN_PRIVILEGE
プロシージャが実行された後、リスト表示されたユーザーの権限を変更できます。この変更は、DBMS_STREAMS_AUTH
パッケージによって実行されないかぎり、DBA_STREAMS_ADMINISTRATOR
ビューでは追跡されません。たとえば、REVOKE
SQL文を使用して、GRANT_ADMIN_PRIVILEGE
プロシージャによって特定のユーザーに付与された権限を取り消すことができますが、DBA_STREAMS_ADMINISTRATOR
ビューを問い合せるとこのユーザーが表示されます。
この項の問合せで表示されるユーザーの権限を取り消す場合は、DBMS_STREAMS_AUTH
パッケージのREVOKE_ADMIN_PRIVILEGE
プロシージャを使用することをお薦めします。このプロシージャを使用してユーザーの権限を取り消すと、そのユーザーはDBA_STREAMS_ADMINISTRATOR
ビューから削除されます。
関連項目: Oracle Streams管理者を作成する方法の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照 |
DBMS_STREAMS_AUTH
パッケージのGRANT_REMOTE_ADMIN_ACCESS
プロシージャを実行して、リモートOracle Streams管理者にアクセスを許可するユーザーを構成できます。このユーザーは、リモートOracle Streams管理者がデータベース・リンクを使用してローカル・データベース内で管理操作を実行することを許可します。
通常、ローカル・ソース・データベースで発生した変更がダウンストリーム取得プロセスによって取得される場合は、このようなユーザーをローカル・ソース・データベースで構成します。ダウンストリーム取得データベースのOracle Streams管理者は、この接続を使用してソース・データベースを管理します。
リモートOracle Streams管理者にアクセスを許可するユーザーを表示するには、次の問合せを実行します。
COLUMN USERNAME HEADING 'Users Who Allow Remote Access' FORMAT A30 SELECT USERNAME FROM DBA_STREAMS_ADMINISTRATOR WHERE ACCESS_FROM_REMOTE = 'YES';
出力は次のようになります。
Users Who Allow Remote Access ------------------------------ STRMREMOTE
Oracle Streamsプールは、Oracle Streamsで使用されるシステム・グローバル領域(SGA)のメモリーの一部です。Oracle Streamsプールは、メモリー内のエンキューされたメッセージを格納し、取得プロセスおよび適用プロセスにメモリーを提供します。Oracle Streamsプールは取得プロセスで取得されたLCRを常に格納します。また、バッファ・キューに手動でエンキューされる他のタイプのメッセージも格納できます。
MEMORY_TARGET
、MEMORY_MAX_TARGET
またはSGA_TARGET
初期化パラメータを0(ゼロ)以外の値に設定すると、Oracle Streamsプールのサイズが自動的に管理されます。これらのパラメータをすべて0
(ゼロ)に設定した場合は、STREAMS_POOL_SIZE
初期化パラメータを使用して、Oracle Streamsプールのサイズをバイト単位で指定できます。この場合、STREAMS_POOL_SIZE
初期化パラメータの適切な設定に関する情報がV$STREAMS_POOL_ADVICE
動的パフォーマンス・ビューに表示されます。
この項では、Oracle Streamsプールのサイズを拡大、保持または縮小する場合を示す問合せの例を示します。各問合せによって、Oracle Streamsプールに関する次の情報が表示されます。
STREAMS_POOL_SIZE_FOR_ESTIMATE
: 見積り用のOracle Streamsプールのサイズ(MB単位)が表示されます。このサイズの範囲は、Oracle Streamsプールの現在のサイズより小さい値から、Oracle Streamsプールの現在のサイズより大きい値で、増分ごとに別々の行が表示されます。Oracle Streamsプールの現在のサイズを示すエントリが必ず存在し、常に20の増分があります。増分の範囲とサイズは、Oracle Streamsプールの現在のサイズによって異なります。
STREAMS_POOL_SIZE_FACTOR
: Oracle Streamsプールの現在のサイズに関連した見積りのサイズ係数が表示されます。たとえば、サイズ係数.2は、見積りがOracle Streamsプールの現在のサイズの20%に相当することを示し、サイズ係数1.6は見積りがOracle Streamsプールの現在のサイズの160%に相当することを示します。サイズ係数が1.0の行には、Oracle Streamsプールの現在のサイズが表示されます。
ESTD_SPILL_COUNT
: 問合せによって返されるSTREAMS_POOL_SIZE_FOR_ESTIMATE
およびSTREAMS_POOL_SIZE_FACTOR
ごとに、メモリーからオーバーフローしてキュー表に入れられるメッセージの見積り数が表示されます。
ESTD_SPILL_TIME
: 問合せによって返されるSTREAMS_POOL_SIZE_FOR_ESTIMATE
およびSTREAMS_POOL_SIZE_FACTOR
ごとに、メッセージがオーバーフローしてキュー表に入れられるまでの見積り経過時間(秒単位)が表示されます。
ESTD_UNSPILL_COUNT
: 問合せによって返されるSTREAMS_POOL_SIZE_FOR_ESTIMATE
およびSTREAMS_POOL_SIZE_FACTOR
ごとに、オーバーフローしたメッセージがキュー表からメモリーに戻される見積り数が表示されます。
ESTD_UNSPILL_TIME
: 問合せによって返されるSTREAMS_POOL_SIZE_FOR_ESTIMATE
およびSTREAMS_POOL_SIZE_FACTOR
ごとに、オーバーフローしたメッセージがキュー表からメモリーに戻されるまでの見積り経過時間(秒単位)が表示されます。
V$STREAMS_POOL_ADVICE
ビューを問い合せたとき、取得プロセス、伝播または適用プロセスがいずれも無効になっていて、将来それらを有効にする予定がある場合は、Oracle Streamsプールのサイズを縮小する前に、これらのOracle Streamsクライアントに必要なメモリー・リソースを必ず考慮に入れてください。
ヒント:
|
関連項目:
|
V$STREAMS_POOL_ADVICE
ビューによって次の結果が返された場合を考えます。
COLUMN STREAMS_POOL_SIZE_FOR_ESTIMATE HEADING 'Oracle Streams Pool Size|for Estimate(MB)' FORMAT 999999999999 COLUMN STREAMS_POOL_SIZE_FACTOR HEADING 'Oracle Streams Pool|Size|Factor' FORMAT 99.9 COLUMN ESTD_SPILL_COUNT HEADING 'Estimated|Spill|Count' FORMAT 99999999 COLUMN ESTD_SPILL_TIME HEADING 'Estimated|Spill|Time' FORMAT 99999999.99 COLUMN ESTD_UNSPILL_COUNT HEADING 'Estimated|Unspill|Count' FORMAT 99999999 COLUMN ESTD_UNSPILL_TIME HEADING 'Estimated|Unspill|Time' FORMAT 99999999.99 SELECT STREAMS_POOL_SIZE_FOR_ESTIMATE, STREAMS_POOL_SIZE_FACTOR, ESTD_SPILL_COUNT, ESTD_SPILL_TIME, ESTD_UNSPILL_COUNT, ESTD_UNSPILL_TIME FROM V$STREAMS_POOL_ADVICE; Oracle Streams Pool Estimated Estimated Estimated Oracle Streams Pool Size Size Spill Spill Unspill for Estimate(MB) Factor Count Time Count ------------------------ ------------------- --------- ------------ --------- 24 .1 158 62.00 0 .00 48 .2 145 59.00 0 .00 72 .3 137 53.00 0 .00 96 .4 122 50.00 0 .00 120 .5 114 48.00 0 .00 144 .6 103 45.00 0 .00 168 .7 95 39.00 0 .00 192 .8 87 32.00 0 .00 216 .9 74 26.00 0 .00 240 1.0 61 21.00 0 .00 264 1.1 56 17.00 0 .00 288 1.2 43 15.00 0 .00 312 1.3 36 11.00 0 .00 336 1.4 22 8.00 0 .00 360 1.5 9 2.00 0 .00 384 1.6 0 .00 0 .00 408 1.7 0 .00 0 .00 432 1.8 0 .00 0 .00 456 1.9 0 .00 0 .00 480 2.0 0 .00 0 .00
これらの結果から、Oracle Streamsプールの現在のサイズの160%である384MBがOracle Streamsプールの最適なサイズになります。つまり、このサイズは、オーバーフローするメッセージおよびオーバーフローから戻されるメッセージの見積り数が0(ゼロ)になる最小のサイズです。
注意: Oracle Streamsプールのサイズを調整した後、新しいサイズがV$STREAMS_POOL_ADVICE ビューの新しい出力に表示されるまでに時間がかかる場合があります。 |
V$STREAMS_POOL_ADVICE
ビューによって次の結果が返された場合を考えます。
COLUMN STREAMS_POOL_SIZE_FOR_ESTIMATE HEADING 'Oracle Streams Pool|Size for Estimate' FORMAT 999999999999 COLUMN STREAMS_POOL_SIZE_FACTOR HEADING 'Oracle Streams Pool|Size|Factor' FORMAT 99.9 COLUMN ESTD_SPILL_COUNT HEADING 'Estimated|Spill|Count' FORMAT 99999999 COLUMN ESTD_SPILL_TIME HEADING 'Estimated|Spill|Time' FORMAT 99999999.99 COLUMN ESTD_UNSPILL_COUNT HEADING 'Estimated|Unspill|Count' FORMAT 99999999 COLUMN ESTD_UNSPILL_TIME HEADING 'Estimated|Unspill|Time' FORMAT 99999999.99 SELECT STREAMS_POOL_SIZE_FOR_ESTIMATE, STREAMS_POOL_SIZE_FACTOR, ESTD_SPILL_COUNT, ESTD_SPILL_TIME, ESTD_UNSPILL_COUNT, ESTD_UNSPILL_TIME FROM V$STREAMS_POOL_ADVICE; Oracle Streams Pool Estimated Estimated Estimated Oracle Streams Pool Size Size Spill Spill Unspill for Estimate(MB) Factor Count Time Count ------------------------ ------------------- --------- ------------ --------- 24 .1 89 52.00 0 .00 48 .2 78 48.00 0 .00 72 .3 71 43.00 0 .00 96 .4 66 37.00 0 .00 120 .5 59 32.00 0 .00 144 .6 52 26.00 0 .00 168 .7 39 20.00 0 .00 192 .8 27 12.00 0 .00 216 .9 15 5.00 0 .00 240 1.0 0 .00 0 .00 264 1.1 0 .00 0 .00 288 1.2 0 .00 0 .00 312 1.3 0 .00 0 .00 336 1.4 0 .00 0 .00 360 1.5 0 .00 0 .00 384 1.6 0 .00 0 .00 408 1.7 0 .00 0 .00 432 1.8 0 .00 0 .00 456 1.9 0 .00 0 .00 480 2.0 0 .00 0 .00
これらの結果から、Oracle Streamsプールの現在のサイズが最適サイズになります。つまり、このサイズは、オーバーフローするメッセージおよびオーバーフローから戻されるメッセージの見積り数が0(ゼロ)になる最小のサイズです。
V$STREAMS_POOL_ADVICE
ビューによって次の結果が返された場合を考えます。
COLUMN STREAMS_POOL_SIZE_FOR_ESTIMATE HEADING 'Oracle Streams Pool|Size for Estimate' FORMAT 999999999999 COLUMN STREAMS_POOL_SIZE_FACTOR HEADING 'Oracle Streams Pool|Size|Factor' FORMAT 99.9 COLUMN ESTD_SPILL_COUNT HEADING 'Estimated|Spill|Count' FORMAT 99999999 COLUMN ESTD_SPILL_TIME HEADING 'Estimated|Spill|Time' FORMAT 99999999.99 COLUMN ESTD_UNSPILL_COUNT HEADING 'Estimated|Unspill|Count' FORMAT 99999999 COLUMN ESTD_UNSPILL_TIME HEADING 'Estimated|Unspill|Time' FORMAT 99999999.99 SELECT STREAMS_POOL_SIZE_FOR_ESTIMATE, STREAMS_POOL_SIZE_FACTOR, ESTD_SPILL_COUNT, ESTD_SPILL_TIME, ESTD_UNSPILL_COUNT, ESTD_UNSPILL_TIME FROM V$STREAMS_POOL_ADVICE; Oracle Streams Pool Estimated Estimated Estimated Oracle Streams Pool Size Size Spill Spill Unspill for Estimate(MB) Factor Count Time Count ------------------------ ------------------- --------- ------------ --------- 24 .1 158 62.00 0 .00 48 .2 145 59.00 0 .00 72 .3 137 53.00 0 .00 96 .4 122 50.00 0 .00 120 .5 114 48.00 0 .00 144 .6 103 45.00 0 .00 168 .7 0 .00 0 .00 192 .8 0 .00 0 .00 216 .9 0 .00 0 .00 240 1.0 0 .00 0 .00 264 1.1 0 .00 0 .00 288 1.2 0 .00 0 .00 312 1.3 0 .00 0 .00 336 1.4 0 .00 0 .00 360 1.5 0 .00 0 .00 384 1.6 0 .00 0 .00 408 1.7 0 .00 0 .00 432 1.8 0 .00 0 .00 456 1.9 0 .00 0 .00 480 2.0 0 .00 0 .00
これらの結果から、Oracle Streamsプールの現在のサイズの70%である168MBがOracle Streamsプールの最適なサイズになります。つまり、このサイズは、オーバーフローするメッセージおよびオーバーフローから戻されるメッセージの見積り数が0(ゼロ)になる最小のサイズです。
注意: Oracle Streamsプールのサイズを調整した後、新しいサイズがV$STREAMS_POOL_ADVICE ビューの新しい出力に表示されるまでに時間がかかる場合があります。 |
一部のデータベース・オブジェクトおよびデータ型には、Oracle Streamsの取得プロセス、同期取得および適用プロセスとの互換性がありません。そのいずれかのOracle Streamsクライアントで、サポートされないオブジェクトまたはデータ型の処理が試行されると、エラーが発生します。
次の項の問合せでは、ローカル・データベース内のデータベース・オブジェクトおよび列に対するOracle Streamsの互換性を示します。
この項の内容は次のとおりです。
取得プロセスでデータベース・オブジェクトに対する変更を取得できない場合は、そのデータベース・オブジェクトに取得プロセスとの互換性がありません。この項の問合せでは、取得プロセスと互換性のないデータベース・オブジェクトに関して次の情報が表示されます。
オブジェクトの所有者
オブジェクト名
オブジェクトと取得プロセスに互換性がない理由
取得プロセスによってデータベース・オブジェクトに対する変更が自動的にフィルタ処理で除外されるかどうか(AUTO_FILTERED
列)
取得プロセスによってデータベース・オブジェクトに対する変更が自動的にフィルタ処理で除外される場合は、取得プロセスでルール・セットを使用して明示的にフィルタ処理で除外する必要はありません。たとえば、ドメイン索引に対する変更は、取得プロセスによって自動的にフィルタ処理で除外されます。ただし、互換性のないデータベース・オブジェクトに対する変更が自動的にフィルタ処理で除外されない場合は、エラーを回避するために、各取得プロセスでルール・セットを使用してフィルタ処理で除外する必要があります。
たとえば、取得プロセスのルール・セットで、取得プロセスが、特定のスキーマに対して行われたすべての変更を取得するように指示されているとします。また、この項の問合せによって、このスキーマ内の1つのオブジェクトが取得プロセスと互換性がなく、そのオブジェクトに対する変更が自動的にはフィルタ処理で除外されないことが示されたとします。この場合、取得プロセスのネガティブ・ルール・セットにルールを追加して、互換性のないデータベース・オブジェクトの変更をフィルタ処理で除外できます。
取得プロセスと互換性のないローカル・データベース内のデータベース・オブジェクトを表示するには、次の問合せを実行します。
COLUMN OWNER HEADING 'Object|Owner' FORMAT A8 COLUMN TABLE_NAME HEADING 'Object Name' FORMAT A30 COLUMN REASON HEADING 'Reason' FORMAT A30 COLUMN AUTO_FILTERED HEADING 'Auto|Filtered?' FORMAT A9 SELECT OWNER, TABLE_NAME, REASON, AUTO_FILTERED FROM DBA_STREAMS_UNSUPPORTED;
出力は次のようになります。
Object Auto Owner Object Name Reason Filtered? -------- ------------------------------ ------------------------------ --------- IX AQ$_ORDERS_QUEUETABLE_G column with user-defined type NO IX AQ$_ORDERS_QUEUETABLE_H unsupported column exists NO IX AQ$_ORDERS_QUEUETABLE_I unsupported column exists NO IX AQ$_ORDERS_QUEUETABLE_L AQ queue table NO IX AQ$_ORDERS_QUEUETABLE_S AQ queue table NO IX AQ$_ORDERS_QUEUETABLE_T AQ queue table NO IX AQ$_STREAMS_QUEUE_TABLE_C AQ queue table NO IX AQ$_STREAMS_QUEUE_TABLE_G column with user-defined type NO IX AQ$_STREAMS_QUEUE_TABLE_H unsupported column exists NO IX AQ$_STREAMS_QUEUE_TABLE_I unsupported column exists NO IX AQ$_STREAMS_QUEUE_TABLE_L AQ queue table NO IX AQ$_STREAMS_QUEUE_TABLE_S AQ queue table NO IX AQ$_STREAMS_QUEUE_TABLE_T AQ queue table NO IX ORDERS_QUEUETABLE column with user-defined type NO IX STREAMS_QUEUE_TABLE column with user-defined type NO OE ACTION_TABLE column with user-defined type NO OE CATEGORIES_TAB column with user-defined type NO . . .
sh.dr$sup_text_indx$i
ドメイン索引のAuto
Filtered?
列がYES
になっていることに注意してください。取得プロセスは、取得プロセスのルール・セットでこのデータベース・オブジェクトに対する変更を取得するように指示されている場合でも、それらのデータ操作言語(DML)変更を自動的にフィルタ処理で除外します。デフォルトでは、取得プロセスは、これらのデータベース・オブジェクトに対するデータ定義言語(DDL)変更もフィルタ処理で除外します。ただし、これらのDDL変更を取得する場合は、DBMS_CAPTURE_ADM.SET_PARAMETER
プロシージャを使用してset_autofiltered_table_ddl
取得プロセス・パラメータをN
に設定し、これらのDDL変更を取得するように取得プロセス・ルール・セットを構成します。
出力例に表示されている他のデータベース・オブジェクトについてはAuto
Filtered?
列がNO
になっているため、これらのデータベース・オブジェクトに対する変更は、取得プロセスによって自動的にはフィルタ処理で除外されません。取得プロセスで、これらのサポートされていないデータベース・オブジェクトに対する変更を処理しようすると、エラーが生成されます。ただし、これらのエラーは、サポートされていないオブジェクトに対する変更を取得しないように取得プロセスに指示するルール・セットを構成して回避できます。
注意:
|
関連項目:
|
この項の問合せでは、Oracle Databaseの最近のリリースで取得プロセスとの互換性を持つようになったデータベース・オブジェクトに関する次の情報が表示されます。
オブジェクトの所有者
オブジェクト名
Oracle Databaseの以前のリリースで、オブジェクトが取得プロセスとの互換性を持たなかった理由
オブジェクトが取得プロセスとの互換性を持ったOracle Databaseのリリース
次の問合せを実行すると、ローカル・データベースに関して前述の情報が表示されます。
COLUMN OWNER HEADING 'Owner' FORMAT A10 COLUMN TABLE_NAME HEADING 'Object Name' FORMAT A20 COLUMN REASON HEADING 'Reason' FORMAT A30 COLUMN COMPATIBLE HEADING 'Compatible' FORMAT A10 SELECT OWNER, TABLE_NAME, REASON, COMPATIBLE FROM DBA_STREAMS_NEWLY_SUPPORTED;
この問合せの出力例を次に示します。
Owner Object Name Reason Compatible ---------- -------------------- ------------------------------ ---------- HR COUNTRIES IOT 10.1 OE WAREHOUSES table with XMLType column 11.1 SH CAL_MONTH_SALES_MV materialized view 10.1 SH FWEEK_PSCAT_SALES_MV materialized view 10.1
Compatible
列には、取得プロセスがデータベース・オブジェクトをサポートするための最小データベース互換性が表示されます。データベース・オブジェクトのローカル・データベース互換性がCompatible
列の値以上である場合は、取得プロセスによって、データベース・オブジェクトに対する変更が正常に取得できます。COMPATIBLE
初期化パラメータで、データベースの互換性を制御します。
Oracle Streams環境に、異なるバージョンのOracle Databaseを実行するデータベースが含まれている場合は、LCRのGET_COMPATIBLE
メンバー・ファンクションを使用して、特定のデータベースと互換性のないLCRをフィルタ処理で除外するルールを構成できます。これらのルールを取得プロセス、同期取得、伝播および適用プロセスのルール・セットに追加して、ストリーム内の必要な場所で、互換性のないLCRをフィルタ処理で除外できます。
注意: DBA_STREAMS_NEWLY_SUPPORTED ビューは、Oracle Database 11g リリース1(11.1)以上のデータベースにおける取得プロセスのみに関連します。このビューは同期取得および適用プロセスには関連しません。 |
関連項目:
|
同期取得でデータベース・オブジェクトまたは表内の列に対する変更を取得できない場合、そのデータベース・オブジェクトまたは列は同期取得と互換性がありません。たとえば、同期取得ではオブジェクト表に対する変更を取得できません。同期取得でリレーショナル表に対する変更は取得できますが、一部のデータ型の列に対する変更は取得できません。
この項の問合せでは、同期取得と互換性のないデータベース・オブジェクトおよび列に関して次の情報が表示されます。
オブジェクトの所有者
オブジェクト名
列名
列と同期取得に互換性がない理由
同期取得と互換性のないローカル・データベース内の列を表示するには、次の問合せを実行します。
COLUMN OWNER HEADING 'Object|Owner' FORMAT A8 COLUMN TABLE_NAME HEADING 'Object Name' FORMAT A20 COLUMN COLUMN_NAME HEADING 'Column Name' FORMAT A20 COLUMN SYNC_CAPTURE_REASON HEADING 'Synchronous|Capture Reason' FORMAT A25 SELECT OWNER, TABLE_NAME, COLUMN_NAME, SYNC_CAPTURE_REASON FROM DBA_STREAMS_COLUMNS WHERE SYNC_CAPTURE_VERSION IS NULL;
DBA_STREAMS_COLUMNS
ビューの問合せでSYNC_CAPTURE_VERSION
に対してNULL
が返された場合、それはこの列が同期取得でサポートされていないことを意味します。この問合せのWHERE
句のため、同期取得でサポートされていない列のみが問合せによって返されます。
この問合せの出力例を次に示します。
Object Synchronous Owner Object Name Column Name Capture Reason -------- -------------------- -------------------- ------------------------- . . . SH SALES_TRANSACTIONS_E UNIT_COST external table XT OE LINEITEM_TABLE SYS_XDBPD$ object table OE LINEITEM_TABLE ITEMNUMBER object table PM PRINT_MEDIA AD_FINALTEXT table with nested table c olumn . . .
同期取得エラーを回避するには、同期取得が、オブジェクト表などのサポートされていないデータベース・オブジェクトに対する変更を取得しようとしないように、同期取得ルール・セットを構成します。リレーショナル表に対する変更を取得する際の同期取得エラーを回避するには、次のオプションがあります。
同期取得が、サポートされていない1つ以上の列を含む表に対する変更を取得しようとしないように、同期取得ルール・セットを構成します。
同期取得でサポートされていない列を除外するルールベースの変換を構成します。
注意: 同期取得はOracle Database 11g リリース1(11.1)以上のデータベースで使用できます。それ以前のリリースのOracle Databaseでは使用できません。 |
この項の内容は次のとおりです。
適用プロセスでデータベース・オブジェクトまたは表内の列に変更を適用できない場合、そのデータベース・オブジェクトまたは列は適用プロセスと互換性がありません。たとえば、適用プロセスではリレーショナル表に変更を適用できますが、一部のデータ型の列には変更を適用できません。たとえば、適用プロセスではリレーショナル表に変更を適用できますが、一部のデータ型の列には変更を適用できません。
この項の問合せでは、適用プロセスと互換性のないデータベース・オブジェクトおよび列に関して次の情報が表示されます。
オブジェクトの所有者
オブジェクト名
列名
列と適用プロセスに互換性がない理由
適用プロセスと互換性のないローカル・データベース内の列を表示するには、次の問合せを実行します。
COLUMN OWNER HEADING 'Object|Owner' FORMAT A8 COLUMN TABLE_NAME HEADING 'Object Name' FORMAT A20 COLUMN COLUMN_NAME HEADING 'Column Name' FORMAT A20 COLUMN APPLY_REASON HEADING 'Apply Process Reason' FORMAT A25 SELECT OWNER, TABLE_NAME, COLUMN_NAME, APPLY_REASON FROM DBA_STREAMS_COLUMNS WHERE APPLY_VERSION IS NULL;
DBA_STREAMS_COLUMNS
ビューの問合せでAPPLY_VERSION
に対してNULL
が返された場合、それはこの列が適用プロセスでサポートされていないことを意味します。この問合せのWHERE
句のため、適用プロセスでサポートされていない列のみが問合せによって返されます。
この問合せの出力例を次に示します。
Object Owner Object Name Column Name Apply Process Reason -------- -------------------- -------------------- ------------------------- . . . SH SALES_TRANSACTIONS_E CHANNEL_ID external table XT OE ACTION_TABLE ACTIONED_BY object table OE LINEITEM_TABLE PART object table PM ONLINE_MEDIA PRODUCT_AUDIO ADT column OE CATEGORIES_TAB CATEGORY_DESCRIPTION object table . . .
適用エラーを回避するには、適用プロセスが、オブジェクト表などのサポートされていないデータベース・オブジェクトに変更を適用しようとしないように、適用プロセス・ルール・セットを構成します。リレーショナル表に変更を適用する際の適用エラーを回避するには、次のオプションがあります。
適用プロセスが、サポートされていない1つ以上の列を含む表に変更を適用しようとしないように、適用プロセス・ルール・セットを構成します。
適用プロセスでサポートされていない列を除外するルールベースの変換を構成します。
適用プロセスでサポートされていない列を除外するプロシージャDMLハンドラを構成します。
この項の問合せでは、Oracle Databaseの最近のリリースで適用プロセスとの互換性を持つようになったデータベース・オブジェクトおよび列に関する次の情報が表示されます。
オブジェクトの所有者
オブジェクト名
列名
Oracle Databaseの以前のリリースで、オブジェクトが適用プロセスと互換性を持たなかった理由
オブジェクトが適用プロセスとの互換性を持ったOracle Databaseのリリース
次の問合せを実行すると、ローカル・データベースに関して前述の情報が表示されます。
COLUMN OWNER HEADING 'Object|Owner' FORMAT A8 COLUMN TABLE_NAME HEADING 'Object Name' FORMAT A15 COLUMN COLUMN_NAME HEADING 'Column Name' FORMAT A15 COLUMN APPLY_VERSION HEADING 'Apply|Process|Vesion' FORMAT 99.9 COLUMN APPLY_REASON HEADING 'Apply|Process Reason' FORMAT A25 SELECT OWNER, TABLE_NAME, COLUMN_NAME, APPLY_VERSION, APPLY_REASON FROM DBA_STREAMS_COLUMNS WHERE APPLY_VERSION > 11;
DBA_STREAMS_COLUMNS
ビューの問合せでAPPLY_VERSION
に対してNULL
以外の値が返された場合、それは適用プロセスでこの列がサポートされていることを意味します。この問合せのWHERE
句のため、適用プロセスでサポートされている列のみが問合せによって返されます。この問合せでは、Oracle Database 11g リリース1以上で適用プロセスによってサポートされるようになった列が返されます。
この問合せの出力例を次に示します。
Apply Object Process Apply Owner Object Name Column Name Vesion Process Reason -------- --------------- --------------- ------- ------------------------- OE WAREHOUSES WAREHOUSE_SPEC 11.1 XMLType column
Apply
Process
Version
列には、適用プロセスがその列をサポートするための最小データベース互換性が表示されます。列のローカル・データベース互換性がApply
Process
Version
列の値以上である場合は、適用プロセスでその列に変更を正常に適用できます。COMPATIBLE
初期化パラメータで、データベースの互換性を制御します。
Oracle Streams環境に、異なるバージョンのOracle Databaseを実行するデータベースが含まれている場合は、LCRのGET_COMPATIBLE
メンバー・ファンクションを使用して、特定のデータベースと互換性のないLCRをフィルタ処理で除外するルールを構成できます。これらのルールを取得プロセス、同期取得、伝播および適用プロセスのルール・セットに追加して、ストリーム内の必要な場所で、互換性のないLCRをフィルタ処理で除外できます。
注意: この問合せでApply Process Reason に対してNULL が返された場合、それはOracle Streamsを含む最初のOracle Databaseリリースから、この列が常に適用プロセスでサポートされていることを意味します。 |
関連項目:
|
自動ワークロード・リポジトリ(AWR)を使用して、Oracle Streamsに関連するパフォーマンスの統計を監視できます。データベースでAWRが使用できない場合は、Statspackパッケージを使用して、Oracle Streamsに関連するパフォーマンスの統計を監視できます。Statspackパッケージのインストールおよび使用に関する最新の手順と情報は、データベースとともにインストールされるspdoc.txt
ファイルに含まれています。Statspackの詳細は、このファイルを参照してください。Unixシステムでは、このファイルはORACLE_HOME
/rdbms/admin
ディレクトリにあります。Windowsシステムでは、このファイルはORACLE_HOME
\rdbms\admin
ディレクトリにあります。
関連項目:
|