故障处理:ORA-01034 - Oracle not available ORA-27101 - shared memory realm does not exist

oracle数据库由于服务器异常重启而宕机,重启数据库后,发现远程连接无法连接

报错如下:

ORA-01034 - Oracle not available

ORA-27101 - shared memory realm does not exist

以前遇到过类似的情况,多是由于之前oracle使用的共享内存没有正常释放,重启过数据库后即可。

这一次处理起来便是直接重启数据库,然后悲剧的发现还是报错如上。

查看监听,发现也能捕获到实例信息,觉得很奇怪。

后来到$ORACLE_HOME/dbs下面查看spfile文件,发现竟然有两个spfile,分别是实例名大写和小写,

当前默认是大写的,于是export为小写,发现数据库依然能够启动起来,但是不是旧库(该数据库做过迁移)

于是有了头绪,再次观察lsnrctl status输出信息,发现确实有问题了,实例信息捕获到的是小写的实例名。。。

我将listener.ora中的sid改成大写后。。。应用重启正常,远程可以连接。

问题分析推理:

首先由于存在一个小写的实例名,并且该实例是静态注册的方式,导致监听启动起来便能看到该小写实例的信息,从而误导了我,以为监听是正常的,捕获到了数据库的信息。其实不然,另一方面,由于大写的实例采用的是动态注册的方式,oracle异常停掉后没有找到该实例的注册信息。。

你可能感兴趣的:(故障处理:ORA-01034 - Oracle not available ORA-27101 - shared memory realm does not exist)