Chinaunix首页 | 论坛 | 博客
  • 博客访问: 561341
  • 博文数量: 44
  • 博客积分: 5017
  • 博客等级: 大校
  • 技术积分: 508
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-17 16:03
文章分类

全部博文(44)

文章存档

2011年(1)

2010年(1)

2009年(1)

2008年(5)

2007年(22)

2006年(14)

我的朋友

分类: LINUX

2006-12-06 09:49:36

  ORA-27101 Shared Memory Realm Does Not Exist

在出现上述错误信息时,一般还伴有错误信息:ORA-01034: ORACLE not available。原因是在同一个服务器上,使用了不同的ORACLE_HOME。该问题常常是在ORACLE8.1.7服务器版上出现的。

首先检查文件initSID.ora和listener.ora等,看ORACLE_SID和ORACLE_HOME设置的正确与否,ORACLE8.1.7是否用该参数值启动并运行。在UNIX环境中,字母大小写的意义是不一样的,这一点应当注意。如果ORACLE_HOME指向8.1.7版,而数据库是用8.1.6版或8.1.5版建立的,也可能出现该种错误信息。



另外一个哥们的解决方法是这样的:

今日网友向我求教, 说是不加tnsname可以连接数据库, 而加了tnsname则出现标题中的错误, 他百思不得其解. 因为ping和tnsping都没有问题, 但用SQL*Plus去试时就是出错, 一开始我也有点不明白.

    我让他发了listener.ora, tnsnames.ora和alert_sid.log给我, 在初始化参数中发现了下面两行:

  instance_name = wds
  dispatchers   = (PROTOCOL=TCP) (SERVICE=wdsXDB)

    发现MTS设置的服务名为WDSDB, 而Listener中没有设置这个服务名, 于是我就怀疑是这个参数的问题, 检查了一下tnsnames.ora中的内容:

WDS =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ...)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = WDS)
    )
  )

    没有指定用专用(Dedicated)方式时, 默认会用共享连接, 因为MTS服务名为WDSXDB, 而Listener中并没有这个服务存在, 所以报错了, 向他建议加了"(SERVER = DEDICATED)"之后, 用SQL*Plus检查连接成功. 最后我们将DISPATCHERS参数去掉, 重启数据库, 并不出现以上问题了.


阅读(18601) | 评论(0) | 转发(0) |
0

上一篇:e2fsck与fsck

下一篇:什么是GTK+?

给主人留下些什么吧!~~