30 Oracle Streams環境内での問題の特定
30.1 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
プロシージャを使用して管理できます。
Oracle Enterprise Manager Cloud Controlでアラートを表示するか、次のデータ・ディクショナリ・ビューを問い合せることができます。
-
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 Enterprise Manager Cloud Controlのオンライン・ヘルプを参照
-
アラートおよびメトリックしきい値の管理の詳細は、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照
-
アラートの詳細と、新規アラートの生成時に通知を受信するための
ALERT_QUE
キューのサブスクライブの詳細は、『Oracle Database管理者ガイド』を参照 -
DBMS_SERVER_ALERT
パッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照 -
Oracle Streamsに関連する初期化パラメータの設定については、『Oracle Streamsレプリケーション管理者ガイド』を参照してください。
-
Oracle Streamsプールの詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照
30.2 Streams構成レポートおよびヘルス・チェック・スクリプトの使用
Streams構成レポートおよびヘルス・チェック・スクリプトでは、個々のOracle DatabaseのOracle Streamsコンポーネントに関する重要な情報が提供されます。このレポートは、Oracle Streamsの前提条件を満たしているかどうかの確認、Oracle Streamsの対象データベース・オブジェクトの識別に役立ちます。また、このレポートでは、データベースのルールを分析して、Oracle Streamsルールに関する一般的な問題を特定することもできます。
Streams構成レポートおよびヘルス・チェック・スクリプトは、My Oracle Support(旧OracleMetaLink)のWebサイトで使用可能です。スクリプトを実行するには、次の手順を実行します。
30.3 使用不可能な宛先によるパフォーマンスの問題の処理
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レプリケーション管理者ガイド』を参照
30.4 トレース・ファイルとアラート・ログでの問題のチェック
各取得プロセス、伝播および適用プロセスに関するメッセージは、そのプロセスまたは伝播ジョブが実行されているデータベースのトレース・ファイルに記録されます。ローカル取得プロセスはソース・データベース、ダウンストリーム取得プロセスはダウンストリーム・データベース、伝播ジョブは伝播のソース・キューを含むデータベース、適用プロセスは宛先データベースでそれぞれ実行されます。これらのトレース・ファイル・メッセージは、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ドキュメントを参照
30.4.1 取得プロセスのトレース・ファイルには、取得の問題に関するメッセージが含まれているか
取得プロセスは、CP
nn
という名前のOracleバックグラウンド・プロセスです。nn
には文字および番号が含まれます。たとえば、一部のオペレーティング・システムでは、取得プロセスが実行されているデータベースのシステム識別子がhqdb
で、取得プロセス番号が01
であれば、その取得プロセスのトレース・ファイル名はhqdb_CP01
で始まります。
関連項目:
取得プロセスの取得プロセス番号を表示する問合せについては、「各取得プロセスに関する変更取得情報の表示」を参照
30.4.2 伝播ジョブに関連するトレース・ファイルには、問題に関するメッセージが含まれているか
各伝播では、j
nnn
という名前の1つ以上のスレーブ・プロセスに依存する伝播ジョブが使用されます。ここでnnn
はスレーブ・プロセス番号です。たとえば、一部のオペレーティング・システムでは、スレーブ・プロセスが001
であれば、そのスレーブ・プロセスのトレース・ファイル名にはj001
が含まれます。DBA_QUEUE_SCHEDULES
データ・ディクショナリ・ビューのPROCESS_NAME
列を問い合せると、プロセス名をチェックできます。
関連項目:
伝播ジョブで使用されるジョブ・スレーブを表示する問合せについては、「伝播が有効かどうか」を参照
30.4.3 適用プロセスのトレース・ファイルには、適用の問題に関するメッセージが含まれているか
適用プロセスは、AP
nn
という名前のOracleバックグラウンド・プロセスです。nn
には文字および番号が含まれます。たとえば、一部のオペレーティング・システムでは、適用プロセスが実行されているデータベースのシステム識別子がhqdb
で、適用プロセス番号が01
であれば、その適用プロセスのトレース・ファイル名はhqdb_AP01
で始まります。
適用プロセスでは他のプロセスも使用されます。適用プロセスに関する情報は、それらの1つ以上のプロセスのトレース・ファイルに記録される可能性があります。リーダー・サーバーと適用サーバーのプロセス名はAS
nn
であり、nn
には文字および番号が含まれます。したがって、一部のオペレーティング・システムでは、適用プロセスが実行されているデータベースのシステム識別子がhqdb
であり、プロセス番号が01
であれば、適用プロセスで使用されるプロセスに関する情報を含むトレース・ファイルの名前はhqdb_AS01
で始まります。
関連項目:
-
適用プロセスの適用プロセス番号を表示する問合せについては、「各コーディネータ・プロセスに関する一般情報の表示」を参照
-
適用プロセスのリーダー・サーバーで使用されるプロセスを表示する問合せについては、「各適用プロセスのリーダー・サーバーに関する情報の表示」を参照
-
適用プロセスの適用サーバーで使用されるプロセスを表示する問合せについては、「各適用プロセスの適用サーバーに関する情報の表示」を参照