Oracle ORA 12541 報錯解決過程


   

   

Oracle 導入全庫之后使用plsql登陸時報錯

   

版本12C版本2

   

ORA-12541: TNS: No Listener

   

   

   

再oracle主機本地可以使用sqlplus 登陸,但是使用plsql無法登陸,報錯如上。

   

首先考慮是防火牆問題,查看防火牆和selinux均為關閉狀態

   

然后查看監聽狀態

查看 監聽狀態的命令為首先使用oracle 用戶登陸操作系統,命令lsnrctl

進入監聽程序,關鍵status 查看監聽狀態

   

里面詳細列出了監聽的狀態以及服務端的監聽文件位置,

查看監聽文件

   

   

查看客戶端的監聽配置

   

   

   

無發現明顯問題,下面嘗試重啟監聽

   

重啟和啟動監聽的命令為

lsnrctl stoplsnrctl start

   

   

使用oracle用戶執行該命令

   

執行過上述的重啟監聽之后,依然報錯

   

為了排除防火牆因素在同網段使用ssh測試了連接1521端口,結果測試結果為訪問被拒絕

初步還是懷疑監聽服務的問題,再次查看監聽文件

HOST =localhost 修改為本地IP地址HOST = 172.16.103.9,注意修改監聽之前需要先關閉監聽,關閉監聽之后再修改監聽文件,最后再啟動監聽

修改后的監聽文件

啟動監聽

查看監聽狀態

1分30秒過去了,未監聽到實例。

此時嘗試使用plsql連接

   

此時依舊報錯12514,再次查看監聽狀態,依舊是未監聽到實例

再次嘗試修改監聽文件,將監聽IP修改未監聽主機名。因為hosts文件中有解析將本機解析為oracle,故將監聽文件中的主機名修改為oracle

修改后的監聽文件

對應的hosts文件

再次啟動監聽,查看監聽狀態

   

已經監聽到實例,再次使用plsql連接,plsql已經可以正常連接。

   

總結:本庫版本是oracle 12c 版本2 操作系統為oracle linux 7.3 這個庫我執行過從12C版本1 RAC集群到這個庫的整庫還原,使用的expdp和impdp備份還原,備份還原之后出現此故障,不知道是oracle自身的bug還是因為我之前的庫和現有的庫版本不一致導致的問題。總之,監聽文件中HOST對應的主機需要寫主機名,寫IP不生效,百度上說將HOST對應的值寫成0.0.0.0的也可以監聽到實例,再解決問題的過程中,沒有嘗試該方法。因為不清楚HOST=0.0.0.0是泛指該主機能連接到的所有主機還是該主機自身。還是HOST僅僅只能使用主機名來解析呢,還有,在我執行全庫還原操作之前是沒有這個問題的,監聽文件的默認配置為localhost。根據本機hosts文件,localhost可解析為127.0.0.1和::1,這兩條已經足夠代表本機自身了,為什么還需要使用安裝oracle過程中單獨添加的解析條目 172.16.103.9 oracle 呢?

   


免責聲明!

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



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