程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle 10g RAC連接錯誤的處理

Oracle 10g RAC連接錯誤的處理

編輯:Oracle數據庫基礎

在遠端客戶端連接RAC數據庫時,通過統一的服務名連接時經常會出現ORA-12545錯誤。

SQL> CONN NDMAIN@nuagerac輸入口令: ******已連接。
SQL> CONN NDMAIN@nuagerac輸入口令: ******
ERROR:ORA-12545: 因目標主機或對象不存在, 連接失敗
警告: 您不再連接到 Oracle。
SQL> CONN NDMAIN@nuagerac輸入口令: ******已連接。
SQL> CONN NDMAIN@nuagerac輸入口令: ******已連接。
SQL> CONN NDMAIN@nuagerac輸入口令: ******
ERROR:
ORA-12545: 因目標主機或對象不存在, 連接失敗
警告: 您不再連接到 Oracle。

本地數據庫TNSNAMES的配置:

nuagerac =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.127)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.128)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = nuagerac)
(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@nuage1 AS SYSDBA輸入口令: ****已連接。
SQL> ALTER SYSTEM SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.1.127)(PORT = 1521))'   SID = 'nuage1';系統已更改。
SQL> CONN SYS@nuage2 AS SYSDBA輸入口令: ****已連接。
SQL> ALTER SYSTEM  SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL =TCP)
(HOST = 192.168.1.128)(PORT = 1521))'  SID = 'nuage2';系統已更改。

設置之後,再次嘗試連接數據庫:

SQL> CONN NDMAIN@nuagerac輸入口令: ******已連接。
SQL> CONN NDMAIN@nuagerac輸入口令: ******已連接。
SQL> CONN NDMAIN@nuagerac輸入口令: ******已連接。
SQL> CONN NDMAIN@nuagerac輸入口令: ******已連接。
SQL> CONN NDMAIN@nuagerac輸入口令: ******已連接。
SQL> CONN NDMAIN@nuagerac輸入口令: ******已連接。
SQL> CONN NDMAIN@nuagerac輸入口令: ******已連接。
SQL> CONN NDMAIN@nuagerac輸入口令: ******已連接。

修改之後,到目前為止再也沒有出現ORA-12545的錯誤信息

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

這邊我特別的說明下:我用的Oracle的版本是 10.2.0.4,OS:Redhat as 4.5

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved