RAC連線的問題ORA-12545(二)
連線到RAC資料庫的時候經常會出現ORA-12545錯誤,在METALINK上查詢了一下,是Oracle的一個小bug。
RAC連線的問題ORA-12545:http://yangtingkun.itpub.net/post/468/273645
上一篇文件已經給出這個問題的解決方法了,不過今天發現另外一個解決方案。
文件一中給出的解決方法可以徹底的解決這個問題,而且對所有的連線都是有效的。不過缺點也是很明顯的。需要修改初始化引數,重啟例項,重啟監聽。有的時候,這個操作的代價太大了。這篇文章介紹的方法可以透過只修改客戶端hosts檔案的方式,來解決這個問題。
客戶端的tnsnames.ora中的配置如下:
SQL> host
$ more $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /data/oracle/product/10.2/database/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_TESTRAC2 =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.225)(PORT = 1521))
LISTENER_TESTRAC1 =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521))
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)
)
)
)
TESTRAC2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.225)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testrac)
(INSTANCE_NAME = testrac2)
)
)
TESTRAC1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testrac)
(INSTANCE_NAME = testrac1)
)
)
LISTENERS_TESTRAC =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.225)(PORT = 1521))
)
下面嘗試連線遠端RAC資料庫:
$ exit
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC
ERROR:
ORA-12545: 因目標主機或物件不存在, 連線失敗
警告: 您不再連線到 ORACLE。
SQL> CONN NDMAIN/NDMAIN@TESTRAC
ERROR:
ORA-12545: 因目標主機或物件不存在, 連線失敗
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC
ERROR:
ORA-12545: 因目標主機或物件不存在, 連線失敗
警告: 您不再連線到 ORACLE。
SQL> CONN NDMAIN/NDMAIN@TESTRAC
ERROR:
ORA-12545: 因目標主機或物件不存在, 連線失敗
可以看到,連線失敗的機率還是很高的。其實只有在本地hosts檔案中加上RAC例項所在伺服器的ip和主機名資訊,就可以避免這個錯誤:
SQL> host
$ su -
Password:
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
Sourcing //.profile-EIS.....
root@ahrac1 # vi /etc/hosts
#
# Internet host table
#
172.25.198.224 racnode1-vip
172.25.198.225 racnode2-vip
root@ahrac1 # exit
$ exit
SQL>
下面再次嘗試連線RAC資料庫:
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已連線。
問題已經解決。不過由於只修改當前客戶端的配置,所以這種方法也只對當前客戶端有效。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-69231/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RAC連線的問題ORA-12545
- ORACLE RAC中連線ScanIP報錯ORA-12545的問題解決Oracle
- 連線rac資料庫報ORA-12545資料庫
- 客戶端連線RAC報ora-12545客戶端
- RAC連線中TNSNAMES需注意的問題
- 9i rac 連線時提示ORA-12545!
- [重慶思莊每日技術分享]-ORACLE RAC中連線ScanIP報錯ORA-12545的問題解決Oracle
- Oracle11gR2 RAC 使用scan IP無法連線資料庫(ORA-12545)問題解決Oracle資料庫
- 由於內部連線引起的Oracle RAC效能問題Oracle
- oracle 10G rac ORA-12545:因目標主機或物件不存在,連線失敗問題總結Oracle 10g物件
- 最近遇到的RAC的一個例項無法連線的問題
- Oracle 11g RAC通過SCAN IP連線資料庫 - JDBC連線串問題Oracle資料庫JDBC
- Github ssh的連線問題Github
- WTC連線阻塞的問題
- Oracle RAC的ORA-12545 Connect failed because target host or object does not exist問題OracleAIObject
- 解決:客戶端連線11gR2 RAC報ORA-12545錯誤客戶端
- [zt] JDBC連線Oracle RAC的連線串配置JDBCOracle
- 連線oracle中出現的問題Oracle
- 關於mysql連線的問題MySql
- 關於連線池的問題!
- JDBC連線MySQL失效的問題JDBCMySql
- RAC 鎖管理與鎖問題的定位(二)
- MySQL SSL連線問題MySql
- HTTP 長連線問題HTTP
- jive 連線 mysql 問題MySql
- JDBC連線ORACLE問題JDBCOracle
- 遠端連線問題
- 問個jrun連線池的問題
- scan-ip連線出現“ORA-12545”
- ORACLE 11G RAC 訪問SCANIP ORA-12545Oracle
- rac 本地監聽問題導致資料斷斷續續連線
- 【問題記錄】—SignalR連線斷線重連SignalR
- 請問一個jndi連線的小問題
- golang websocket android連線的問題GolangWebAndroid
- 關與連線池的配置問題!
- IIS連線ORACLE的一個問題Oracle
- jdbc 連線 oracle racJDBCOracle
- 連線RAC資料庫中單個例項(二)資料庫