oracle11gracORA-12514 处理案例

ORA-12514: TNS:listener does not currently know of service requested in connect  descriptor,如果确实在tnsnames.ora文件中的service_name没有指定错误,那么,在单机情况下基本处理方法都是如下:

这个错误在9i出现比较多,在10g的时候不是很多

打开/network/admin/listener.ora文件,找到:

   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设置是否有问题。

 

请使用浏览器的分享功能分享到微信等