接続障害を解決するには、接続障害の発生状況を正確に把握し、どの部分で問題が発生しているのかを特定した上で、調査に必要な情報を素早く収集することが重要です。接続障害が発生した場合に何を確認すれば早期解決が期待できるか、サポートセンターにお問い合わせをいただいた事例を基にご紹介します。
お問い合わせの傾向と接続障害の割合
2014年に弊社サポートセンターにいただいたお問い合わせを内容ごとに分類したものが図1です。製品の使用方法についてのお問い合わせといった非障害と、運用中に何かしらの問題が発生したトラブルのお問い合わせの割合はほぼ同一です。
トラブルに関するお問い合わせを操作時のエラー、異常停止、接続障害、その他で分類すると接続障害は大きな割合を占めているものではありませんが、他の障害に比べて緊急対応のご要望をいただくケースが多い傾向にあります。
接続障害とはどのようなトラブルか
本稿では、サポートセンターに「データベースに接続ができない」とお問い合わせをいただいた事例を接続障害と定義しています。接続障害は多くのケースで緊急対応をご要望いただくと前述しましたが、実際の割合を示したのが図2です。
弊社サポートセンターではお問い合わせの背景を理解した上でご要望の期限内に報告を差し上げられるよう、お問い合わせをいただいた際に解決までの期限をお伺いしています。接続障害はデータベースそのものが使用できない=本番環境の場合はサービスが提供できないため、4割以上のお問い合わせで一刻も早く解決して欲しいといった緊急対応のご要望をいただいています。
次に、調査の結果、接続障害はどの部分に問題があったのかを示したのが図3です。最も割合の多い“設定”に起因した接続障害でも24%であり、接続障害の原因が多岐にわたっていることがわかります。
これらの原因についてそれぞれ詳しく見ていきましょう。
“設定”とは、具体的には以下のような設定に依存して接続障害が発生しているケースです。
- クライアントのtnsnames.oraやサーバ側のlistener.oraといったOracle Netに関する設定ファイルの記載方法の誤り
- 複数のOracle Clientがインストールされている環境で環境変数の設定が誤っており、期待したOracle Clientが起動できていない
- hostsファイルによる名前解決に失敗している
次に多いのが“DB”です。これは接続障害の原因がデータベース側にあり、具体的には以下のようなケースが該当します。
- 共有プールの空きメモリが不足している
- アーカイブ・ログの削除が行われておらずdb_recovery_file_dest_sizeで指定したサイズまで高速リカバリ領域を使用している
- 初期化パラメータprocessesで指定した値までプロセスが起動している
その他にも図3に示しているように、サーバの負荷やリスナーの動作に起因して接続が行えないケースや、原因解明に至らなかったといったケースがあります。
クライアント、サーバ、データベース、ネットワークを1つずつ確認していくと調査に膨大な時間がかかり、早期解決は望めません。早期解決のためには問題発生箇所を特定し、調査に必要な情報を迅速に収集することが重要です。次の章では接続障害が発生してしまった場合に確認するポイントを解説します。