最初用instantclient客戶端使用sqlplus xxx/[email protected]:1521/orcl 命令連接Oracle服務器報錯誤:ORA-12541: TNS:no listener
后來經過查詢是因為服務器中listener.ora里配置的是localhost,將他改為了服務器計算機名。
然后重啟了TNSlistener服務,再次連接發現報錯誤:ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
最后我發現用服務器的PLSQL連接上資料庫后,再通過instantclient遠程連接就沒問題了。我想問下這是什么原因呀? 而且我發現再次重啟TNSlistener服務,又無法連接了,并且在服務器中使用instantclient命令列也無法連接。按理來說PLSQL是基于instantclient的,咋只有用PLSQL連接上資料庫后,才能正常。
uj5u.com熱心網友回復:
如果plsq能夠連接,按說不應該存在命令列連接不上的情況。請參考如下排查:重啟監聽后,查看監聽狀態(命令:lsnrctl status),看監聽是否已經注冊。動態監聽自動注冊需要一段時間。
確定監聽注冊成功后再次使用命令列或plsql連接。
動態監聽除了自動注冊外,也可以使用手動注冊,請自行百度注冊命令。
uj5u.com熱心網友回復:
第二個錯誤是因為你tnsnames配錯了服務名。看你的描述,如果中間沒有什么步驟遺漏的話,感覺像是裝了多個oracle軟體導致的問題——無論是客戶端還是服務器端軟體,要連接遠程資料庫的話,一個就夠了,不需要都上。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/24589.html
標籤:開發
