Views: 2038
[エラーメッセージ]
ORA-03113:通信チャネルでend-of-fileが検出されました
[発生原因]
このエラーは様々な原因が考えられます。
【原因1】
サーバープロセスが異常終了した
ネットワーク通信に問題が発生した
サーバープロセスが異常終了した場合、FINフラグが立ったTCPパケットがクライアントに送られます。
この結果、クライアントでORA-03113エラーが発生します。
サーバープロセスが異常終了する一般的なパターンを以下に記載します。
サーバープロセスでORA-7445エラーが発生した
killコマンドなどを用いてOSレベルでサーバープロセスを強制的に終了した
また、shutdown normal 以外でインスタンスをシャットダウンした場合も、
FINフラグが立ったTCPパケットがクライアントに送られるため、同様にクライアントでORA-03113エラーが発生します。
【原因2】
ネットワーク通信に問題が発生した
何らかの理由で、ネットワーク通信に問題が発生し、FINフラグが立ったTCPパケットがクライアントに送られた場合、クライアントでORA-03113エラーが発生します。
[調査方法]
状況を確認するためにアラートログを調べます。
以下のパスにあるアラートログを確認します。
例:D:\app\diag\rdbms\orcl\orcl\trace\alert_orcl.log
サーバ側の状態およびネットワークの状態などを確認する必要があります。
以下のような項目を確認し、問題の切り分けを行います。
データベースの状態確認
データベースが正常に起動しているかを確認
データベースの alert.log などからサーバプロセスが停止した可能性がないかなどを確認
データベースをシャットダウンや再起動していないかを確認
ネットワーク・クライアント環境の状態確認
LANケーブル抜線など物理的な問題の可能性がなかったかを確認
別のクライアントマシンから同じ処理を実行した場合にも同様にエラーとなるかを確認
データベースサーバー上で同じ処理を実行した場合にも同様にエラーとなるかを確認
データベースリンクなどを使用している場合は、データベースリンクを経由した場合のみの問題でないかを確認
SQL文発行時の場合
長いSQL発行時に出る場合は、SQLを短くする、取得データを減らすなどを行い、どのレベルでエラーが発生するかを確認
VIEWやSYNONYMを使用している場合、直接それらの実テーブルを参照することで回避できないか確認
表の結合を行っている場合、結合方法を変える、ヒント句をつけるなどで回避できないか確認
その他環境依存の問題
ミドルウェアなどを経由で接続している場合はそのアプリケーションのプロセスなどが、停止した可能性がないかを確認
データベースサーバがWindowsの場合はサービスが起動しているか、停止した可能性がないかを確認
基本的にORA-3113が1回だけしか発生しておらず、エラーに再現性が無い場合、原因を調査するのは難しいです。
再現性がある場合は上記方法などによる切り分けやOracle NetのTraceを取得するなどの方法で原因を究明することができる可能性がありますが、
難易度が高いため基本的にはサポートセンターに問い合わせることをお勧めします。