2014-10-07 188 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就足以用上面的配置来成功连接。