レック・テクノロジー・コンサルティング株式会社TECH BLOG

ORA-609 [Opiodr Aborting Process Unknown Ospid] について

こんにちは!閲覧ありがとうございます。DB技術統括部のTです。

私は運用支援という業務で、DBの保守支援を行っています。
今回はユーザー様からエラー調査を依頼されたときの経験を、ナレッジとしてお伝えします。

★弊社で携わっているDB運用支援内での対応TIPSとなります。
★記載した影響や対策以外にもさまざまな対策があると思われますが、こちらは一例として上げさせていただきます。

遭遇した事象

アラートログに以下のようなORA-エラーが検出され処理が失敗するケース

TNS-12547: TNS: Lost contact
ORA-609 Opiodr Aborting Process Unknown Ospid <nnnn>

TNS-12537: TNS: Connection closed
ORA-609 Opiodr Aborting Process Unknown Ospid

事象が発生する原因

クライアントが接続に失敗したか、接続プロセスを中止した場合に出力されます。

10gR2以降、インバウンド接続タイムアウトのデフォルト値は60秒に設定されていますが、接続プロセス全体を完了するには不十分とされています。

※エラーが断続的である場合も通常は重大な問題ではなく、接続プロセス全体が完了する前にサーバープロセスがタイムアウトになったことを意味しています。


対応

当該環境では頻発しておらず、断続的に発生していないため静観対応としています。
★一過性のものではなく頻発するようであれば、後続に記載する対策を試すのも良いかと考えます。

★ORA-609 [Opiodr Aborting Process Unknown Ospid]が発生するときは、アプリ側の業務処理がエラーで失敗しているケースがほとんどです。
★発生した要因や、業務処理の重要度で対策が多岐にわたると思います。人が実行したSQL処理で業務サービス影響が無い場合には、静観されるケースが多いです。


対策が必要な場合の対処

最も簡単な解決策は、サーバー(データベース) sqlnet.ora の SQLNET.INBOUND_CONNECT_TIMEOUTパラメータ値を増やすことです。

このパラメータファイルのデフォルトの格納場所は、Gridホームではなく、$RDBMS_HOME/network/admin に存在しています。

SQLNET.INBOUND_CONNECT_TIMEOUT パラメータのデフォルト値は60秒であり、断続的なORA-609が発生している場合は、この設定値を120に増やすことが推奨されています。
よって、頻発して業務処理影響の重要度が上がった場合には、「SQLNET.INBOUND_CONNECT_TIMEOUT のパラメータ値を増やす」または、アプリ処理の速度改善が求められます。

また、ORA-609が頻発するようになった場合には、その発生時期で以下の確認が必要です。
・SQLの実行時間が増加していないか?
・アプリケーションの改修等が行われていないか?
・接続量が増えていないか?
・データ量が増えていないか?
・ネットワーク設定の変更があったか?
etc

併せて本ページ下部の「参考文献」に記載したMOSのドキュメントも参考にしてみてください。

本事象を確認した発生環境

マシン
HPE DL380 Gen10

構成
RAC 4ノード

OS
Windows Server 2016

Oracle Database
Oracle Database 12.2.0.1.0 for Microsoft Windows(x64)

Grid Infrastructure
Oracle Grid Infrastructure 12.2.0.1.0 for Microsoft Windows(x64)


・参考文献
My Oracle Supportドキュメントより:
11g以降:DB アラートログの ORA-609 TNS-12537およびTNS-12547またはTNS-12170 (Doc ID 2659613.1)

この記事をシェアする

  • Facebook
  • X
  • Pocket
  • Line
  • Hatena
  • Linkedin

資料請求・お問い合わせはこちら

ページトップへ戻る