linux centOs中安裝好數據庫,客戶端用plsql連接oracle


 

原創作品,轉載請在文章顯眼位置注明出處:https://www.cnblogs.com/sunshine5683/p/10030375.html 

首先,回顧上篇 CenOs7安裝oracle圖文詳細過程(02) ,安裝好oracle后再服務器端使用sqlplus訪問數據庫成功,后來客戶機訪問並沒有測試,接下來就接着,繼續學習客戶機端連接數據庫,過程中同樣遇到很多問題,因為是邊學邊弄,所以可謂是一步一個坎!

 

一、在客戶端安裝oracle客戶端,我這里服務器在虛擬機上,操作系統是linux,服務器是11g,客戶端在Windowsserver2008R2上,版本9i

1、首先在客戶機上安裝plsql(過程簡單,省略)

2、在客戶機上安裝oracle9i(過程簡單,省略),並配置好監聽程序

3、啟動plsql,連接服務器出現ora-12541 TNS:無監聽程序,此處解決方法:

在數據庫服務器查看監聽服務狀態 [oracle@xhq ~]$ lsnrctl status:  顯示監聽服務,如下

Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=adrep)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services     --------------------------------------------------------------------->沒有監聽服務
The command completed successfully
 

然后在服務器主機上使用命令 netmgr調出配置監聽界面,重新配置監聽,其中

Global Database Name :數據庫名

oracle home directory:安裝目錄,自動加載,可選擇

SID:實例名

 

接着查看實例名:然后填在相應的位置

 

 為了一行顯示,設置行寬

 

然后退出配置程序,查看監聽狀態,可以看到監聽服務正常

此時使用plsql連接,還是報ora-12541 TNS:無監聽程序異常,查閱資料,是防火牆沒關,tnsping 實例名(客戶端監聽配置的名字),同樣顯示超時然后關閉防火牆:

 

得知centos從7開始默認用的是firewalld,這個是基於iptables的,雖然有iptables的核心,但是iptables的服務是沒安裝的。所以只要停止firewalld服務即可: 
# sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

然后使用plsql連接,顯示無監聽程序ORA-12541:TNS:無監聽程序,此時重啟監聽

然后使用plsql登錄,正常登錄

 

使用tnsping 服務名,正常,不再超時

 

到此,客戶端連接數據庫問題已經全部解決!

附加1:

上面關閉防火牆由於使用的不是iptables,如果要改用iptables的話,需要安裝iptables服務: 
sudo yum install iptables-services 
sudo systemctl enable iptables && sudo systemctl enable ip6tables 
sudo systemctl start iptables && sudo systemctl start ip6tables

接下來在思考如何不關閉防火牆來連接服務器,還望各位路過的大神指點!

 

附加2:

在用戶之間切換時候注意加 “-”,如su - oracle,如果直接使用su oracle ,導致使用使用lsnrctl status 命令無法執行,具體原因還不知道,但是切換用戶時候加"-"問題解決,所以此次也列出來了。

 

到此,問題全部解決!

 


免責聲明!

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



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