ヘッダーをスキップ
Oracle® Streams概要および管理
11gリリース2 (11.2)
B61351-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

29 その他のOracle Streamsコンポーネントの監視

この章では、様々なOracle Streamsコンポーネントの監視に使用できる問合せの例を示します。

次の各項では、様々なOracle Streamsコンポーネントの監視について説明します。


注意:

Oracle Enterprise ManagerのOracle Streamsツールも、Oracle Streams環境を監視するための優れた手段です。詳細は、Oracle Streamsツールのオンライン・ヘルプを参照してください。


関連項目:

この章で説明するデータ・ディクショナリ・ビューの詳細は、『Oracle Databaseリファレンス』を参照

Oracle Streams管理者とその他のOracle Streamsユーザーの監視

次の各項では、Oracle Streams管理者、およびリモートOracle Streams管理者にアクセスを許可する他のユーザーを表示するために実行できる問合せについて説明します。


関連項目:

DBMS_STREAMS_AUTHパッケージを使用したOracle Streams管理者およびその他のOracle Streamsユーザーの構成の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照

ローカルOracle Streams管理者の表示

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レプリケーション管理者ガイド』を参照

リモート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プールは、Oracle Streamsで使用されるシステム・グローバル領域(SGA)のメモリーの一部です。Oracle Streamsプールは、メモリー内のエンキューされたメッセージを格納し、取得プロセスおよび適用プロセスにメモリーを提供します。Oracle Streamsプールは取得プロセスで取得されたLCRを常に格納します。また、バッファ・キューに手動でエンキューされる他のタイプのメッセージも格納できます。

MEMORY_TARGETMEMORY_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クライアントに必要なメモリー・リソースを必ず考慮に入れてください。


ヒント:

  • 通常、Oracle Streamsプールの最適サイズは、オーバーフローするメッセージ、オーバーフローから戻されるメッセージおよび経過時間が0(ゼロ)に近い最小のサイズです。

  • 最も正確な結果を得るには、データベースで伝播および適用プロセスによって通常の量のデキュー・アクティビティが実行されているときに、V$STREAMS_POOL_ADVICEビューの問合せを実行します。デキュー・アクティビティの量が通常より大幅に少ないか、通常より大幅に多い場合は、問合せ結果がOracle Streamsプールのサイズの調整に有効な情報でない場合があります。



関連項目:

  • Oracle Streamsプールの詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照

  • STREAMS_POOL_SIZE初期化パラメータの詳細は、『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ビューの新しい出力に表示されるまでに時間がかかる場合があります。

Oracle Streamsプール・サイズの保持が推奨される問合せ結果

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(ゼロ)になる最小のサイズです。

Oracle Streamsプール・サイズの縮小が推奨される問合せ結果

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クライアントで、サポートされないオブジェクトまたはデータ型の処理が試行されると、エラーが発生します。

次の項の問合せでは、ローカル・データベース内のデータベース・オブジェクトおよび列に対する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になっているため、これらのデータベース・オブジェクトに対する変更は、取得プロセスによって自動的にはフィルタ処理で除外されません。取得プロセスで、これらのサポートされていないデータベース・オブジェクトに対する変更を処理しようすると、エラーが生成されます。ただし、これらのエラーは、サポートされていないオブジェクトに対する変更を取得しないように取得プロセスに指示するルール・セットを構成して回避できます。


注意:

  • この項の問合せの結果は、データベースの互換レベルによって異なります。互換レベルが低くなると、取得プロセスと互換性のないデータベース・オブジェクトの数が多くなります。データベースの互換レベルは、COMPATIBLE初期化パラメータによって制御されます。

  • 取得プロセスについては、ルールベースの変換を使用して、サポートされなていないデータ型の列を除外できません。取得エラーを回避するには、データベース・オブジェクト全体を除外する必要があります。

  • DBA_STREAMS_UNSUPPORTEDビューは、Oracle Database 11g リリース1(11.1)以上のデータベースにおける取得プロセスのみに関連します。このビューは同期取得および適用プロセスには関連しません。



関連項目:

  • 第5章「Oracle Streamsでのルールの使用方法」

  • COMPATIBLE初期化パラメータの詳細は、『Oracle Databaseリファレンス』およびOracle Databaseアップグレード・ガイドを参照

  • DBMS_CAPTURE_ADM.SET_PARAMETERプロシージャの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照


最近取得プロセスとの互換性を持つようになったデータベース・オブジェクトの表示

この項の問合せでは、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およびStatspackを使用したOracle Streamsのパフォーマンスの監視

自動ワークロード・リポジトリ(AWR)を使用して、Oracle Streamsに関連するパフォーマンスの統計を監視できます。データベースでAWRが使用できない場合は、Statspackパッケージを使用して、Oracle Streamsに関連するパフォーマンスの統計を監視できます。Statspackパッケージのインストールおよび使用に関する最新の手順と情報は、データベースとともにインストールされるspdoc.txtファイルに含まれています。Statspackの詳細は、このファイルを参照してください。Unixシステムでは、このファイルはORACLE_HOME/rdbms/adminディレクトリにあります。Windowsシステムでは、このファイルはORACLE_HOME\rdbms\adminディレクトリにあります。


関連項目: