Oracle XEを使い始めてしばらくするとログインできなくなっていた。
JDBC経由だとなぜか接続できるが、SQLPlusだとORA-01034とORA-27101エラーが発生してログインできない。
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory
ORA-01034エラーの原因は、環境設定が変更されたときに発生するとのこと。
そういえば、NTPで日付を設定し直したので、それが原因と考えられる。
で、Oracle XEを再起動したところ、状況は変わらなかった。
# /etc/init.d/oracle-xe stop
# /etc/init.d/oracle-xe start
次に環境変数をチェックした。
$ env | grep ORACLE_SID
ORACLE_SID=orcl
このマシンは、以前SIDがorclで起動していたが、途中でSIDをXEに変更した。よって環境変数が古いマシンの設定を引き継いでいたので、.bash_profileからOracle環境変数の設定を削除した。
Oracle XEの環境変数は、/etc/profile.d/oracle_env.sh で設定されている。
シェルをログインし直すと、ちゃんとSQLPlusでログインできるようになった。
参考URL:
http://www.oracle.co.jp/2shin/ora66/18.html
http://biz.rivus.jp/technote507058.html
http://q.hatena.ne.jp/1121132650