ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exit

时间:2023-11-13 18:28:44

ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exit

ERROR: ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exit

1 先看oracle的监听和oracle的服务是否都启动了。启动oracle监听:
cmd的命令行窗口下,输入lsnrctl start,回车即启动监听。

2 查看oracle的sid叫什么,比如创建数据库的时候,实例名叫“abc”,那么先手工设置一下oralce的sid,cmd命令窗口中,set ORACLE_SID=abc

3

再输入sqlplus  /nolog,回车
再输入 conn / as sysdba;回车

4 再输入startup,回车.这步是启动oracle服务。如果startup启动被告知已经启动了,可以先输入shutdown immediate;等shutdown结束之后,再输入startup。

5 过几秒钟等命令运行完成,就能连接了。这个时候,可以输入"select count(*) from user_tables;"测试一下,看是否有查询结果。

6 出现ORA-01034和ORA-27101的原因是多方面的:主要是oracle当前的服务不可用,shared memory realm does not exist,是因为oracle没有启动或没有正常启动,共享内存并没有分配给当前实例.所以,通过设置实例名,再用操作系统身份验证的方式,启动数据库。这样数据库就正常启动了,就不会报ORA-01034和ORA-27101两个启动异常了。

[oracle@host-10-210-6-11 admin]$ cat listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.210.6.11)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
) SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = oracle)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl ) 之前这个 地方 sid_name 的名称写错了,报出了如上的错误,更改正确后正常了
)
) ADR_BASE_LISTENER = /u01/app/oracle