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

前
 
次
 

30 Oracle Streams環境内での問題の特定

次の各項では、Oracle Streams環境での一般的な問題の特定と解決について説明します。

Oracle Streamsアラートの表示

アラートとは、潜在的に問題があったり、クリティカルのしきい値を超えた場合に発せられる警告のことです。アラートには2つのタイプがあります。

  • ステートレス: 必ずしもシステムの状態と結び付かない単一イベントを示すアラート。たとえば、取得が特定のエラーで中断したことを示すアラートはステートレス・アラートです。

  • ステートフル: 特定のシステム状態に関連するアラート。ステートフル・アラートは、通常は数値に基づき、警告レベルとクリティカル・レベルでしきい値が定義されます。たとえば、警告レベルが85%でクリティカル・レベルが95%の現在のOracle Streamsプール・メモリー使用率に関するアラートは、ステートフル・アラートです。

Oracle Database 11g リリース1以上のデータベースでは、次の条件下でステートレスOracle Streamsアラートが生成されます。

  • 取得プロセスが中断された場合

  • エラーが連続して16回発生した後に伝播が中断された場合

  • 適用プロセスが中断された場合

  • 空のエラー・キューのある適用プロセスで適用エラーが発生した場合

Oracle Database 11g リリース1以上のデータベースでは、次の条件下でステートフルOracle Streamsアラートが生成されます。

  • Oracle Streamsプールのメモリー使用量が、STREAMS_POOL_USED_PCTメトリックに指定されたパーセンテージを超えた場合。このメトリックは、DBMS_SERVER_ALERTパッケージのSET_THRESHOLDプロシージャを使用して管理できます。

Enterprise Managerでアラートを表示するか、次のデータ・ディクショナリ・ビューを問い合せることができます。

  • DBA_OUTSTANDING_ALERTSビューでは、現行のステートフル・アラートが記録されます。DBA_ALERT_HISTORYビューでは、クリアされたステートレス・アラートおよびステートフル・アラートが記録されます。たとえば、Oracle Streamsプールでのメモリー使用量が指定されたしきい値を超えると、DBA_OUTSTANDING_ALERTSビューにステートフル・アラートが記録されます。

  • DBA_ALERT_HISTORYデータ・ディクショナリ・ビューには、DBA_OUTSTANDING_ALERTSビューからクリアされたアラートが表示されます。たとえば、Oracle Streamsプールでのメモリー使用量が指定されたしきい値を下回ると、DBA_OUTSTANDING_ALERTSビューに記録されていたアラートがクリアされ、DBA_ALERT_HISTORYビューに移動します。

たとえば、現行のOracle Streamsステートフル・アラートをリストするには、DBA_OUTSTANDING_ALERTSビューで次の問合せを実行します。

COLUMN REASON HEADING 'Reason for Alert' FORMAT A35
COLUMN SUGGESTED_ACTION HEADING 'Suggested Response' FORMAT A35
 
SELECT REASON, SUGGESTED_ACTION 
   FROM DBA_OUTSTANDING_ALERTS
   WHERE MODULE_ID LIKE '%STREAMS%';

Oracle Streamsステートレス・アラートと、クリアされたOracle Streamsステートフル・アラートをリストするには、DBA_ALERT_HISTORYビューで次の問合せを実行します。

COLUMN REASON HEADING 'Reason for Alert' FORMAT A35
COLUMN SUGGESTED_ACTION HEADING 'Suggested Response' FORMAT A35
 
SELECT REASON, SUGGESTED_ACTION 
   FROM DBA_ALERT_HISTORY 
   WHERE MODULE_ID LIKE '%STREAMS%';

DBA_ALERT_HISTORYビューを問い合せた出力例を次に示します。

Reason for Alert                    Suggested Response
----------------------------------- -----------------------------------
STREAMS apply process "APPLY_EMP_DE Obtain the exact error message in d
P" aborted with ORA-26714           ba_apply, take the appropriate acti
                                    on for this error, and restart the
                                    apply process using dbms_apply_adm.
                                    start_apply.  If the error is an OR
                                    A-26714, consider setting the 'DISA
                                    BLE_ON_ERROR' apply parameter to 'N
                                    ' to avoid aborting on future user
                                    errors.
 
