分类: LINUX
2006-12-06 09:49:36
在出现上述错误信息时,一般还伴有错误信息: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版建立的,也可能出现该种错误信息。
我让他发了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参数去掉, 重启数据库, 并不出现以上问题了.