RAC連線的問題ORA-12545

perfychi發表於2013-09-27

From:http://yangtingkun.itpub.net/post/468/273645
連線到RAC資料庫的時候經常會出現ORA-12545錯誤,在METALINK上查詢了一下,是Oracle的一個小bug。



在遠端客戶端連線RAC資料庫時,透過統一的服務名連線時經常會出現ORA-12545錯誤。

SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******
ERROR:
ORA-12545: 因目標主機或物件不存在, 連線失敗

警告: 您不再連線到 ORACLE。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******
ERROR:
ORA-12545: 因目標主機或物件不存在, 連線失敗

警告: 您不再連線到 ORACLE。

本地資料庫TNSNAMES的配置:

TESTRAC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.225)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testrac)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)

Oracle在文件Note:364855.1:RAC Connection Redirected To Wrong Host/IP ORA-12545中進行了相信的描述。

並給出瞭解決方法:修改資料庫中的初始化引數LOCAL_LISTENER:

SQL> CONN SYS@TESTRAC1 AS SYSDBA輸入口令: ****已連線。
SQL> ALTER SYSTEM 
2 SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521))' 
3 SID = 'testrac1';

系統已更改。

SQL> CONN SYS@TESTRAC2 AS SYSDBA輸入口令: ****已連線。
SQL> ALTER SYSTEM 
2 SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.225)(PORT = 1521))' 
3 SID = 'testrac2';

系統已更改。

設定之後,再次嘗試連線資料庫:

SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。
SQL> CONN NDMAIN@TESTRAC輸入口令: ******已連線。

修改之後,沒有再次出現同樣的錯誤。

不過Oracle沒有認為這個是bug,只是認為是PROBLEM。

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

相關文章