現在地

データベース運用時に監視対象とするエラー・コードについて

*以下は、サポート契約締結中のお客様に毎月配信しているサポートレターより一部抜粋して掲載しています。

はじめに : Oracle Database のログ監視について

一定規模以上のシステムを運用するにあたっては、各コンポーネントの障害や異常を迅速に検知して対策を取るために、当該コンポーネントのログ監視の仕組みを組み込むことが一般的です。具体的には事前に設定した特定のメッセージがログファイル中に出力された際に当該メッセージを補足し、運用サイドにアラートを上げるような設定を行うことで、即座に問題の発生を検知することができます。
Oracle Database の運用にあたっても上記のようなログ監視の仕組みを実装されているお客様が多数いらっしゃいます。
一方で、Oracle Database には全てを把握するのが事実上不可能なほどに多数のエラー・コードが存在しており、どのエラー・コードを監視対象とし、どのエラー・コードでは緊急での対応が必要となるか、といった判断に悩まれるお客様の声がしばしば聞かれます。
もちろん、監視すべきエラーの種類や対応の優先度はお客様の要件に依存いたしますので、これらの点について一概に指針をお伝えすることはできませんが、製品側でクリティカルなエラーとみなすエラー・コードについての情報や、弊社サポートへのお問い合わせより得られた知見などを、概要レベルでご紹介します。

自動診断リポジトリ機能の監視対象

Oracle Database 11g 以降、障害診断データを収集、管理するインフラストラクチャとして、自動診断レポジトリ (Automatic Diagnostic Repository、以下 ADR) 機能が実装されています。
ADR は弊社サポートレター Vol.12 にて紹介しました通り、クリティカルと見なされるエラーがデータベース内で発生した場合に、診断用のデータをパッケージ化し、所定の箇所に一括で出力する機能となります。すなわち、ADR が監視対象としているエラー・コードは製品ベンダーがクリティカルであると見なしているエラーであると解釈できますので、緊急度の高いエラーとして監視されることをお奨めいたします。
実際に ADR が監視対象としている ORA エラー・コードは本記事の添付ファイルもしくは以下のリンクからご確認いただけます。

  • KROWN#126440
    自動診断リポジトリ(ADR)でインシデントが生成されるエラー番号について(11.1)
  • KROWN#
    140871 自動診断リポジトリ(ADR)でインシデントが生成されるエラー番号について(11.2)
  • KROWN#164338
    自動診断リポジトリ(ADR)でインシデントが生成されるエラー番号について(12.1)

対象となるエラーは、内部エラーおよびブロック障害、ハングおよびデッドロック等が主体となっておりますが、データベースのバージョンが異なる場合、新しいバージョンほどエラー・コードの追加や機能拡充により対象エラー・コードが増加しておりますので、その点ご留意ください。
※機能拡充により対象に追加されたエラーとしては、ORA-00227 のように、11.1.x 時点で存在しているにも関わらず、11.2 以降で監視対象となったエラーが該当します。
この種のエラーについては、より以前のバージョンでもクリティカルなエラーとして監視対象に加えることをご検討ください。
また、ADR に関しましては、弊社サポートレター Vol.12 も適宜ご参照ください。

  • NTT DATA INTELLILINK Oracle Support Letter 2013/05/16

既知の不具合の監視

ADR の監視対象ではないエラー・コードのうち、いずれのエラー・コードを監視するかという問題については、既知の不具合に関する情報が役立つ場合があります。
たとえば、大幅な性能劣化や結果不正、Data Guard 構成環境における同期中断といった重大な障害に付随して何らかのORA エラーが発生する場合があり、このようなケースにおいては当該エラーを監視することで、間接的に不具合の発生を監視することが期待できます。
Oracle 社からの注意喚起や、弊社サポートレターにて毎月紹介させて頂いております、直近の重要ドキュメント一覧なども参考に、監視が必要なエラー・コードを選定頂ければと存じます。

以前に発生した障害の監視

その他のエラー・コードについても、お客様環境で以前に発生した障害については、再発時の対応のため監視の対象とするお客様が多いものと思います。
障害が単一のエラーを伴って発生する場合には、ログ監視の観点では該当エラー・コードのみを監視すれば十分ですが、事象によっては複数のエラー出力を伴うものがあります。
Oracle Database の障害では、同一の事象であっても初期状態によりエラー出力の一部が変わることがありますので、このようなケースにおいては発生が確認されているすべてのエラー・コードを or 条件で監視しておき、検知した際に実際に事象が発生しているかを直接ご確認いただくことで、より確実に障害の再発を見落とさずに検知できます。

まとめ

Oracle Database のログ監視を行うにあたって、監視対象の過不足を評価するのは難しい課題ですが、ADR の監視対象や既知の不具合に関する情報、過去に発生した障害対応実績などは、監視すべきエラー・コードの候補を選定する際の助けとなります。本項でご紹介しました情報を活用し、データベースの運用・監視設計にお役立て頂けますと幸いです。

※ 本記事は 2016 年 7 月 28 日時点での情報となります。ご紹介した内容について、今後変更される可能性がございます。予めご了承ください。

(オラクル事業部 グローバル・アライアンス&サポート・サービス担当 平林)