首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

ORACLE过一天后,已有的连接有效,但新连接有有关问题

2012-12-15 
ORACLE过一天后,已有的连接有效,但新连接有问题在安装了oracle 11g后,发现遇到问题,总是在隔一天后出现,如

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是不行的
------其他解决方案--------------------


我刚看了 memory_max_target=820M:而且是不能修改的,memory_target=820M;改不上去了,sga就是memory_target吗?
[其他解释]
把oracle的日志文件清理下试一试.
[其他解释]
我认为可能是sessions和processes分配不足导致此错误。因为应用程序的一些操作可能会导致SESSIONS数暴增,从而使得sessions参数爆满而无法接收新的连接请求。可通过查看sessions和processes的值来确定是否该问题引起
show parameter sessions;
show parameter processes;

若是该参数引起,则可以将processes适当扩大,sessions一般设置为processes的1.1倍

然后重启数据库再看看...

热点排行