STREAMS error queue for apply proce Look at the contents of the error q
ss "APPLY_EMP_DEP" contains new tra ueue as well as dba_apply_error to
nsaction with ORA-26786             determine the cause of the error.
                                    Once the errors are resolved, reexe
                                    cute them using dbms_apply_adm.exec
                                    ute_error or dbms_apply_adm.execute
                                    _all_errors.

注意:

Oracle Streamsアラートは情報提供のみを目的としています。これらのアラートを管理する必要はありません。Oracle Streams環境を定期的に監視し、問題が発生したときに対処する場合は、Oracle Streamsアラートの監視は必要でない可能性があります。


関連項目:

  • Oracle Streamsアラートの詳細は、Oracle Database 2日でデータ・レプリケーションおよび統合ガイドを参照

  • アラートおよびメトリックしきい値の管理の詳細は、Oracle Database 2日でデータベース管理者を参照

  • アラートの詳細と、新規アラートの生成時に通知を受信するためのALERT_QUEキューのサブスクライブの詳細は、『Oracle Database管理者ガイド』を参照

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

  • Oracle Streamsに関連する初期化パラメータ設定の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照

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


Streams構成レポートおよびヘルス・チェック・スクリプトの使用

Streams構成レポートおよびヘルス・チェック・スクリプトでは、個々のOracle DatabaseのOracle Streamsコンポーネントに関する重要な情報が提供されます。このレポートは、Oracle Streamsの前提条件を満たしているかどうかの確認、Oracle Streamsの対象データベース・オブジェクトの識別に役立ちます。また、このレポートでは、データベースのルールを分析して、Oracle Streamsルールに関する一般的な問題を特定することもできます。

Streams構成レポートおよびヘルス・チェック・スクリプトは、My Oracle Support(旧OracleMetaLink)のWebサイトで使用可能です。スクリプトを実行するには、次の手順を実行します。

  1. Webブラウザを使用して、My Oracle Support Webサイトに移動します。

    http://support.oracle.com/
    
  2. My Oracle Supportにログインします。


    注意:

    My Oracle Supportの登録済ユーザーでない場合は、「こちらで登録してください」をクリックして登録します。

  3. 次のタイトルのデータベース掲示板を検索します。

    Streams Configuration Report and Health Check Script
    

    この掲示板のドキュメントIDは273674.1です。

  4. 手順に従ってご使用のリリースに対するスクリプトダウンロードし、スクリプトを実行して結果を分析します。

使用不可能な宛先によるパフォーマンスの問題の処理

Oracle Streamsレプリケーション環境のデータベースに、複数の宛先データベースに対する変更を取得する取得プロセスが1つ存在する場合、いずれかの宛先データベースが使用不可能になると、パフォーマンスの問題が発生する可能性があります。このことが発生して使用不可能な宛先に対する変更が伝播できなくなると、これらの変更は取得プロセスのキューに蓄積され、最終的にはハード・ディスクにオーバーフローします。取得データベースでメッセージがハード・ディスクにオーバーフローすると、Oracle Streamsレプリケーション環境のパフォーマンスが低下する可能性があります。V$BUFFERED_QUEUESビューを問い合せて、キュー内のメッセージ数およびハード・ディスクにオーバーフローしたメッセージ数をチェックできます。また、DBA_PROPAGATIONおよびV$PROPAGATION_SENDERビューを問い合せて、データベース内の伝播および各伝播の状態を表示することもできます。

このような状況が発生した場合は、DBMS_STREAMS_ADMパッケージのSPLIT_STREAMSおよびMERGE_STREAMS_JOBプロシージャを使用して問題に対処できます。SPLIT_STREAMSプロシージャは、問題のある宛先のストリームを取得プロセスから送られるその他のストリームから分離します。ストリームを分離することにより、宛先が使用不可能な間のパフォーマンスの問題を回避できます。宛先の問題が解決した後、MERGE_STREAMS_JOBプロシージャを使用して、そのストリームを取得プロセスから送られるその他のストリームにマージします。


関連項目:

宛先の分離およびマージの詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照

トレース・ファイルとアラート・ログでの問題のチェック

