您的位置:首页 > 数据库 > Oracle

oracle 远程访问数据库 ORA-01034和ORA-27101问题的一种解决方法

2017-09-29 15:18 811 查看

1.先排除数据库没有启动

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

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

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

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

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

2.没有注册本地监听服务

1.今天在测试库上遇到了ORA-27101的错误,当通过客户端连接到db时返回如下:

[oracle@bluerin admin]$ sqlplus system/oracle@test
SQL*Plus: Release 11.1.0.6.0 - Production on Tue Aug 10 11:05:04 2010
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0


2.之后发现在报错之后,继续输入用户名和密码确可以登陆

3.由于实例已经在启动的状态,这时候考虑到实例注册的问题

#查询本地监听
SQL> show parameter local_listener
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string
#设置local_listener参数
SQL> alter system set local_listener='(ADDRESS =(PROTOCOL=TCP)(HOST=10.201.1.134)(PORT=1521)(SID=siebtest))';
#注册监听
SQL> alter system register;


总结:

如果LOCAL_LISTENER丢失,会导致自动实例注册失败,数据库实例不会识别Listener,当Listener连接

数据库实例的时候,由于Listener没有注册,导致了 ORA-27101: shared memory realm does not exist.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: