Oracle DBがWindowsの再起動時に自動で立ち上がらなくなった場合

Oracle DBをサービスとして登録してあり自動で起動するように設定されていて、TNSリスナーは自動で立ち上がるのにOracle DBに接続できない場合があります。 データベースを再作成した時にそうなることがあるのですが、そちらについての確認方法と対処方法を記入します。

今回のケースでは、DBにDBA権限で接続したときにマウント及びオープンされていないので、とりあえず、以下のコマンドを入力することでDBに接続できるようになります。

C:\Users\oracle>sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on 水 12月 4 13:49:43 2019

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

//sysdba権限でログイン
SQL> CONN / AS SYSDBA
アイドル・インスタンスに接続しました。

//DBの起動
SQL> STARTUP
ORACLEインスタンスが起動しました。

Total System Global Area  ********* bytes
Fixed Size                  ********** bytes
Variable Size             ********** bytes
Database Buffers          ********** bytes
Redo Buffers                *********** bytes
データベースがマウントされました。
データベースがオープンされました。

Oracle DBを使用するためにはサービスとして起動するほかに、マウント、オープンを行う必要があります。 マウント、オープンする設定がレジストリにあるのですが、オフになっているもしくは不整合が発生している可能性があります。

regeditを管理者権限で開いて、以下のキーを参照してください。 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_[HomeName]

以下のような観点で確認してください。

  • ORA[ServiceName]AUTOSTARTがtrueになっているか
  • 初期化パラメーターファイル等の設定ファイルの場所があっているか

詳細はレジストリ・パラメータの概要に。

コマンドからだとoradimコマンドで修正もできます。 詳細はORADIMを使用したOracle Databaseインスタンスの管理についてに。

教えていただいた @takashitel さんありがとうございました。