排错记录:plsql无法连接oracle ora-12154 ora-12560
對oracle各種各樣的錯誤還真是不熟悉,記錄一次困擾很久問題的最終排查記錄。
一、癥狀描述:
plsql無法連接數據庫,提示:“ORA-12154:TNS:無法解析指定的連接標識符”
二、排查過程
tnsnames.ora 填寫沒有錯誤
監聽服務已經啟動:管理工具--服務,OracleOraDb10g_home1TNSListener服務。
服務器orcl實例已經啟動:管理工具---服務,OracleServiceORCL
服務器能ping通:網絡連接良好
實例能tnsping通:能夠ping通,則說明客戶端能解析listener的機器名,而且lister也已經啟動,但是并不能說明數據庫已經打開,而且tsnping的過程與真正客戶端連接的過程也不一致。
oracle客戶端oracle net Manager測試通過,表明確實能連接
環境變量path值設置已經修改好。
sqlplus提示ORA-12154:sqlplus 用戶名/密碼@192.168.164.132:1521/orcl。
plsql-preference-oracle home人工設置正確。
已經過程經過N次重復始終無法連接,始終報錯“ORA-12154"。
三、解決方案
經過以上反復修改,終于有一天用sqlplus遠程連接時報了個新錯誤:
"ORA-12560:TNS:協議適配器錯誤"
總算有個眉目了,服務器端在環境變量中設置orcle_sid=orcl。
網上百度解決方法如下
在運行中輸入regedit,進入注冊表,然后到HKEY_LOCAL_MACHINESOFTWAREORACLEHOME0將該環境變量ORACLE_SID設置為****,****是database SID。
或者右擊我的電腦,屬性--高級系統設置--環境變量---系統變量--新建變量名=oracle_sid,變量值=****,****是database SID。或者進入sqlplus前,在command line下輸set oracle_sid=********是database SID。
但我進入注冊表后發現,我的ORACLE_SID=orcl,沒有問題。
繼續嘗試下面的設置環境變量的方式,新建變量:ORACLE_SID=orcl,問題解決。
有待探討
那么問題來了:
這臺服務器中注冊表中設置了ORACLE_SID也不能保證完全可以連接,最好設置ORACLE_SID;而跟他完全同樣配置的另一臺服務器(這兩臺其實是虛擬機,復制過來的,完全一樣),并未在環境變量中設置ORACLE_SID卻能連接。這是為什么?
參考
ORA-12560:TNS:協議適配器錯誤
ORA-12154: TNS: 無法解析指定的連接標識符
“ORA-12154:TNS:無法解析指定的連
SQL plus連接遠程Oralce數據庫
總結
以上是生活随笔為你收集整理的排错记录:plsql无法连接oracle ora-12154 ora-12560的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IEnumerable 遍历用法
- 下一篇: 3. Dataset、transform