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 命令無法執行,具體原因還不知道,但是切換用戶時候加"-"問題解決,所以此次也列出來了。
到此,問題全部解決!