ORA-12514: TNS:listener does not currently know of service requested in connect descriptor,如果确实在tnsnames.ora文件中的service_name没有指定错误,那么,在单机情况下基本处理方法都是如下:
这个错误在9i出现比较多,在10g的时候不是很多
打开
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME =
/oracle/app/oracle/product/10.2/db_1)
(PROGRAM = extproc)
)
)
添加:
(SID_DESC =
(GLOBAL_DBNAME = ylqiu)
(ORACLE_HOME = /oracle/app/oracle/product/10.2/db_1)
(SID_NAME = ylqiu)
)
最后变成:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME =
/oracle/app/oracle/product/10.2/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME =
/oracle/app/oracle/product/10.2/db_1)
(SID_NAME = ORACLE)
)
)
但是在rac情况可能由于local_listener设置不正确引起的,下面把最近给客户远程处理的过程写一下,此问题在当初给北京交管局处理的时候就出现过,但是这次开始客户引导问题,没有往这个方面想,最后查看还是由于此参数设置不正确引起的。
客户环境:
aix 下 使用hacmp操作系统集群软件oracle 10g rac ,当客户通过连接串连接节点1的时候报错,但是,连接节点2正常
[oracle@sheb_db2:/oracle/app/product/10.2/db_1/network/admin]$sqlplus qyl/qyl@orcl1
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 12月 26 22:11:51 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
最后查看参数:
[oracle@sheb_db1:/oracle/app/product/10.2/db_1/network/admin]
sqlplus / as sysdba
SQL> show parameters local_
NAME
TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener
string (ADDRESS=(PROTOCOL=TCP)(HOST=1
0.50.126.17)(PORT=1521))
log_archive_local_first
boolean TRUE
[oracle@sheb_db2:/oracle/app/product/10.2/db_1/network/admin]
sqlplus / as sysdba
SQL> show parameters local
NAME
TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener
string (ADDRESS=(PROTOCOL=TCP)(HOST=1
0.50.126.17)(PORT=1521))
log_archive_local_first
boolean TRUE
查看客户使用的是pfile文件,此文件中的local_listener使用的是*.local_listener。这个参数肯定是需要指定sid的。当更改后如下:
[oracle@sheb_db1:/oracle/app/product/10.2/db_1/network/admin] sqlplus / as sysdba
SQL> alter system set local_listener="(ADDRESS=(PROTOCOL=TCP)(HOST=10.50.126.16)(PORT=1521))" ;
System
altered.
[oracle@sheb_db2:/oracle/app/product/10.2/db_1/network/admin] sqlplus / as
sysdba
SQL> alter system set local_listener="(ADDRESS=(PROTOCOL=TCP)(HOST=10.50.126.17)(PORT=1521))";
System altered.
更改后一切正常。
正常情况下,我们安装完rac,这个参数设置是正常的,一定是工程师做什么操作更改此参数,但是更改没有指定sid引起的此问题
这个案例说明当我们在rac下出现ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
可以查看local_listener设置是否有问题。