ORA-01261 からの ORA-12514
朝っぱらからOracleに接続できない、という報告を受け、調査。
エラー内容を確認したところ、
ORA-12514: TNS: リスナーは接続記述子でリクエストされたサービスを現在認識していません
であった。なぜ突然に!?
まずはlsnrctlで確認。
> lsnrctl status ・・・・ ・・・・ リスナーはサービスをサポートしていません。 コマンドは正常に終了しました。
なんと。
もしや、と思い tnsnames.ora の中身を確認するも、不審な点はなし。
その他の設定ファイル等も確認してみたが、問題は見当たらない。
次にローカルからDBに接続。
SQL> connect / as sysdba アイドル・インスタンスに接続しました。
おお、見事に落ちてる。
とりあえず、起動してみれば何かわかるんじゃ、という話になり・・・。
SQL> startup ORA-01261: Parameter db_create_online_log_dest_3 destination string cannot be tr anslated ORA-01263: Name given for file destination directory is invalid
むむー。
db_create_online_log_dest_3 にはEドライブを指定していたとのこと・・・・
Eドライブ、Eドライブ・・・・Eドライブがない。。。。
担当者の記憶違いかもしれん、慌てて初期化パラメータを確認。
SQL> show parameters db_create ORA-01034: ORACLE not available プロセスID: 0 セッションID: 0、シリアル番号: 0
あ、そう、起動してない。。。
SPFILEからPFILEを作成して確認
SQL> CREATE PFILE = 'C:\path\to\PFILEXXXXX.ORA' FROM SPFILE='C:\path\to\SPFILEXXXXX.ORA'; ファイルが作成されました。
たしかに、db_create_online_log_dest_3 にはEドライブが指定されていた。
ちょうどそのとき、お客様から「Eドライブ飛んじゃって復旧できぬ」という連絡が。。。
こちらも調査の結果をお伝えすると、
「復旧できぬなら、取り急ぎEドライブを指定している設定はずして仮復旧して」とのこと。
と、いうことで、PFILE変更し、SPFILE作成し、startupしたところ、、、無事起動。
SQL> startup ORACLEインスタンスが起動しました。 Total System Global Area 1.4965E+10 bytes Fixed Size 2135016 bytes Variable Size 1.1207E+10 bytes Database Buffers 3690987520 bytes Redo Buffers 64958464 bytes データベースがマウントされました。 データベースがオープンされました。
lsnrctlの結果も正常に。
げふー。