1. 程式人生 > >oracle服務起不來

oracle服務起不來

一、錯誤描述

登陸PL/SQL Developer登陸本地資料庫時先報沒有監聽程式,檢視服務發現Oracle監聽服務沒有啟動。右擊啟動監聽程式,報錯:

錯誤描述:本地計算機上的OracleOraDb11g_home1TNSListener服務啟動後又停止了。一些服務自動停止,如果它們沒有什麼可做的,例如 “效能日誌和警報 “服務。

二、原因分析

你安裝oracle的時候是連網的,那麼listener.ora檔案裡的HOST=網路給你分配的IP地址,而在你斷網的時候就會出現這樣的情況。

三、解決辦法

方法一:監聽器

通過listener.ora或者Net Manager修改監聽器配置。將原來本地字串127.0.0.1或者localhost改為主機名。

首先查閱你的**\product\11.2.0\dbhome_1\NETWORK\ADMIN目錄下的”tnsnames.ora”和”listener.ora”這兩個檔案,然後看看裡面的”HOST”資訊,看看是不是你當前的ip地址,如果不是嘗試著把這個2個檔案改成你的ip地址,或直接就改成127.0.0.1(或計算機名字):

注意:此時的監聽配置檔案”listener.ora”裡面的HOST=的內容(IP或者主機名)必須和,服務配置檔案”tnsnames.ora”裡面,你想要連結的服務的HOST=的內容完全一致。意思就是說要麼都是IP地址,要麼都是主機名。如果有多個服務(Net Manager中配置的網路服務)那麼檢視”tnsnames.ora”檔案中與監聽HOST內容一致的PL/SQL才可正常登入進去,否則無監聽程式。
上面這裡是”listener.ora”裡面的HOST,我的是主機名。
上面這裡是”tnsnames.ora”的配置資訊,由於我的機子上面裝了兩個資料庫DB1,DB2。分別建立了連線服務也叫做DB1,DB2。(不知道什麼情況,建好後tnsnames.ora裡一個HOST是IP地址,另一個是我的主機名。)結果導致DB1的PL/SQL正常連線進入(因為是IP地址和listener.ora的HOST地址完全匹配),而DB2的PL/SQL卻提示沒有監聽程式。(什麼情況,DB1不是都正常進入了麼咋還沒有監聽呢。我去~~)後來網上找教程說是【修改”listener.ora”的HOST地址,如果是IP則改成主機名】於是照搬。執行PL/SQL,DB2登陸成功,爽啊。結果DB1沒有監聽程式(什麼情況啊)。後來檢視”listener.ora”發現此問題,說明兩個檔案的HOST的內容需要完全匹配才行,全部改成主機名,兩個資料庫登陸都成功,搞定!

方法二:環境變數

環境變數中ORACLE_HOME改為:*(你自己的安裝路徑)\product\11.2.0\dbhome_1

有的情況,裝貌似安裝客戶端被自動改為**:\Ora11InstantClient了

方法三:登錄檔

KEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/OracleOraDb11g_home1TNSListener

中的ImagePath改為:D:\oracle\product\10.2.0\db_1/BIN/TNSLSNR.EXE(之前後面的.EXE沒有)。