2013年12月20日金曜日

Oracleが起動しなくなったときの対処(ORA-01034,ORA-27101,ORA-03113,ORA-12640)

お客様先でUPS故障があり、サーバーの電源をコンセント直にしていたのですが、
そんな時に限って、電源が急に落ちるという事態。

結果、Oracleが起動せずにシステムが利用できなくなった。

そんなときの対処です。

Oracleのエラーコード

ORA-01034、ORA-27101

アプローチ まずはalert.log

まずはalert.log ということで、あちこちのファイルを探しても出てこない。
Winサーバなのでbdumpのフォルダがデフォルトということなのですが、
そこに出来ているファイルは更新日が1ヶ月以上も前。

一旦追うのをあきらめて、現象から調べていくアプローチへ切替。

エラーコードからgoogle先生

まず、ORA-01034:Oracleは使用できませんで調べると、
設定ファイル系がおかしくて起動できないのだろうという線の情報が多い。
ORACLE_SID,ORACLE_HOMEの環境変数など

事例から、以下コマンドを実施


set ORACLE_SID=ORCL
sqlplus /nolog
SQL> conn / as sysdba
SQL> startup mount

すると、別の現象
ORA-03113:通信チャネルでend-of-fileが検出されました
が発生。どうやら、別物らしいです。

そもそもデータベースがマウントできない。

REDOログが怪しいということで、REDOログの初期化を試行。

これもダメ。ORA-03113です。

ファイル走査

いったん手詰まり感が出たので、コンピューター上のログを
全検索。なぜか、sqlnet.logが更新されている。

開くと、

ORA-12640: 認証アダプタの初期化に失敗しました。

ん?って感じなのですが、それでさらに調べてみるとOTNにて
有用な情報を発見。
http://www.oracle.co.jp/forum/thread.jspa?messageID=27001826


確かに、ADはきちんと構築されていないお客様なので
設定を変更。そのとたん、何も処置をしなくても繋がるようになりました。


【変更前】SQLNET.AUTHENTICATION_SERVICE=(NTS)
【変更後】SQLNET.AUTHENTICATION_SERVICE=(NONE)


念のため、サーバーを再起動して動作を確認。

各クライアントからも繋がることを確認して、作業終了となりました。

結局は


原因の特定には至りませんでした。
AD認証から来る不都合だろうという結論。

そもそもUPSなしの運用はやめようね。

0 件のコメント: