現在地

比較的長期化しやすい ORA エラー

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

2015年10月1日発出のコラムにて、発生頻度の高い ORA エラーというタイトルにて、「ORA エラーの区分」「お問合せいただく ORA エラーの比率」についてご紹介させていただきました。まだご覧いただいていない方は、是非下記よりご参照いただけますと幸いです。

2015年8月から月日が経過しているため、現在(2017年1月)において発生頻度の高い ORA エラーの傾向に変化があるか確認したところ、以下の状況となっておりました。

※ 前回は比率をご紹介していますが、今回はお問合せ件数の上位のご紹介とさせていただきます。

  • 1位:ORA-00600
  • 2位:ORA-07445
  • 3位:ORA-04031
  • 4位:ORA-03113
  • 5位:ORA-01555
  • 6位:ORA-03135
  • 7位:ORA-06512
  • 8位:ORA-04030
  • 9位:ORA-00604、ORA-00904

※ ORA-00904 は Vol.39 でご紹介していないため、以下に一般的な原因と確認観点を記載します。

ORA-00904

本メッセージは、列名を指定していない、または列名が無効な場合に発生するエラーです。
このエラーが発生した場合には、以下を確認する必要があります。

  • 有効な列名となっているか
  • 列名の先頭が、英字を使用しているか
  • 長さは30 文字以下であるか
  • 英数字および特殊文字$ 、_ 、# のみで構成しているか
  • それ以外の文字を含んでいる場合は、二重引用符で囲んでいるか
  • 予約語を使用していないか

以上から、ORA-00904 を除き、発生頻度の高いエラーの傾向に変化は見受けられませんでした。

なお、今回はお問合せいただいてからクローズ(お問合せ対応を終了する時)までの期間が比較的長い ORA エラーについて抽出しています。クローズまでの期間が長い ORA エラーを把握いただくことで、お早めにお問合せいただくべき事象を把握することができます。今号では「比較的長期化しやすい ORA エラー」をご紹介します。

比較的長期化しやすい ORA エラー

2017年1月現在までにお問合せいただいた件数において、クローズまでに時間を要している上位10の ORA エラーは以下のとおりです。

  • 1位:ORA-00312
  • 2位:ORA-03135
  • 3位:ORA-04031
  • 4位:ORA-01017
  • 5位:ORA-01555
  • 6位:ORA-01110
  • 7位:ORA-03113
  • 8位:ORA-01031
  • 9位:ORA-04030
  • 10位:ORA-06512

発生頻度の高い ORA エラー1位、2位の ORA-00600 や ORA-07445 が上位ではありませんでした。ORA-00600 や ORA-07445 は、多くのケースで製品不具合により発生します。そのため、既知の不具合として発生原因や対処策に関する情報が多く存在していることから、上位に挙がっていないものと考えています。(新規不具合の場合には、ベンダー側での調査が必要であるため、お時間を要することがあります。)
以下に、比較的長期化しやすい上位5件の ORA エラーについて、ご紹介します。

ORA-00312

本メッセージは、オンライン REDO ログファイルに関連するメッセージです。付随するメッセージは多岐に渡りますが、何らかの障害復旧のために Oracle Database のリストア/リカバリに失敗するような状況ですと、長期化しやすい傾向があります。
リストア/リカバリに失敗する状況は、構成によっては Oracle Database が稼働していない状態となるため、業務に大きな影響が発生します。大きな業務影響が発生したことによって、復旧後においても、障害およびリストア/リカバリに失敗した厳密な原因究明、および再発防止策のご依頼をいただきます。リストア/リカバリが必要となる状況は様々ありますが、問題の切り分けのために OS や HW 側からの調査も必要となることもあります。
ORA-00312 は、あくまでオンライン REDO ログファイルに関するメッセージです。一概には言えませんが、状況によっては長期化しやすい傾向があります。

ORA-03135

本メッセージは、接続タイムアウトエラーを示しており、許可された時間内に接続および認証を完了していない場合に発生します。データベースへの接続では、アプリケーション/ネットワーク/Oracle Net/Oracle Database 自体等が関与していますので、どの部分においてどのような方法で発生しているのか切り分ける必要があります。この問題の切り分けが難航する場合に長期化しやすい傾向があります。また、再現性が低いケースでは、どのような方法で発生するのかを特定する調査が難航します。事象の再現方法が特定できた場合においても、事象によっては、詳細なトレース出力設定を実施いただいた上で再現いただく必要があるため、更に長期化する傾向があります。

ORA-04031

本メッセージは、共有プールへのメモリ割り当て要求の失敗を示します。エラーメッセージが示す箇所の設定値を見直すことで多くの場合は解決が可能します。お客様にとって分かりやすい回答を心掛けていますが、共有プールやメモリの割り当ての仕組みがやや複雑であるため、内容をご理解いただくまでに質疑応答が繰り返される傾向があります。また、適切な値の検討および設定するための期間や、問題が発生しなくなっているか確認されるための様子見の期間があることから、長期化しやすい傾向があります。

ORA-03113

本メッセージは、Oracle Database に接続時にサーバ・プロセスで通信できなくなったことを示します。Oracle Database の起動/停止時、Oracle Database への接続時、SQL を実行している時等に発生します。この問題の発生原因は多岐に渡るため、どの部分においてどのような方法で発生しているか切り分ける必要があります。ORA-03135 のように、再現性が低いケースでは、どのような方法で発生するのかを特定する調査が難航します。また、事象の再現方法が特定できた場合においても、詳細なトレース出力設定を実施いただいた上で再現いただく必要があるため、長期化しやすい傾向があるとご認識いただければと思います。

ORA-01555

ORA-01555 は読み取り一貫性を保持するための UNDO データが上書きされた際に発生するエラーです。UNDO 表領域のサイズが不足していたり、何らかの SQL の実行に長時間を要することで発生します。ORA-04031 と同様に、読み取り一貫性の仕組みがやや複雑であるため、内容をご理解いただくまでに質疑応答が繰り返される傾向があります。また、適切な値の検討および設定するための期間や、問題が発生しなくなっているか確認されるための様子見の期間があることから、長期化しやすい傾向があります。

まとめ

「厳密な原因究明が必要な場合」「問題の切り分け範囲が広い場合」「発生箇所の機能の仕組みが複雑な場合」は比較的長期化する傾向があります。ご紹介した ORA エラーが発生した場合には、お早めにお問合せいただくことをお勧めいたします。

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