在出现上述错误信息时,一般还伴有错误信息:ORA-01034: ORACLE not available。原因是在同一个服务器上,使用了不同的ORACLE_HOME。该问题常常是在ORACLE8.1.7服务器版上出现的。
[@more@] 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参数去掉, 重启数据库, 并不出现以上问题了.
首先看一下 ORACLE_BASEORACLE_HOMEDATABASE 下面的 ORADIM.LOG 文件
如果里边有这个错误
ORA-12640: 验证适配器初始化失败
那么问题就是他了.
到ORACLE_BASEORACLE_HOMENETWORKADMIN下面找sqlnet.ora文件
把sqlnet.authentication_services=(NTS) 改成
sqlnet.authentication_services=(NONE)
然后手动重起一下你的哪个数据库服务..在开始->控制面板->管理工具->服务里然后把这个服务的启动帐号改成你的帐号吧...其实不改大概也没有毛病
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/34329/viewspace-916769/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/34329/viewspace-916769/