1. 程式人生 > >oracle監聽程式無法啟動,無監聽程式

oracle監聽程式無法啟動,無監聽程式

^_^

試過可行

oracle監聽不能啟動的問題及處理過程!

oracle環境如下:

SQL> select * from V$version

2 ;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE 10.2.0.1.0 Production

TNS for 32-bit Windows: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

出錯過程回憶:在此之前用windows優化大師對系統登錄檔進行了修復!

Q:連結oracle時報錯:ORA-12541: TNS: 無監聽程式

A:

1〉檢視監聽有沒有啟動:

一:執行lsnrctl

C:\Documents and Settings\Admin>lsnrctl

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-4月 -2007 09:

1:43

Copyright (c) 1991, 2005, Oracle. All rights reserved.

歡迎來到LSNRCTL, 請鍵入"help"以獲得資訊。

二:檢視stauts

LSNRCTL> status

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

TNS-12541: TNS: 無監聽程式

TNS-12560: TNS: 協議介面卡錯誤

TNS-00511: 無監聽程式

32-bit Windows Error: 2: No such file or directory

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zxt)(PORT=1521)))

TNS-12541: TNS: 無監聽程式

TNS-12560: TNS: 協議介面卡錯誤

TNS-00511: 無監聽程式

32-bit Windows Error: 61: Unknown error

三:發現監聽沒有啟動,現在啟動監聽

LSNRCTL> start

啟動tnslsnr: 請稍候...

Failed to start service, error 3.

TNS-12560: TNS: 協議介面卡錯誤

TNS-00530: 協議介面卡錯誤

2〉發現監聽啟動不起來,估計是登錄檔有點問題,登入登錄檔

C:\Documents and Settings\Admin>regedit

進入登錄檔到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb10g_home1TNSListener

發現ImagePath關鍵值沒有了,增加可擴充字串值,取名為ImagePathImagePath,編輯字串的數值資料為:G:\oracle\product\10.2.0\db_2\BIN\TNSLSNR(對應oracle的TNSLSNR的位置) ,退出登錄檔。

3〉啟動監聽

LSNRCTL> start

啟動tnslsnr: 請稍候...

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production

系統引數檔案為d:\oracle\product\10.2.0\db_1\network\admin\listener.ora

寫入d:\oracle\product\10.2.0\db_1\network\log\listener.log的日誌資訊

監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))

監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=zxt)(PORT=1521)))

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

LISTENER 的 STATUS

------------------------

別名 LISTENER

版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ

ction

啟動日期 20-4月 -2007 09:41:29

正常執行時間 0 天 0 小時 0 分 3 秒

跟蹤級別 off

安全性 ON: Local OS Authentication

SNMP OFF

監聽程式引數檔案 d:\oracle\product\10.2.0\db_1\network\admin\listener.o

ra

監聽程式日誌檔案 d:\oracle\product\10.2.0\db_1\network\log\listener.log

監聽端點概要...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=zxt)(PORT=1521)))

服務摘要..

服務 "PLSExtProc" 包含 1 個例程。

例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...

命令執行成功

4>監聽啟動成功後嘗試登入

C:\Documents and Settings\Admin>sqlplus [email protected]

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 4月 20 09:42:33 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

輸入口令:

連線到:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

登入成功!

總結:估計是windows優化大師或者別的工具在修復登錄檔時候刪掉了ImagePath欄位,補上後就可以了!

補充:登入sqlplus時報

ORA-12514: TNS: 監聽程式當前無法識別連線描述符中請求的服務錯誤!

處理辦法:

1〉oracle_home\NETWORK\ADMIN\tnsnames.ora中修改(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

為(ADDRESS = (PROTOCOL = TCP)(HOST = 本地計算機名)(PORT = 1521)),儲存即可。

2〉有的人介紹oracle_home\NETWORK\ADMIN\sqlnet.ora中修改SQLNET.AUTHENTICATION_SERVICES = (NTS)為

SQLNET.AUTHENTICATION_SERVICES = (NONE)

這2種方法,第一個最佳!