日期:2014-05-17  浏览次数:20922 次

ORACLE过一天后,已有的连接有效,但新连接有问题
在安装了oracle 11g后,发现遇到问题,总是在隔一天后出现,如果时间相对短,重新用工具连接,那么出现ORA-12518 TNS: 监听程序无法分发客户机连接;原来的已连接的web及应用程序都可以访问相关数据库; 如果时间相对长,重新用工具连接,出现:ORA-27101 Shared memory realm does not exist
ORA-01034 ORACLE not available
原来已连接的web及应用程序仍都可能访问相关数据库,不知如何解决这个问题


运行环境:windows 2003 32位系统, Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

listener.ora
DIRECT_HANDOFF_TTC_LISTENER = OFF
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = E:\app\zhongqi\product\11.1.0\db_1)
      (SID_NAME = orcl)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
      )
    )
  )

SQLNET.ora

SQLNET.AUTHENTICATION_SERVICES= (NONE)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

tnsname.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

------最佳解决方案--------------------
很明显是内存不够用了。
每个链接耗掉的内存使得share memery不够用。
扩一下sga。或者你把链接个数控制下
------其他解决方案--------------------
引用:
我刚看了 memory_max_target=820M:而且是不能修改的,memory_target=820M;改不上去了,sga就是memory_target吗?

修改memory_max_target参数必须指定scope=spfile,例如
alter system set memory_max_target=2048M scope=spfile;
然后需要重启数据库后生效。
memory_target=sga+pga,oracle会帮你自动分配合适的sga和pga的大小。
------其他解决方案--------------------
SGA不够了.
调高memroy_target参数,
alter system set memory_target=1024M
然后重启oracle。
------其他解决方案--------------------
ORA-27101的原因是多方面的:主要是oracle当前的服务不可用,shared memory realm does not exist,是因为oracle没有启动或没有正常启动,共享内存并没有分配给当前实例.所以,通过设置实例名,再用操作系统身份验证的方式,启动数据库。这样数据库就正常启动了,就不会报ORA-27101两个启动异常了
------其他解决方案--------------------
或者查看 show parameter local_listener
看看 local listener 有没有值 ,如果没有 则如下设置(例子)
SQL> alter system set local_listener='(ADDRESS =(PROTOCOL=TCP)(HOST=10.238.2.2)(PORT=1521)(SID=orcl))';


------其他解决方案--------------------
补充一下,echo %ORACLE_HOME% 和echo %ORACLE_SID%都是对的
------其他解决方案--------------------
不知有用没,改了下
------其他解决方案--------------------
修改本地listener是不行的
------其他解决方案--------------------