使用PLSQL客戶端登錄ORACLE時報ORA-12502和ORA-12545錯誤的解決方案


當使用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

SQL> show parameter listener
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string     
remote_listener                   string      LISTENERS_RACDB
 
SQL> alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))' sid='racdb1';

System altered
 
注意上面的地址是vip地址,sid是當前數據庫實例ID,在每個數據庫節點上執行上述命令,並重新啟動集群,再嘗試登錄,則會發現問題已經排除了。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM