连接Oracle时报错ora-01034与ORA-27101

周末公司服务器突然断电,周一上班时先pl/sql连接数据库,起初报错无监听,手动启监听
[oracle@ORACLE247 ~]$ lsnrctl start listener
监听正常启动后,再次用pl/sql连接数据库,又报错:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
上网查阅可以知道,这里并不是内存不够的问题,而是数据库没有找到你需要连接的实例SID。两种情况:
一是你的数据库ORACLE_HOME或ORACLE_SID设置错误;
二是Oracle没有找到你所需要的实例。


对于已经运行了一段时间的Oracle,大多情况是第二种情况,解决方法也很简单,就是手动修正,让系统知道你要启动的是哪个实例:
在Windows里,可以在命令行下:

C:/>set ORACLE_SID=orcl (这里的orcl根据你的实际实例名)。

SQL>sqlplus / as sysdba --> startup (重新启动数据库)。

如果还是连接不上:
 1、则需要检查系统注册表中的ORACLE_HOME路径了。
 2、把sqlnet.ora文件中SQLNET.AUTHENTICATION_SERVICES = (NTS) 将NTS换成NONE。


在类Unix系统中,可以使用命令查看当前实例 
[oracle@ORACLE247 ~]$ echo $ORACLE_SID 
实例切换命令与Windows略有不同:
[oracle@ORACLE247 ~]$ export ORACLE_SID=orcl
然后再执行启动命令:
[oracle@ORACLE247 ~]$ sqlplus / as sysdba
SQL> startup


你可能感兴趣的:(Oracle报错解决)