2014-10-07 96 views
11

我收到以下錯誤,同時從lsnrctl status命令:Oracle監聽器無法運行,並且不會啓動

C:\Users\pna105>lsnrctl stat 

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 08-OCT-2014 17:53 
:55 

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) 
TNS-12541: TNS:no listener 
TNS-12560: TNS:protocol adapter error 
    TNS-00511: No listener 
    64-bit Windows Error: 2: No such file or directory 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))) 
TNS-12541: TNS:no listener 
TNS-12560: TNS:protocol adapter error 
TNS-00511: No listener 
64-bit Windows Error: 61: Unknown error 

這是工作重新啓動之前罰款,但現在它不工作,我也無法訪問我的Oracle主頁。

tnsnames.ora是:

ORACLE = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = Localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = ORACLE) 
    ) 
    ) 

    LISTENER_ORACLE = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 


    ORACLR_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
) 
    (CONNECT_DATA = 
    (SID = CLRExtProc) 
    (PRESENTATION = RO) 
) 
) 

listener.ora是:(這裏是錯誤,由於支架放錯地方增加幾個空格解決了這個問題TNS-12518)

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
    (SID_NAME = ORACLE) 
    (ORACLE_HOME = C:\app\PNA105\product\11.2.0\dbhome_1) 
) 
    (SID_DESC = 
    (SID_NAME = PLSExtProc) 
    (ORACLE_HOME = C:\app\PNA105\product\11.2.0\dbhome_1) 
    (PROGRAM = extproc) 
    ) 
    (SID_DESC = 
    (SID_NAME = CLRExtProc) 
    (ORACLE_HOME = C:\app\PNA105\product\11.2.0\dbhome_1) 
    (PROGRAM = extproc) 
    (ENVS = "EXTPROC_DLLS=ONLY:C:\app\PNA105\product\11.2.0\dbhome_1\bin\oraclr11.dll") 
) 
) 

    LISTENER = 
(DESCRIPTION_LIST = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
) 
) 

    ADR_BASE_LISTENER = C:\app\PNA105 

以下是lsnrctl start輸出命令

C:\Users\pna105>lsnrctl start 

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 08-OCT-2014 18:26 
:22 

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

Starting tnslsnr: please wait... 

    TNS-12560: TNS:protocol adapter error 
    TNS-00530: Protocol adapter error 

以下是從日誌文件中需要的最後一項。

Started with pid=14784 
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) 
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))) 
Listener completed notification to CRS on start 

09-OCT-2014 15:46:01 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=INL007306$)) 
(SERVICE_NAME=oracle)) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=57389)) * 
establish * oracle * 12518 
TNS-12518: TNS:listener could not hand off client connection 
TNS-12560: TNS:protocol adapter error 
TNS-00530: Protocol adapter error 
64-bit Windows Error: 203: Unknown error 
Dynamic address is already listened on (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) 
(HOST=127.0.0.1)(PORT=1521))) 
09-OCT-2014 15:46:06 * service_register * oracle * 0 
Thu Oct 09 15:46:11 2014 
09-OCT-2014 15:46:11 * service_update * oracle * 0 
09-OCT-2014 15:46:12 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=INL007306$)) 
(SERVICE_NAME=oracle)) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=57393)) * 
    establish * oracle * 0 
09-OCT-2014 15:46:12 * service_update * oracle * 0 
09-OCT-2014 15:46:13 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=INL007306$)) 
(SERVICE_NAME=oracle)) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=57394)) * 
establish * oracle * 0 

試圖解決TNS-12518和聽衆開始,但仍無法訪問 甲骨文的主頁

lnsrctl統計的輸出

C:\Users\pna105>lsnrctl stat 

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 09-OCT-2014 17:16 
:56 

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) 
STATUS of the LISTENER 
    ------------------------ 
Alias      LISTENER 
Version     TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ 
ction 
Start Date    09-OCT-2014 15:45:58 
Uptime     0 days 1 hr. 30 min. 58 sec 
Trace Level    off 
Security     ON: Local OS Authentication 
SNMP      OFF 
Listener Parameter File C:\app\PNA105\product\11.2.0\dbhome_1\network\admin\li 
stener.ora 
Listener Log File   c:\app\pna105\diag\tnslsnr\INL007306\listener\alert\lo 
g.xml 
Listening Endpoints Summary... 
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) 
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))) 
    Services Summary... 
    Service "CLRExtProc" has 1 instance(s). 
    Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service... 
    Service "ORACLE" has 2 instance(s). 
    Instance "ORACLE", status UNKNOWN, has 1 handler(s) for this service... 
    Instance "oracle", status READY, has 1 handler(s) for this service... 
    Service "PLSExtProc" has 1 instance(s). 
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... 
    Service "oracleXDB" has 1 instance(s). 
    Instance "oracle", status READY, has 1 handler(s) for this service... 

噸他命令成功完成

+0

顯示輸出'lsnrctl狀態'。 – zaratustra 2014-10-07 13:27:47

+0

錯誤「沒有聽衆」是相當不言自明的是不是?您沒有監聽者正在運行。它是否設置爲在重新啓動時自動啓動?它試圖啓動但失敗 - 是否有一個手動的'lsnrctl start'工作?如果它不會啓動,那麼檢查給出的錯誤消息和偵聽器日誌文件。 – 2014-10-07 14:55:57

+0

輸出提供的請檢查 – 2014-10-08 13:27:31

回答

3

我在Windows上的11.201上遇到了同樣的問題。之後:在新文件夾中額外安裝11.203 64位服務器和客戶端。安裝後立即更改PATH環境變量。偵聽器服務重新啓動後出現偵聽器錯誤。在我的情況下,有一個晚上的時間和數量的Windows更新,所以Windows服務器重新啓動幫助我們。 另外我還根據http://pavandba.com/tag/tns-12560-tns-protocol-adapter-error/清理了listener.log文件,它的確很大。

