無法啟動oracle監(jiān)聽處理
【LISTENER】主機名修改為IP地址后LISTENER無法監(jiān)聽到實例
----為什么listener.ora文件里面HOST后面到底應該輸入IP地址還是主機名。我的經驗告
訴我,這邊最好使用主機名。很多的時候,一個機器綁定的不只一個IP地址,如HOST后面是IP地址,那么ORACLE的listener只會監(jiān)聽指定的IP地址的訪問請求,本機其它IP地址的連接都會拒絕的。另外,創(chuàng)建監(jiān)聽的時候,listener.ora文件默認創(chuàng)建的就是主機名。那么,如果沒有特別的需要,就不要再去畫蛇添足的修改host_name為IP地址了。
將listener.ora和tnsnames.ora文件中的HOST信息從原來的主機名字修改為IP地址后,監(jiān)聽可以啟動,但是無論如何也監(jiān)聽不到數據庫實例的信息(即使反復重啟數據庫)。
修改后重新啟動監(jiān)聽,但是監(jiān)聽一直保持在如下的狀態(tài)LSNRCTL>statusConnecting
to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=144.194.192.183)(PORT=1521)))
STATUSoftheLISTENER------------------------
AliasLISTENER
VersionTNSLSNRforLinux:Version10.2.0.1.0-Production
StartDate21-JUL-201*14:34:20
Uptime0days0hr.0min.36secTraceLeveloff
SecurityON:LocalOSAuthenticationSNMPOFFListenerParameterFile/oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.oraListenerLogFile/oracle/app/oracle/product/10.2.0/db_1/network/log/listener.log
ListeningEndpointsSummary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=144.194.192.183)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))ServicesSummary...
Service"PLSExtProc"has1instance(s).
Instance"PLSExtProc",statusUNKNOWN,has1handler(s)forthisservice...
Thecommandcompletedsuccessfully
.【問題原因】
罪魁禍首在/etc/hosts文件。
先看一下在我處理之前該文件的內容:[root@testdb~]#cat/etc/hosts
#Donotremovethefollowingline,orvariousprograms#thatrequirenetworkfunctionalitywillfail.
127.0.0.1testdblocalhost.localdomainlocalhost::1localhost6.localdomain6localhost6
在這種默認配置下(操作系統(tǒng)安裝后的狀態(tài)),主機名字和本機的IP地址沒有對應起來..【問題解決】
(1)將/etc/hosts內容修改為:
[root@testdb~]#cat/etc/hosts
#Donotremovethefollowingline,orvariousprograms#thatrequirenetworkfunctionalitywillfail.127.0.0.1localhost.localdomainlocalhost::1localhost6.localdomain6localhost6144.194.192.183testdb
比較一下與之前文件的不同,這里修改的內容如下:1)將127.0.0.1后面的testdb主機名刪除
2)添加IP地址和主機名對應關系144.194.192.183testdb
通過ping主機名testdb的方式驗證一下修改后的效果:ora10g@testdb/home/oracle$pingtestdb
PINGtestdb(144.194.192.183)56(84)bytesofdata.
64bytesfromtestdb(144.194.192.183):icmp_seq=1ttl=64time=0.082ms
64bytesfromtestdb(144.194.192.183):icmp_seq=2ttl=64time=0.047ms
64bytesfromtestdb(144.194.192.183):icmp_seq=3ttl=64time=0.050ms
到此,主機名testdb與IP地址144.194.192.183建立起了對應關系。
(2)重新啟動監(jiān)聽
oracle監(jiān)聽器啟動錯誤-TNS-12546:TNS:permissiondenied
看下監(jiān)聽器狀態(tài)
oracle@linux-34:~>lsnrctlstatus
LSNRCTLforLinux:Version11.1.0.6.0-Productionon14-OCT-201*09:12:37
Copyright(c)1991,201*,Oracle.Allrightsreserved.Connectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux-34.site)(PORT=1521)))
TNS-12541:TNS:nolistener
TNS-12560:TNS:protocoladaptererrorTNS-00511:Nolistener
LinuxError:111:ConnectionrefusedConnectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))TNS-12541:TNS:nolistener
TNS-12560:TNS:protocoladaptererrorTNS-00511:Nolistener
LinuxError:111:Connectionrefused
啟動下試試
oracle@linux-34:~>lsnrctlstart
LSNRCTLforLinux:Version11.1.0.6.0-Productionon14-OCT-201*09:12:45
Copyright(c)1991,201*,Oracle.Allrightsreserved.
Starting/home/oracle/product/11.1.0/db_1/bin/tnslsnr:pleasewait...
TNSLSNRforLinux:Version11.1.0.6.0-ProductionSystemparameterfileis/home/oracle/product/11.1.0/db_1/network/admin/listener.ora
Logmessageswrittento/home/oracle/diag/tnslsnr/linux-34/listener/alert/log.xmlErrorlisteningon:(ADDRESS=(PROTOCOL=ipc)(PARTIAL=yes)(QUEUESIZE=1))Nolongerlisteningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux-34.site)(PORT=1521)))
TNS-12546:TNS:permissiondeniedTNS-12560:TNS:protocoladaptererrorTNS-00516:PermissiondeniedLinuxError:13:Permissiondenied
Listenerfailedtostart.Seetheerrormessage(s)above...
竟然報TNS-12546:TNS:permissiondenied
查看下/var/tmp/.oracle、/tmp/.oracle這兩個目錄的權限訪問。
linux-34:~#ls-lrtd/tmp/.oracle
drwxrwxrwx2rootroot4096May916:01/tmp/.oracle
linux-34:~#ls-lrtd/var/tmp/.oracle
drwxr-xr-x2rootroot4096Oct1409:45/var/tmp/.oracle
原因應該就在這了,/var/tmp/.oracle是755權限,把它修改為777。viewplainprint?
linux-34:~#chmod-R777/var/tmp/.oracle
擴展閱讀:oracle 監(jiān)聽無法啟動
經常遇到oracle監(jiān)聽無法啟動的情況,感覺很莫名其妙,遇到的多了,逐漸總結出來一些原因。
首先,在安裝oracle的時候后,處于聯(lián)網狀態(tài),而下次啟動的時候是斷網狀態(tài),會導致監(jiān)聽無法啟動,反之亦然。
其次,主機名,ip發(fā)生變化也會導致監(jiān)聽無法啟動。
解決辦法,運行cmd輸入lsnrctlstart查看錯如信息
然后去E:\\oracle\\product\\10.2.0\\db_1\\NETWORK\\ADMIN路徑下,修改
listener.ora中的HOST的值改成現在的機器名或IP地址,然后再啟動監(jiān)聽,監(jiān)聽服務正常啟動。
但由于不是很熟悉oracle,更改listener.ora有時候會引發(fā)別的問題。
我建議用如下方法,屢試不爽
1.cmd然后sqlplus/nolog在不登錄情況下運行sqlplus2.connect/assysdba鏈接oracle3.shutdownimmediate關閉當前例程
4.用oracle自帶工具NetConfiggurationAssistont刪除先有監(jiān)聽然后從新創(chuàng)建一個監(jiān)聽
5.startupopen啟動oracle歷程
前天裝好的Oracle,昨天突然不好用了,從Oracle的錯誤提示來看,是說TNS:nolistener,估計是某種服務沒有啟動,打開windows管理工具->服務,一看,有一個OracleOraHome90TNSListener這樣的服務,和錯誤信息題是一致,基本就可以肯定是這個服務所引發(fā)的問題。再一看,該服務沒有啟動,遂手工啟動,刷新后一看,該服務居然馬上就自動關閉了。重試N次,結果一樣。到Google搜索看看,沒想到這還是一個普遍的問題,有一個人提出,把安裝目錄下的listener.ora打開察看。如:d:\\oracle\\ora90\\network\\admin\\listener.ora。打開該配置文件后發(fā)現如下一段配置信息:LISTENER=
(DESCRipTION_LIST=(DESCRIPTION=(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=IBMThinkPad)(PORT=1521)))))
當看到這一行HOST=IBMThinkPad的時候,問題解決了。原來是由于幾天裝好Oracle后,又改了Windows的計算機名,而這個配置文件中記錄的監(jiān)聽主機名還是原來的名稱,這也就怪不得,OracleOraHome90TNSListener服務無法啟動了,馬上修改為現在的計算機名,再次啟動OracleOraHome90TNSListener服務成功,PL/SQLDeveloper連接Oracle數據庫成功,不能登陸故障排除。
資料引用:
tnslistener
、編輯$ORACLE_HOME/network/admin下的listener.ora文件為LISTENER=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=IPC)(KEY=oracle7))(ADDRESS=(PROTOCOL=IPC)(KEY=PNPKEY))
(ADDRESS=(PROTOCOL=TCP)(Host=test)(Port=1521)))
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=
(GLOBAL_DBNAME=test.)
(ORACLE_HOME=/usr/oracle/app/oracle/product/7.3.4)(SID_NAME=oracle7)))
STARTUP_WAIT_TIME_LISTENER=0CONNECT_TIMEOUT_LISTENER=10TRACE_LEVEL_LISTENER=OFF
2、編輯$ORACLE_HOME/network/admin下的tnsnames.ora文件為:oracle7=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(Host=test)(Port=1521))(CONNECT_DATA=(SID=oracle7)))
然后修改hosts文件
、編輯$ORACLE_HOME/network/admin下的listener.ora文件為LISTENER=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=IPC)(KEY=oracle7))(ADDRESS=(PROTOCOL=IPC)(KEY=PNPKEY))
(ADDRESS=(PROTOCOL=TCP)(Host=test)(Port=1521)))
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=
(GLOBAL_DBNAME=test.)
(ORACLE_HOME=/usr/oracle/app/oracle/product/7.3.4)(SID_NAME=oracle7)))
STARTUP_WAIT_TIME_LISTENER=0CONNECT_TIMEOUT_LISTENER=10TRACE_LEVEL_LISTENER=OFF
2、編輯$ORACLE_HOME/network/admin下的tnsnames.ora文件為:oracle7=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(Host=test)(Port=1521))(CONNECT_DATA=(SID=oracle7)))
然后修改hosts文件
友情提示:本文中關于《無法啟動oracle監(jiān)聽處理》給出的范例僅供您參考拓展思維使用,無法啟動oracle監(jiān)聽處理:該篇文章建議您自主創(chuàng)作。
來源:網絡整理 免責聲明:本文僅限學習分享,如產生版權問題,請聯(lián)系我們及時刪除。