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