+0

檢查你的tns listener.ora文件在我的病例問題是由於錯位的backets,希望你也能找到你的問題。 – 2014-11-21 12:13:28

3

檢查ORACLE_HOME環境變量是否指向正確的oracle主目錄。 在我的情況下,它被另一個軟件安裝改變了。

15

我有同樣的問題。 本例中的解決方案: 將CMD作爲管理員運行。 然後鍵入並執行:「lsnrctl start」 等待大約2分鐘,然後應該工作。 (在我的情況下只有50秒,但只是爲了安全起見)

+0

'lsnrctl start'爲我工作 – FearlessFuture 2015-12-31 17:10:11

1

在Windows 2012服務器上安裝Oracle 11gR2時遇到類似的問題。 當我運行cmd.exe作爲Admistrator特權並運行「lsnrctl start LISTENER」時,問題就解決了。

+0

是的,您也可以在管理員的控制面板中的管理工具中檢查正在運行的服務,這也將有所幫助。 – 2015-12-23 06:44:04

1

我遇到了同樣的問題和原因: 我的個人windows PC。而且我修改了計算機名稱,並且沒有反映在listener.ora中。使用更新的主機名更新ORACLE_HOME \ network \ ADMIN \ listener.ora修復了問題。

+0

我收到了與listener.ora相同的問題 – 2016-07-07 01:29:57

2

我改變了計算機名稱後發生在我身上。要解決這個問題,只需找到偵聽器。ORA文件,並用新的

1

在我的情況下替換舊的計算機名,我試圖通過控制檯啓動監聽:

> lsnrctl star 

此命令打印以下錯誤:

TNS-12560: TNS:protocol adapter error 
TNS-00583: Valid node checking: unable to parse configuration parameters 

所以,我執行了以下操作:

  1. 檢查Oracle listener.orasqlnet.ora fil E包含特殊字符
  2. 檢查甲骨文listener.ora或sqlnet.ora`文件是格式錯誤或語法
  3. 檢查甲骨文listener.orasqlnet.ora文件具有不被Oracle解析器接受一些左對齊括號。

看看這些文件並檢查正確的語法。如果可能,請刪除/重命名sqlnet.ora並嘗試重新啓動偵聽器。或刪除/重命名listener.ora或sqlnet.ora文件並正確重新創建它。這些將有力地解決問題。

0

在我的情況下,不知何故,Windows偵聽器服務已停止工作,所以我無法通過sqldeveloper連接oracle,但是我可以通過sqlplus進行連接。

以下解決方案爲我:

首先,確保你的監聽服務正在運行。

C:\ Documents和Settings \ ME> LSNRCTL狀態

如果監聽服務沒有運行,使用Windows任務管理器重新啓動監聽服務或者使用DOS命令行實用程序重新啓動Windows服務的 「淨啓動」 命令:

C:\ Documents和Settings \ ME>網絡啓動OracleOraDb10g_home1TNSListener

嘗試使用LSNRCTL從DOS提示符下啓動監聽服務。

LSNRCTL開始

3

我解決它通過更新oracle目錄oraclexe \程序\ ORACLE內部listener.ora文件\產品\ 11.2.0 \服務器\網絡\ ADMIN。

爲什麼發生在我身上的是因爲我改變了我的系統名稱,但在listener.ora裏面有一個名字叫做HOST。

這可能是其中一個原因......對於那些仍然面臨這種問題的人,也可能會想到這種可能性。

+1

非常感謝。對於查找解決方案的任何人,只需打開產品\ 11.2.0 \ server \ network \ ADMIN \ listener.ora並找出'LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS =(PROTOCOL = TCP)(HOST = _NEW_NAME _)(PORT = 1521)) ) )' 然後用所需的文本字符串替換'_NEW_NAME_'。 – russellhoff 2017-07-11 12:56:45

0

我設法解決導致配置在運行Hortonworks HDP 2.6 Sandbox的Docker容器上失敗的問題。

如果初始配置失敗收聽將被運行,並且將必須被首先殺死:

ps -aux | grep tnslsnr 
kill {process id identified above} 

然後下一步是然後以固定所述共享存儲器的問題,這使得該配置過程失敗。

根據https://blogs.oracle.com/oraclewebcentersuite/implement-oracle-database-xe-as-docker-containers,Oracle XE需要1 Gb的共享內存,否則會失敗(我沒有嘗試512 MB)。

vi /etc/fstab 

變化/添加一行到:

tmpfs /dev/shm  tmpfs defaults,size=1024m 0 0 

然後重新裝入由配置:

mount -a 

請記住,下一次你重新啓動,你可能需要的泊塢窗容器'mount -a'。

0

在我的情況下,偵聽器服務不會啓動,因爲它設置爲偵聽VPN連接以及其他多個接口。

一旦我連接到VPN,它就開始了。

不過,@伊姆雷的「lsnrctl start」技巧讓我走上了正軌。

0

1.檢查環境變量(必須爲系統來設置,而不是爲用戶):

ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server 
ORACLE_SID = XE 

2.檢查,如果你有listener.ora中權的定義

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = XE) 
     (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server) 
     (PROGRAM = extproc) 
    ) 
) 

XE = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = XE) 
    ) 
) 

DEFAULT_SERVICE_LISTENER = (XE) 

3.重新啓動服務(服務> OracleServiceXE和OracleXETNSListener)

聽者準備好可能需要一些時間。


重新啓動OracleServiceXE後,您可能會看到名爲OracleXETNSListenerXE的新服務。已經有了原始的OracleXETNSListener。

看來,啓動原來的一個:OracleXETNSListener就足以用上面的配置來成功連接。