oracle11gracORA-12514 處理案例

guyuanli發表於2015-11-28

ORA-12514: TNS:listener does not currently know of service requested in connect  descriptor,如果確實在tnsnames.ora檔案中的service_name沒有指定錯誤,那麼,在單機情況下基本處理方法都是如下:

這個錯誤在9i出現比較多,在10g的時候不是很多

開啟<OracleHome>/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 

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設定是否有問題。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7490392/viewspace-1848587/,如需轉載,請註明出處,否則將追究法律責任。

相關文章