ora-12514:TNS:listener does not currently know of service requested in connect descriptor
这个错误让我们很烦恼
今天上班的时候也发现了这个错误!细细想起来昨天下班前还正常,这之后记得机器上没有装什么其他的新的软件了,我也没有装什么优化软件和杀毒,唯一的可能就是我的是笔记本在公司分配得到的ip和家里的ip不一样,估计问题就在这里了.
在Google了一下然后发现了答案但是不全都是能解决
方案:
问题所在---监听目前不知道要求服务连接描述符
分析---这个错误是因为Listener出了问题,这个时候要检查一下listener.ora文件,看下是否存在如下配置:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
如果说是这样,那么请将一段改成
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
) (SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(SID_NAME = ORCL)
)
)
这样以后,关掉Service和LISTENER。再启动Service和LISTENER,注意顺序。
http://blog.csdn.net/icqsky/archive/2009/07/01/4313791.aspx上的描述是:(
查了一下,网上是说,加上了面一段东西,意思是把LISTENER服务主动注册到进程监视器(pmon)中去。所以,但你启动了Serivce后,启动LISTENER的时候,会主动去注册到进程监视器(pmon)中去。所以不会有什么问题。但是反过却不行。
如果说没有添加那一段,情况正好相反,是由实例的pmon进程在LISTENER中注册服务,LISTENER为被动注册。所以需要先起LISTENER才可以。 )
到这里了重新开计算机也还是不得一样的错误还存在!这个时候不要担心
还有个地方要修改
找到 listener.ora 下的
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.112)(PORT = 1521))
)
)
)
注意以上红色字体是要修改的!
把红色ip地址换成你本机的ip 然后关了service服务和listener服务,就可以了,这个时候可能回报not listener 错误,这个时候你再关闭service服务和listener 多关开几次就可以了(注意配置要正确,如果配置的不对问题依然的!)