分類(lèi): Oracle
一、錯(cuò)誤描述 登陸PL/SQL Developer登陸本地?cái)?shù)據(jù)庫(kù)時(shí)先報(bào)沒(méi)有監(jiān)聽(tīng)程序,查看服務(wù)發(fā)現(xiàn)Oracle監(jiān)聽(tīng)服務(wù)沒(méi)有啟動(dòng)。右擊啟動(dòng)監(jiān)聽(tīng)程序,報(bào)錯(cuò): 錯(cuò)誤描述:本地計(jì)算機(jī)上的OracleOraDb11g_home1TNSListener服務(wù)啟動(dòng)后又停止了。一些服務(wù)自動(dòng)停止,如果它們沒(méi)有什么可做的,例如 "性能日志和警報(bào) "服務(wù)。 二、原因分析 你安裝oracle的時(shí)候是連網(wǎng)的,那么listener.ora文件里的HOST=網(wǎng)絡(luò)給你分配的IP地址,而在你斷網(wǎng)的時(shí)候就會(huì)出現(xiàn)這樣的情況。 三、解決辦法 方法一:監(jiān)聽(tīng)器 通過(guò)listener.ora或者Net Manager修改監(jiān)聽(tīng)器配置。將原來(lái)本地字符串127.0.0.1或者localhost改為主機(jī)名。 首先查閱你的**product11.2.0dbhome_1NETWORKADMIN目錄下的"tnsnames.ora"和"listener.ora"這兩個(gè)文件,然后看看里面的"HOST"信息,看看是不是你當(dāng)前的ip地址,如果不是嘗試著把這個(gè)2個(gè)文件改成你的ip地址,或直接就改成127.0.0.1(或計(jì)算機(jī)名字): 注意:此時(shí)的監(jiān)聽(tīng)配置文件"listener.ora"里面的HOST=的內(nèi)容(IP或者主機(jī)名)必須和,服務(wù)配置文件"tnsnames.ora"里面,你想要鏈接的服務(wù)的HOST=的內(nèi)容完全一致。意思就是說(shuō)要么都是IP地址,要么都是主機(jī)名。如果有多個(gè)服務(wù)(Net Manager中配置的網(wǎng)絡(luò)服務(wù))那么查看"tnsnames.ora"文件中與監(jiān)聽(tīng)HOST內(nèi)容一致的PL/SQL才可正常登錄進(jìn)去,否則無(wú)監(jiān)聽(tīng)程序。如:
上面這里是"listener.ora"里面的HOST,我的是主機(jī)名。 上面這里是"tnsnames.ora"的配置信息,由于我的機(jī)子上面裝了兩個(gè)數(shù)據(jù)庫(kù)DB1,DB2。分別建立了連接服務(wù)也叫做DB1,DB2。(不知道什么情況,建好后tnsnames.ora里一個(gè)HOST是IP地址,另一個(gè)是我的主機(jī)名。)結(jié)果導(dǎo)致DB1的PL/SQL正常連接進(jìn)入(因?yàn)槭荌P地址和listener.ora的HOST地址完全匹配),而DB2的PL/SQL卻提示沒(méi)有監(jiān)聽(tīng)程序。(什么情況,DB1不是都正常進(jìn)入了么咋還沒(méi)有監(jiān)聽(tīng)呢。我去~~)后來(lái)網(wǎng)上找教程說(shuō)是【修改"listener.ora"的HOST地址,如果是IP則改成主機(jī)名】于是照搬。運(yùn)行PL/SQL,DB2登陸成功,爽啊。結(jié)果DB1沒(méi)有監(jiān)聽(tīng)程序(什么情況啊)。后來(lái)查看"listener.ora"發(fā)現(xiàn)此問(wèn)題,說(shuō)明兩個(gè)文件的HOST的內(nèi)容需要完全匹配才行,全部改成主機(jī)名,兩個(gè)數(shù)據(jù)庫(kù)登陸都成功,搞定!
方法二:環(huán)境變量 環(huán)境變量中ORACLE_HOME改為:***(你自己的安裝路徑)product11.2.0dbhome_1 有的情況,裝貌似安裝客戶(hù)端被自動(dòng)改為**:Ora11InstantClient了
方法三:注冊(cè)表 KEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/OracleOraDb11g_home1TNSListener 中的ImagePath改為:D:oracleproduct10.2.0db_1/BIN/TNSLSNR.EXE(之前后面的.EXE沒(méi)有)。 |
|
來(lái)自: qrzhcd > 《數(shù)據(jù)庫(kù)》