當使用plsqldev客戶端登錄oracle資料庫時,如果對應的tnsnames.ora中是直接使用IP地址來連接,並且未在系統的hosts文件中綁定主機名時,極易出現ORA-12502及ORA-12545報錯,這兩種錯誤內容分別是: ORA-12502: TNS:listener received ...
當使用plsqldev客戶端登錄oracle資料庫時,如果對應的tnsnames.ora中是直接使用IP地址來連接,並且未在系統的hosts文件中綁定主機名時,極易出現ORA-12502及ORA-12545報錯,這兩種錯誤內容分別是:
ORA-12502: TNS:listener received no CONNECT_DATA from client
ORA-12545: Connect failed because target host or object does not exists
而且就算是偶爾正常能登錄進去,登錄過程也會非常緩慢,這就很有可能是資料庫的監聽參數沒配置正確,可以使用以下方式來解決。
1、在windows的hosts文件中顯式的綁定IP和主機名,比如我的資料庫VIP地址是192.168.1.10,資料庫伺服器主機名為racdb1,則綁定之:
192.168.1.10 racdb1-vip
這樣,再使用plsqldev登錄時,便不會再出現上述兩種錯誤。當然,如果你嫌這樣太麻煩,想要像我一樣直接在tnsnames.ora里指明IP來訪問,則可以採用以下第二種方案
2、顯式設置local_listener參數值,如下操作:
$ sqlplus / as sysdba
System altered 註意上面的地址是vip地址,sid是當前資料庫實例ID,在每個資料庫節點上執行上述命令,並重新啟動集群,再嘗試登錄,則會發現問題已經排除了。