无奈了,只有发贴了,ora-12514错误。
无奈,只有发贴了,ora-12514错误。
发此贴纯属无奈,Google了,论坛搜索了,都没能解决问题,所以才发的帖,望版主谅解。
环境:服务端 linux as4+oracle9.2.0.4 ip:192.168.1.252 主机名:server.
客户端 win2003 oracle10gclient ip:192.168.1.254
问题如下:
sqlplus 连接出现ora-12514错误:监听程序当前无法识别连接描述符中请求的服务。
使用net manager 和 net configuration assistant测试连接的时候都是成功连接的。
服务端listener 监听正常(相关web服务使用也正常)
listener.ora 如下:
istener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = server.)(PORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/ora9/product/9.2)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = xjty)
(ORACLE_HOME = /opt/ora9/product/9.2)
(SID_NAME = xjty)
)
)
服务端tnsnames.ora如下:
nsnames.ora
# Generated by Oracle configuration tools.
xjty =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = server.)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xjty)
(SID = xjty)
)
)
INST1_HTTP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = MODOSE)
(PRESENTATION = http://HRService)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
客户端tnsnames.ora如下:
# tnsnames.ora Network Configuration File: F:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
XJTY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = server.)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xjty)
)
)
客户端上手动修改过tnsnames.ora加上(SID = xjty)结果一样
将HOST换成ip结果也一样,XJTY前面没有空格,tnsping正常,如下:
F:\oracle\product\10.2.0\client_1\BIN> TNSPING.EXE gnnt
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 25-6月 -
2007 02:14:58
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
F:\oracle\product\10.2.0\client_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = server.)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NA
ME = xjty)))
OK (30 毫秒)
F:\oracle\product\10.2.0\client_1\BIN>
郁闷死了,是不是SID事情?为什么用net manager配置的时候不能配置SID?而手动修改客户端tnsnames.ora以后再进net manager就发现
服务命名里面的xjty不见了,用net configuration assistant添加说已存在。
抓狂了,因为只是很少的一点应用只要能连接查询里面的一些数据就可以了,所以也来不及系统的看书也不一定能看懂。
麻烦各位达人帮忙,万分感谢。
[解决办法]
在服务器上执行sqlplus USERNAME/PASSWORD@xjty看看是否成功。还有就是在服务器上执行lsnrctl status,看看结果是怎样的。还有就是检查客户端的sqlnet.ora,看看NAMES.DIRECTORY_PATH的值是否有tnsnames。
