ORA-27101: shared memory realm does not exist

    今日网友向我求教, 说是不加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参数去掉, 重启数据库, 并不出现以上问题了.

留言 (1)

发这个文时我没有做实验.
我在10g上没有能够重演, 明天找个机会在9i上试试.

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • It was a terrible experience.
  • 那是一次可怕的经历.
  • I am on top of the world.
  • 我高兴到了极点.
  • The dinner was wonderful.
  • 晚餐棒极了.
  • The Christmas tree is gorgeous.
  • 圣诞树真华美.
  • What a boring movie it is!
  • 多么无聊的一场电影啊.