ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务。网上搜了一堆,全是说listener.ora文件中有问题,但我怎么也没整好?
如这个网址:http://www.itpub.net/800167,1.html说将这个文件删除就可以。如http://www.gzitech.com/tech/list.asp?id=129说将listener.ora文件修改成如下就可以
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
)对这个文件的方法试了都没起作用?
请问问题在哪里?
如这个网址:http://www.itpub.net/800167,1.html说将这个文件删除就可以。如http://www.gzitech.com/tech/list.asp?id=129说将listener.ora文件修改成如下就可以
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
)对这个文件的方法试了都没起作用?
请问问题在哪里?
给你看我的listener.ora做参考# listener.ora Network Configuration File: d:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MYHOSTNAME)(PORT = 1521))
)
)
LZ 也没说清楚 在什么情况下 出现的什么问题. 出现ORA-12514 的情况有很多不要乱改 用netca 自动写进去的文件 就是一定好用的......lsnrctl status
看看监听 是否正常 service 的名字是否正确
=============================
看一下本地的 tnsnames.ora 中请求的 service name 是不是和数据库服务名一致。
2008 14:00:44Copyright (c) 1997, 2005, Oracle. All rights reserved.已使用的参数文件:
D:\oracle\product\10.2.0\client_2_2\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 10.10.2.60)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = TEST)))
OK (20 毫秒)
C:\Documents and Settings\IBM>sqlplus ifsapp/ifsapp@ifstestSQL*Plus: Release 10.2.0.1.0 - Production on Mon Aug 25 14:03:18 2008Copyright (c) 1982, 2005, Oracle. All rights reserved.ERROR:
ORA-12154: TNS:could not resolve the connect identifier specifiedtnsnames.ora:
IFSTEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.2.60)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)sqlnet.ora:SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES)
这是我所遇到的问题解决方案.
然后上网搜了改listner.ora文件,改后的文件如下,但是还是不行,请高手帮忙啊,急呢,谢谢啦。# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
)LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
初步怀疑是杀毒软件运行时禁用了某些进程,上面介绍 的解决办法可能还是解决不了问题。
我的解决办法是:重新启动所有的oracle服务,问题就解决了。
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
改为:
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
)
D:\oracle\Ora10g\sysman\config\emoms.properties
或者是
D:\oracle\Ora10g\主机名_SID\sysman\config\emoms.properties
中的这个
oracle.sysman.eml.mntr.emdRepDBName= 你的 Service name
oracle.sysman.eml.mntr.emdRepSID= 你的 SID
oracle.sysman.eml.mntr.emdRepConnectDescriptor=(DESCRIPTION\=(ADDRESS_LIST\=(ADDRESS\=(PROTOCOL\=TCP)(HOST\= 主机名 )(PORT\=1521)))(CONNECT_DATA\=(SERVICE_NAME\=你的 Service name)))
D:\oracle\Ora10g\sysman\config\emoms.properties
或者是
D:\oracle\Ora10g\主机名_SID\sysman\config\emoms.properties
中的这个
oracle.sysman.eml.mntr.emdRepDBName= 你的 Service name
oracle.sysman.eml.mntr.emdRepSID= 你的 SID
oracle.sysman.eml.mntr.emdRepConnectDescriptor=(DESCRIPTION\=(ADDRESS_LIST\=(ADDRESS\=(PROTOCOL\=TCP)(HOST\= 主机名 )(PORT\=1521)))(CONNECT_DATA\=(SERVICE_NAME\=你的 Service name)))
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.1.0\db_1)
(SID_NAME = ORACLE)
中ORACLE需要改为你自己的数据库名,我自己的那个ZY,两处都需要修改。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = oradb)
(SID_NAME = oradb)
)
)
还是先检查lsnrctl status的状态吧,我的服务为The listener supports no services了http://hi.baidu.com/duke147/blog/item/906f2f5f6c0f3258fbf2c0f8.html
重新启动所有的oracle服务,问题就解决了。【停止一下,,再启动一下则OK了】