***今天把電腦名稱給改了,沒想到就不能啟動oracle的服務監聽了,開始不知道是這個原因,鬱悶了半天后來我就把loracle的監聽檔案listener.ora開啟看看,果然還是以前的電腦名稱字,結果把它改了就行了!
***於是收集了一些關於--oracle服務啟動後又停止問題--問題的方法來給大家分享:錯誤描述:本機電腦上的OracleOraDb10g_home1TNSListener服務啟動後又停止了。一些服務自動停止,如果它們沒有什麼可做的,例如 "效能記錄檔及警示 "服務。
出錯原因:由於本地的IP地址是自動擷取的,每次擷取的IP地址基本不同,而安裝10g是,預設的把當時的IP地址寫在了監聽設定檔%ORACLE_HOME%\db_1\NETWORK\ADMIN\listener.ora
解決辦法:%ORACLE_HOME%\db_1\NETWORK\ADMIN\listener.ora把這這檔案裡的內容改下 HOST=你的電腦名稱字,重啟下便可。
其他錯誤資訊及解決辦法:
1,ORA:-12545:因目標主機和對象不存在,串連失敗
錯誤碼ORA-12545表示網路連接串(即tnsnames.ora檔案中的HOST處)中使用的機器名和IP地址不存在,重新修改和重新串連即可。
2,ORA-12651:TNS:沒有監聽器
該資訊說明所要已連線的服務器沒有啟動監聽進程Listener(該進程為Oracle伺服器上作業系統進程,監聽進程沒有啟動時,伺服器可以正常進行,但是用戶端不能與伺服器產生串連。這時可以在伺服器使用作業系統命令lsnrctl正常起啟動監聽進程)
3,ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?]
產生原因:這種錯誤通常為ORACLE的內部錯誤,只對OSS和ORACLE開發有用。ORA-600的錯誤經常伴隨追蹤檔案的狀態轉儲(系統狀態和進程狀態),系統狀態儲存將包括ORACLE RDBMS持有的當前對象的資訊,進程狀態轉儲則將顯示特殊進程持有的對象,當進程符合了某錯誤條件時,經常是由於一些資訊取自它持有的一個塊,如果我們知道這些錯誤進程持有的塊,就容易跟蹤問題的來源。
解決方案:一般來說出現這個錯誤我們本身是無法解決的,只有從提高系統本身各方面來解決這個內部問題,如增加硬體裝置,調整系統效能,使用OPS(當然OPS從某種意義上說並不是一種好的解決方式)等。ORA-600錯誤的第一個變數用於標記代碼中錯誤的位置(代碼中的每個部分的第一變數都不一樣),從第二個到第五個變數顯示附加資訊,告訴OSS代碼在哪裡出現了錯誤
4,ORA-12560 協議適配器錯誤:
有關ORA-12560: TNS:協議適配器錯誤 的問題
①.檢查Terminal Service, 遠端桌面是不是起因
②.環境變數set oracle_sid=需要的服務名
③.listener.ora, tnsnames.ora等內機器名或者IP地址是否正確
④.netstat –a檢查連接埠是否被佔用
⑤.檢查註冊表HKEY_LOCAL_MACHINE\Software\Oracle\Home0新增字串USE_SHARED_SOCKET=TRUE, 重新啟動服務
5,ORA-28595: Invalid DLL Path 調用外部DLL出錯
原因:A setting in Oracle's LISTENER.ORA file on the server hosting the RDBMS is missing.
解決辦法:
(1).Locate the active LISTENER.ORA file on the server. By default, it will be on the Oracle RDBMS drive in the path ..\ora92\network\admin.
(2).Inspect the file and locate all entries associated with "SID_DESC". Each such entry should have the following option associated with it:
(ENVS = "EXTPROC_DLLS=ANY")
(3).Add the above line to any entry where it is missing.
(4).Restart the Oracle Listener Service (or reboot the server which will in turn restart Oracle).
例子:
The example LISTENER.ORA file below shows a valid configuration for the server named "WOODY" (using TCP/IP on Port 1521) with the correct ENVS entries highlighted:
# LISTENER.ORA Network Configuration File: C:\oracle\ora92\network\admin\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = woody)(PORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\ora92)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ANY")
)
(SID_DESC =
(GLOBAL_DBNAME = WOODY)
(ORACLE_HOME = C:\oracle\ora92)
(SID_NAME = WOODY)
(ENVS = "EXTPROC_DLLS=ANY")
)
)
6.在控制台中啟動服務,出現以下錯誤
服務:在本機電腦 無法啟動 OracleOraDb10g_home1TNSListener 服務。
錯誤3:系統找不到指定的路徑
查看屬性探索,OracleOraDb10g_home1TNSListener 服務的可執行檔的路徑為空白。
解決辦法:
開始-->運行REGEDIT -->進入註冊表找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb10g_home1TNSListener
發現ImagePath關索引值沒有了,建立一個名為ImagePath的可擴充字串值,編輯字串的數值資料為:Oracle安裝路徑\BIN\TNSLSNR
7.錯誤描述:本機電腦上的OracleOraDb10g_home1TNSListener服務啟動後又停止了。一些服務自動停止,如果它們沒有什麼可做的,例如 "效能記錄檔及警示 "服務。
解決辦法:%ORACLE_HOME%\db_1\NETWORK\ADMIN\listener.ora把這這檔案裡的內容改下 HOST=你的電腦名稱字。