オラクルデータベースにおけるORA-01115エラーの理解と解決

エラーの説明

  • ORA-01115:「ファイル %s からブロックの読み込み中にIOエラーが発生しました(ブロック # %s)」
  • 原因: エラーが発生したファイルが保存されているデバイスがオフラインの可能性があります。
  • 対処法: デバイスへのアクセスを復旧させてください。

ORA-01115に付随する一般的な問題

  • ORA-01110エラーが伴うことが多いです。
  • ORA-0737XのようなOSレベルのオラクルエラーメッセージが含まれることもあります。
  • Unixのエラー番号5などのOSエラーも発生することがあります。

解決方法

  1. ハードウェアの問題: ORA-01115の多くはハードウェアの問題によるものです。データベースレベルの解決策を試みる前に、ハードウェアの問題を特定することが重要です。
  2. ハードウェアのチェック: ディスク、コントローラー、I/Oサブシステムに関するOSレベルのツールや診断を実行してください。参照されているデータファイルが存在するディスクに特に注意してください。
  3. 未知の問題の診断:
    • 問題の原因と範囲を見積もります。
    • 他のORA-01115エントリーがないかインスタンスのalert.logファイルをチェックしてください。
    • 問題がコントローラーの問題、ディスクの問題、特定のデータファイルの破損に関連しているかを判断してください。

エラー解決の手順

  1. 未知の問題の場合:
    • データファイルがSYSTEM表領域にある場合、またはデータベースがNOARCHIVELOGモードの場合はデータベースを閉じてください。
    • データベースがARCHIVELOGモードの場合、閉じることができれば閉じてください。できなければ、影響を受けたデータファイルをオフラインにしてください。
    • データファイルを別のディスクにコピーしようとしてみてください。
    • コピーに失敗した場合、データファイルの損失と見なし、表領域のタイプに基づいて対処してください。
  2. 既知の問題の場合:
    • コントローラーの問題: 通常は断続的であり、データファイルに損害を与えることはありません。影響を受けたファイルを別のディスクにコピーしてみてください。
    • ディスクの問題: 故障したディスクから別のディスクにデータファイルを移動してください。
    • データブロックの破損: SYSTEM、ROLLBACK、READ-ONLY表領域に属するファイルの場合は、ファイルが失われたと見なしてください。
    • Solaris上の大きなファイルの問題: Oracleバージョン7

【Oracleデータリカバリ】ORA-01115: ファイル(ブロック番号)からの読取りI/Oエラーが発生しました。、ORA-01110、ORA-27091: I/Oをキューできません 、ORA-27070、OSD-04006、O/S-Error

ORA-01115: ファイル(ブロック番号)からの読取りI/Oエラーが発生しました。

ORA-01110: データファイル: ”

ORA-27091: I/Oをキューできません

ORA-27070: 非同期の読取り/書込みに失敗しました

あるユーザーがwindows 2003のデータベースはストレージトラブルで、システムテーブルスペースにsystem.dbfがIOトラブルが現れた。データベースを起動するときに、エラになる:

ORA-01115: IO error reading block from file 15 
ORA-01110: data file … 
ORA-27091: unable to queue I/O 
ORA-27070: async read/write failed 
OSD-04006: ReadFile() failure, unable to read from file O/S-Error: (OS 121) The semaphore timeout period has expired.

以上ORA-01115、ORA-01110、ORA-27091、ORA-27070、OSD-04006、O/S-Error などのエラが根本的にはOracleデータベースと関係ない。トラブルの本質はWindowsで該当するディスクドライブのファイルが読み取れない。これもOS bug あるいは該当するディスクに物理的なトラブルが現れた。このトラブルに対してOSの視角で解決策を求めてください。うまくいかない場合に、特別な解決策を考えてください。 ‘