12 XStream Inのトラブルシューティング
XStream In構成に関する問題を診断して修正できます。
- XStream Inでの問題の診断
いくつかの異なる手法を使用してXStream Inでの問題を診断できます。 - XStream Inでの問題と解決策
XStream Inに関する一般的な問題の解決策を実装できます。 - XStream Inの詳細なヘルプを求める方法
Oracle Supportを使用してXStream Inの詳細なヘルプ情報を提供できます。
親トピック: XStream In
12.1 XStream Inでの問題の診断
いくつかの異なる手法を使用してXStream Inでの問題を診断できます。
- アラートの表示
アラートとは、潜在的に問題があったり、クリティカルのしきい値を超えた場合に発せられる警告のことです。 - トレース・ファイルおよびアラート・ログでの問題のチェック
インバウンド・サーバーに関するメッセージは、プロセスが実行されているデータベースのトレース・ファイルに記録されます。
親トピック: XStream Inのトラブルシューティング
12.1.1 アラートの表示
アラートとは、潜在的に問題があったり、クリティカルのしきい値を超えた場合に発せられる警告のことです。
アラートには2つのタイプがあります。
-
ステートレス: 必ずしもシステムの状態と結び付かない単一イベントを示すアラート。たとえば、取得が特定のエラーで中断したことを示すアラートはステートレス・アラートです。
-
ステートフル: 特定のシステム状態に関連するアラート。ステートフル・アラートは、通常は数値に基づき、警告レベルとクリティカル・レベルでしきい値が定義されます。たとえば、警告レベルが85%でクリティカル・レベルが95%の現在のStreamsプール・メモリー使用率に関するアラートは、ステートフル・アラートです。
インバウンド・サーバーが中断すると、Oracleデータベースによってステートレス・アラートが生成されます。
Streamsプールのメモリー使用量がSTREAMS_POOL_USED_PCT
メトリックで指定されている割合を超えた場合、Oracle DatabaseによってステートフルXStreamアラートが生成されます。このメトリックは、DBMS_SERVER_ALERT
パッケージのSET_THRESHOLD
プロシージャを使用して管理できます。
Oracle Enterprise Manager Cloud Controlでアラートを表示するか、次のデータ・ディクショナリ・ビューを問い合せることができます。
-
DBA_OUTSTANDING_ALERTS
ビューでは、現行のステートフル・アラートが記録されます。DBA_ALERT_HISTORY
ビューでは、クリアされたステートレス・アラートおよびステートフル・アラートが記録されます。たとえば、Streamsプールでのメモリー使用量が指定されたしきい値を超えると、DBA_OUTSTANDING_ALERTS
ビューにステートフル・アラートが記録されます。 -
DBA_ALERT_HISTORY
データ・ディクショナリ・ビューには、DBA_OUTSTANDING_ALERTS
ビューからクリアされたアラートが表示されます。たとえば、Streamsプールでのメモリー使用量が指定されたしきい値を下回ると、DBA_OUTSTANDING_ALERTS
ビューに記録されていたアラートがクリアされ、DBA_ALERT_HISTORY
ビューに移動します。
たとえば、現行のステートフル・アラートをリストするには、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 '%XSTREAM%';
ステートレス・アラートと、クリアされたXStreamステートフル・アラートをリストするには、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 '%XSTREAM%';
関連項目:
-
アラートおよびメトリックしきい値の管理の詳細は、Oracle Database 2日でパフォーマンス・チューニング・ガイドを参照
-
アラートの詳細と、新規アラートの生成時に通知を受信するための
ALERT_QUE
キューのサブスクライブの詳細は、Oracle Database管理者ガイドを参照 -
DBMS_SERVER_ALERT
パッケージの詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照
親トピック: XStream Inでの問題の診断
12.1.2 トレース・ファイルとアラート・ログでの問題のチェック
インバウンド・サーバーに関するメッセージは、プロセスが実行されているデータベースのトレース・ファイルに記録されます。
これらのトレース・ファイル・メッセージはXStream In構成の問題を特定し、解決するのに役立ちます。
バックグラウンド・プロセスのすべてのトレース・ファイルは、自動診断リポジトリに書き込まれます。トレース・ファイル名はオペレーティング・システム固有ですが、通常、各ファイルにはそれを書き込むプロセスの名前が含まれます。
たとえば、一部のオペレーティング・システムでは、プロセスのトレース・ファイル名はsid_xxxx_iiiii
.trc
となります。その意味は次のとおりです。
-
sid
はデータベースのシステム識別子です -
xxxx
はプロセスの名前です -
iiiii
はオペレーティング・システムのプロセス番号です
また、取得プロセスとアウトバウンド・サーバーの両方のwrite_alert_log
パラメータをy
に設定できます。このパラメータにy
(デフォルト)を設定すると、取得プロセスまたはアウトバウンド・サーバーが停止した理由を示すメッセージがデータベースのアラート・ログに書き込まれます。
DBMS_XSTREAM_ADM
パッケージのSET_PARAMETER
プロシージャを使用してtrace_level
インバウンド・サーバー適用パラメータを設定すると、トレース・ファイル内の情報を制御できます。
インバウンド・サーバーは、AP
nn
という名前を持つOracleバックグラウンド・プロセスです。ここで、nn
には文字および数字が含まれることがあります。たとえば、一部のオペレーティング・システムでは、インバウンド・サーバーが実行されているデータベースのシステム識別子がhqdb
で、インバウンド・サーバー番号が01
であれば、そのインバウンド・サーバーのトレース・ファイル名はhqdb_AP01
で始まります。
インバウンド・サーバーでは、他のプロセスも使用されます。インバウンド・サーバーに関する情報は、これらのプロセスの1つ以上のトレース・ファイルに記録される場合があります。リーダー・サーバーと適用サーバーのプロセス名はAS
nn
であり、nn
には文字および番号が含まれます。したがって、一部のオペレーティング・システムでは、インバウンド・サーバーが実行されているデータベースのシステム識別子がhqdb
であり、プロセス番号が01
であれば、インバウンド・サーバーで使用されるプロセスに関する情報を含むトレース・ファイルの名前はhqdb_AS01
で始まります。
関連項目:
-
トレース・ファイルおよびアラート・ログの詳細と、それらの名前および場所の詳細は、Oracle Database管理者ガイドを参照
-
trace_level
適用パラメータの設定の詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照 -
トレース・ファイルの名前および場所の詳細は、オペレーティング・システム固有のOracleドキュメントを参照
親トピック: XStream Inでの問題の診断
12.2 XStream Inの問題と解決策
XStream Inに関する一般的な問題の解決策を実装できます。
一般的には、Oracle適用プロセスをトラブルシューティングするのと同じ方法で、XStreamインバウンド・サーバーをトラブルシューティングできます。
- XStream Inがインバウンド・サーバーを識別できない
XStream In構成がインバウンド・サーバーを識別できない場合、インバウンド・サーバーのキューに複数のサブスクライバがある可能性があります。 - インバウンド・サーバーでORA-03135エラーが発生する
インバウンド・サーバーとXStreamクライアント・アプリケーションの間の接続が切断された場合は、クライアント・アプリケーションを再起動します。 - XStream In構成で変更がクライアント・アプリケーションに到達しない
XStream In構成で、適用ハンドラまたはXStreamクライアント・アプリケーションにストリームされるはずのデータベースの変更が、適用ハンドラまたはクライアント・アプリケーションに到達しません。
親トピック: XStream Inのトラブルシューティング
12.2.1 XStreamでインバウンド・サーバーを識別できない
XStream In構成でインバウンド・サーバーを識別できない場合、インバウンド・サーバーのキューに対する複数のサブスクライバがある可能性があります。
XStream In構成でインバウンド・サーバーを識別できない場合は、エラーが返されます。
次の項では、考えられる問題とその解決策について説明します。
問題: インバウンド・サーバーのキューに対する複数のサブスクライバ
ORA-26840
エラーは、インバウンド・サーバーによって使用されるキューに対する複数のサブスクライバがあることを示しています。サブスクライバには、インバウンド・サーバー、アウトバウンド・サーバー、適用プロセス、伝播が含まれることがあります。
インバウンド・サーバーのキューに対する複数のサブスクライバがあるかどうかを確認するには:
-
インバウンド・サーバー・データベースにXStream管理者として接続します。
SQL*Plusでのデータベースへの接続の詳細は、Oracle Database管理者ガイドを参照してください。
-
次の問合せを実行します。
SELECT OWNER, QUEUE_NAME, CONSUMER_NAME, ADDRESS FROM DBA_QUEUE_SUBSCRIBERS;
出力をインバウンド・サーバーのキューに制限するために、問合せに
WHERE
句を追加できます。
解決策
問題を修正するには:
-
問合せがインバウンド・サーバーのキューに対する複数のサブスクライバを戻す場合、サブスクライバを再構成して、インバウンド・サーバーが唯一のサブスクライバになるようにします。
関連項目:
親トピック: XStream Inの問題と解決策
12.2.2 インバウンド・サーバーでORA-03135エラーが発生する
インバウンド・サーバーとXStreamクライアント・アプリケーション間の接続が切断された場合、クライアント・アプリケーションを再起動します。
インバウンド・サーバーで次のエラーが発生します。
ORA-03135: connection lost contact
問題: インバウンド・サーバーとクライアント・アプリケーション間の接続が切断される
ORA-03135
エラーで、インバウンド・サーバーとXStreamクライアント・アプリケーション間の接続が切断されたことが示されます。
解決策
問題を修正するには:
-
XStreamクライアント・アプリケーションを再起動します。
親トピック: XStream Inの問題と解決策
12.2.3 変更がXStream Inのクライアント・アプリケーションに到達できない
XStream In構成で、適用ハンドラまたはXStreamクライアント・アプリケーションにストリームされるはずのデータベースの変更が、適用ハンドラまたはクライアント・アプリケーションに到達しません。
次の項では、考えられる問題および解決策を説明します。
問題: LCRがストリームでブロックされる
LCRがインバウンド・サーバーに到達した後にブロックされることがあります。たとえば、インバウンド・サーバーにエラーが発生し、トランザクションをエラー・キューに移動している場合や、別の問題が発生している可能性があります。
ストリームでLCRを追跡するには、次のいずれかの方法を使用します。
-
message_tracking_frequency
適用パラメータを1
または他の比較的低い値に設定するこの方法の使用時にLCRの追跡を無効にするには、
message_tracking_frequency
適用パラメータをNULL
に設定するか、セッションを終了します。 -
DBMS_XSTREAM_ADM
パッケージのSET_MESSAGE_TRACKING
プロシージャを実行するこの方法の使用時にLCRの追跡を無効にするには、
SET_MESSAGE_TRACKING
プロシージャでtracking_label
パラメータをNULL
に設定するか、セッションを終了します。
これらの方法のいずれかを使用した後は、V$XSTREAM_MESSAGE_TRACKING
ビューを使用して、ストリームでLCRの進捗を監視します。Oracle GoldenGateを使用してLCRを処理する場合は、V$GOLDENGATE_MESSAGE_TRACKING
ビューを使用して、Oracle GoldenGateコンポーネントを介してLCRの進捗を監視できます。ストリームでLCRを追跡することによって、LCRがブロックされている場所を判断できます。
解決策
問題を修正するには:
-
LCRがブロックされる理由に基づいて適切なアクションを実行します。たとえば、次の処理でこの問題を修正できることがあります。
-
インバウンド・サーバーでエラーが発生している場合は、エラーの原因となっている問題を修正します。
-
適用ハンドラでLCRが正しく処理されていない場合、適用ハンドラを修正します。
-
Oracle GoldenGateコンポーネントでLCRが正しく処理されていない場合、Oracle GoldenGateコンポーネントを修正します。
-
関連項目:
-
message_tracking_frequency
適用パラメータの詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照 -
Oracle GoldenGateの詳細は、Oracle GoldenGateのドキュメントを参照してください
親トピック: XStream Inの問題と解決策
12.3 XStream Inに関する追加ヘルプを取得する方法
Oracleサポートでは、XStream Inに関する追加ヘルプを提供できます。
問題に対する他の解決策は、http://support.oracle.com
のMy Oracle Supportを確認してください。
Oracleサポートの詳細は、http://www.oracle.com/support/contact.html
を参照してください。
親トピック: XStream Inのトラブルシューティング