取得プロセス伝播および適用プロセスに関するメッセージは、そのプロセスまたは伝播ジョブが実行されているデータベースのトレース・ファイルに記録されます。ローカル取得プロセスソース・データベースダウンストリーム取得プロセスダウンストリーム・データベース、伝播ジョブは伝播のソース・キューを含むデータベース、適用プロセスは宛先データベースでそれぞれ実行されます。これらのトレース・ファイル・メッセージは、Oracle Streams環境内の問題を特定し、解決するために役立ちます。

バックグラウンド・プロセスのすべてのトレース・ファイルは、自動診断リポジトリに書き込まれます。トレース・ファイル名はオペレーティング・システム固有ですが、通常、各ファイルにはそれを書き込むプロセスの名前が含まれます。

たとえば、一部のオペレーティング・システムでは、プロセスのトレース・ファイル名はsid_xxxx_iiiii.trcとなります。その意味は次のとおりです。

  • sidはデータベースのシステム識別子です。

  • xxxxはプロセスの名前です。

  • iiiiiはオペレーティング・システムのプロセス番号です。

また、取得プロセスと適用プロセスの両方について、write_alert_logパラメータをyに設定できます。このパラメータにyを設定(デフォルト)すると、取得プロセスまたは適用プロセスが停止した理由を示すメッセージがデータベースのアラート・ログに書き込まれます。

DBMS_CAPTURE_ADMおよびDBMS_APPLY_ADMパッケージのSET_PARAMETERプロシージャを使用して取得プロセスまたは適用プロセスのtrace_levelパラメータを設定すると、トレース・ファイル内の情報を制御できます。

次のチェックリストを使用して、Oracle Streamsに関連するトレース・ファイルをチェックします。


関連項目:

  • トレース・ファイルおよびアラート・ログの詳細と、それらの名前および場所の詳細は、『Oracle Database管理者ガイド』を参照

  • trace_level取得プロセス・パラメータおよびtrace_level適用プロセス・パラメータの設定の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照

  • トレース・ファイルの名前および場所の詳細は、オペレーティング・システム固有のOracleドキュメントを参照


取得プロセスのトレース・ファイルに取得の問題に関するメッセージが含まれているか

取得プロセスは、CPnnという名前のOracleバックグラウンド・プロセスです。nnには文字および番号が含まれます。たとえば、一部のオペレーティング・システムでは、取得プロセスが実行されているデータベースのシステム識別子がhqdbで、取得プロセス番号が01であれば、その取得プロセスのトレース・ファイル名はhqdb_CP01で始まります。


関連項目:

取得プロセスの取得プロセス番号を表示する問合せについては、「各取得プロセスに関する変更取得情報の表示」を参照

伝播ジョブに関連するトレース・ファイルには、問題に関するメッセージが含まれているか

各伝播では、jnnnという名前の1つ以上のスレーブ・プロセスに依存する伝播ジョブが使用されます。ここでnnnはスレーブ・プロセス番号です。たとえば、一部のオペレーティング・システムでは、スレーブ・プロセスが001であれば、そのスレーブ・プロセスのトレース・ファイル名にはj001が含まれます。DBA_QUEUE_SCHEDULESデータ・ディクショナリ・ビューのPROCESS_NAME列を問い合せると、プロセス名をチェックできます。


関連項目:

伝播ジョブで使用されるジョブ・スレーブを表示する問合せについては、「伝播が有効かどうか」を参照

適用プロセスのトレース・ファイルには、適用の問題に関するメッセージが含まれているか

適用プロセスは、APnnという名前のOracleバックグラウンド・プロセスです。nnには文字および番号が含まれます。たとえば、一部のオペレーティング・システムでは、適用プロセスが実行されているデータベースのシステム識別子がhqdbで、適用プロセス番号が01であれば、その適用プロセスのトレース・ファイル名はhqdb_AP01で始まります。

適用プロセスでは他のプロセスも使用されます。適用プロセスに関する情報は、それらの1つ以上のプロセスのトレース・ファイルに記録される可能性があります。リーダー・サーバーと適用サーバーのプロセス名はASnnであり、nnには文字および番号が含まれます。したがって、一部のオペレーティング・システムでは、適用プロセスが実行されているデータベースのシステム識別子がhqdbであり、プロセス番号が01であれば、適用プロセスで使用されるプロセスに関する情報を含むトレース・ファイルの名前はhqdb_AS01で始まります。


関連項目: