經(jīng)常遇到 oracle 監(jiān)聽無法啟動的情況,感覺很莫名其妙,,遇到的多了,,逐漸總結(jié)出來一些原因。 < xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
首先,,在安裝oracle的時候后,,處于聯(lián)網(wǎng)狀態(tài),而下次啟動的時候是斷網(wǎng)狀態(tài),,會導(dǎo)致監(jiān)聽無法啟動,,反之亦然。 其次,,主機名,,ip發(fā)生變化也會導(dǎo)致監(jiān)聽無法啟動。
解決辦法,, 運行cmd 輸入 lsnrctl start 查看錯如信息
然后去 E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN 路徑下 ,,修改
listener.ora中的HOST的值改成現(xiàn)在的機器名或IP地址,然后再啟動監(jiān)聽,,監(jiān)聽服務(wù)正常啟動,。
但由于不是很熟悉oracle ,更改listener.ora有時候會引發(fā)別的問題,。
我建議用如下方法,,屢試不爽
1. cmd 然后 sqlplus /nolog 在不登錄情況下運行sqlplus 2. connect /as sysdba 鏈接oracle 3. shutdown immediate 關(guān)閉當前例程 4. 用oracle自帶工具 Net Configguration Assistont刪除先有監(jiān)聽 然后從新創(chuàng)建一個監(jiān)聽 5. startup open 啟動oracle歷程
前天裝好的Oracle,昨天突然不好用了,,從Oracle的錯誤提示來看,是說TNS:no listener ,,估計是某種服務(wù)沒有啟動,,打開windows管理工具->服務(wù),一看,,有一個OracleOraHome90TNSListener這樣的服務(wù),,和錯誤信息題是一致,基本就可以肯定是這個服務(wù)所引發(fā)的問題,。再一看,,該服務(wù)沒有啟動,遂手工啟動,,刷新后一看,,該服務(wù)居然馬上就自動關(guān)閉了。重試N次,,結(jié)果一樣,。到Google搜索看看,沒想到這還是一個普遍的問題,,有一個人提出,把安裝目錄下的listener.ora打開察看,。如:d:\oracle\ora90\network\admin\listener.ora,。 打開該配置文件后發(fā)現(xiàn)如下一段配置信息: 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服務(wù)無法啟動了,馬上修改為現(xiàn)在的計算機名,,再次啟動OracleOraHome90TNSListener服務(wù)成功,,PL/SQL Developer連接Oracle數(shù)據(jù)庫成功,不能登陸故障排除,。
資料引用:http://www./541328.html
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 = 0 CONNECT_TIMEOUT_LISTENER = 10 TRACE_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 = 0 CONNECT_TIMEOUT_LISTENER = 10 TRACE_LEVEL_LISTENER = OFF
2,、 編輯$ORACLE_HOME/network/admin下的tnsnames.ora文件為: oracle7 = (DESCRIPTION = (ADDRESS = (PROTOCOL= TCP)(Host= test)(Port= 1521)) (CONNECT_DATA = (SID = oracle7)) ) 然后修改hosts文件
|
|