Oracle单机报监听不支持服务,(转)oracle 启动监听 报“监听程序不支持服务” 解决...
轉自?http://www.51testing.com/html/99/478599-842622.html
今天安裝了oracle后,啟動監聽,報錯如下:
啟動tnslsnr: 請稍候...
TNSLSNR for 32-bit?Windows: Version 10.2.0.1.0 - Production
寫入E:\oracle\product\10.2.0\db_2\network\log\listener.log的日志信息
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=win2003-64Template)(PORT=1521)))
正在連接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER 的 STATUS
------------------------
別名 ? ? ? ? ? ? ? ? ? ? ?LISTENER
版本 ? ? ? ? ? ? ? ? ? ? ?TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
啟動日期 ? ? ? ? ? ? ? ? ?25-3月 -2013 14:30:30
正常運行時間 ? ? ? ? ? ? ?0 天 0 小時 0 分 1 秒
跟蹤級別 ? ? ? ? ? ? ? ? ?off
安全性 ? ? ? ? ? ? ? ? ? ?ON: Local OS Authentication
SNMP ? ? ? ? ? ? ? ? ? ? ?OFF
監聽程序日志文件 ? ? ? ? ?E:\oracle\product\10.2.0\db_2\network\log\listener.log
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=win2003-64Template)(PORT=1521)))
監聽程序不支持服務
命令執行成功
服務端報監聽程序不支持服務,那就把焦點放在listener.ora文件上來。listener.ora是oracle服務器端的網絡配置文件,oracle根據它來配監聽服務。它接受遠程對數據庫的申請,并轉交給oracle的服務進程。出現這個問題的可能原因是文件中沒有增加那個配置。
于是檢查了一下?E:\oracle\product\10.2.0\db_2\network\Admin文件夾,發現果然是沒有listener.ora文件。難道我迷迷糊糊沒有建立監聽文件,直接去新建了本地net配置?先不管三七二十一,加上listener.ora。添加的內容如下,這個跟通過Net Configuration Assistant新建監聽文件的內容是一樣的:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_2)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = win2003-64Template)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
順便復習一下listener.ora的作用:在這個文件中一般我們會看到兩個參數
1)參數LISTENER ?定義了 監聽“LISTENER” 的 監聽協議地址(listening protocol address)
格式例子:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = CHINA-E24EA7C0A)(PORT = 1521))
)
)
2)參數SID_LIST_LISTENER 用于提供 監聽“LISTENER” 所能夠靜態支持的服務信息。
而且,如果使用EM(Oracle Enterprise Manager)去管理數據庫的話,這個參數是必須的。
格式例子:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = c:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
上面看到PLSExtProc,PLSExtProc不是oracle實例,是pl/sql external procdure 的意思,就是在pl/sql中調用外部語句,如c,java寫的過程。這個里面的配置,是讓監聽器產生extproc agent,實際上就是一個extproc進程,用于為external procedure 服務。
添加listener.ora好了,再次啟動。好了,這次啟動成功,出現下面界面:
看到只啟動了PLSExtProc,而我們新建的實例orcl卻沒有起來。這樣其它計算機使用pl/sql連接的話,會出現“ORA-12514: TNS: 監聽程序當前無法識別連接描述符中請求的服務”。當然原因還是在于listener.ora。一般新建監聽之后,listener.ora中會有相應的配置,但不知道為什么我在上面的操作中也新建了監聽,卻沒有自動生成。那我修改SID_LIST_LISTENER?手動添加以下內容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_2)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_2)
(GLOBAL_DBNAME= orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = win2003-64Template)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
OK,再試一次。成功。
雖然可能是很簡單的問題,但是還是從中了解了listener.ora的作用,而且,側面反映出我裝oracle的時候心不在焉啦啦!!不過,若非心不在焉,怎么能學會在發現問題的時候怎么排查呢~以后再出現監聽方面的問題,就知道從何下手了。
原文:http://www.cnblogs.com/storymedia/p/4911190.html
總結
以上是生活随笔為你收集整理的Oracle单机报监听不支持服务,(转)oracle 启动监听 报“监听程序不支持服务” 解决...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle服务器的操作系统,Oracl
- 下一篇: linux命令之tee,技术|为初学者介