(轉)oracle 啟動監聽 報“監聽程式不支援服務” 解決

來源:互聯網
上載者:User

標籤:

轉自 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 - Production啟動日期                  25-3月 -2013 14:30:30正常已耗用時間              0 天 0 小時 0 分 1 秒追蹤層級                  off安全性                    ON: Local OS AuthenticationSNMP                      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的時候心不在焉啦啦!!不過,若非心不在焉,怎麼能學會在發現問題的時候怎麼排查呢~以後再出現監聽方面的問題,就知道從何下手了。

(轉)oracle 啟動監聽 報“監聽程式不支援服務” 解決

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.