我从lsnrctl status
命令获取以下错误:
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并且侦听器已启动但仍无法访问 Oracle主页
输出lnsrctl stat
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 :(得分:18)
我遇到了同样的问题。 解决我的情况: 将CMD作为ADMINISTRATOR运行。 然后键入并执行:“lsnrctl start” 等待约2分钟然后应该工作。 (在我的情况下只有50秒,但只是为了安全起见)
答案 1 :(得分:5)
1.检查环境变量(必须为系统设置,而不是为用户设置):
ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server
ORACLE_SID = XE
2.检查listener.ora中是否有正确的定义
XE =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
3.重新启动服务(服务> OracleServiceXE)
之后,您可能会看到一个名为OracleXETNSListenerXE的新服务 已有一个旧的OracleXETNSListener。
我开始了两次,然后我就能成功建立连接。
编辑:
如果一切正在运行但仍然无法连接,请检查是否没有错误: ORA-12557:TNS:协议适配器无法加载。
要更正错误,请返回环境变量,这次编辑名为: Path 的变量。确保 C:\ oraclexe \ app \ oracle \ product \ 11.2.0 \ server \ bin 位于开头的某个地方,肯定在指向不同版本的Oracle DB的任何其他路径之前。< / p>
答案 2 :(得分:4)
我通过更新oracle目录oraclexe \ app \ oracle \ product \ 11.2.0 \ server \ network \ ADMIN中的listener.ora文件解决了这个问题。
为什么它发生在我身上是因为我改变了我的系统名称,但是在listener.ora里面有HOST的旧名称。
这可能是其中一个原因......对于那些仍然面临这种问题的人也可能会想到这种可能性。
答案 3 :(得分:3)
我在Windows上的11.201上遇到了同样的问题。之后:在新文件夹中额外安装11.203 64位服务器和客户端。安装后立即更改PATH环境变量。监听器服务重启后出现监听器错误。在我的情况下,有一个晚上的时间和Windows更新的数量,所以Windows服务器重启帮助我们。 我还根据http://pavandba.com/tag/tns-12560-tns-protocol-adapter-error/清理了listener.log文件,这个文件非常棒。
答案 4 :(得分:3)
检查ORACLE_HOME环境变量是否指向正确的oracle主目录。 在我的情况下,它被另一个软件安装改变了。
答案 5 :(得分:2)
答案 6 :(得分:1)
在Windows 2012服务器上安装oracle 11gR2时遇到类似的问题。 当我将cmd.exe作为Admistrator特权运行并运行&#34; lsnrctl start LISTENER&#34;时,问题就解决了。
答案 7 :(得分:1)
我遇到了同样的问题和原因: 我是个人的Windows PC。我修改了计算机名称,并没有反映在listener.ora中。使用更新的主机名更新ORACLE_HOME \ network \ ADMIN \ listener.ora可修复此问题。
答案 8 :(得分:1)
就我而言,我试图通过控制台启动监听器:
> lsnrctl star
此命令打印出以下错误:
TNS-12560: TNS:protocol adapter error
TNS-00583: Valid node checking: unable to parse configuration parameters
所以,我执行了以下操作:
listener.ora
或sqlnet.ora
文件是否包含特殊字符listener.ora
或sqlnet.ora`文件的格式或语法是否错误listener.ora
或sqlnet.ora
文件是否具有oracle解析器不接受的左对齐括号。查看这些文件并检查正确的语法。如果可能,删除/重命名sqlnet.ora并尝试重新启动监听器。或者删除/重命名listener.ora或sqlnet.ora文件并正确地重新创建它。这些将有效地解决问题。
答案 9 :(得分:0)
在我的情况下,Windows监听器服务已经停止工作,所以我无法通过sqldeveloper连接oracle。但是我能够通过sqlplus连接。
以下解决方案对我有用:
首先,确保您的侦听器服务正在运行。
C:\ Documents and Settings \ ME&gt; lsnrctl status
如果侦听器服务未运行,请使用Windows任务管理器重新启动侦听器服务,或使用DOS命令行实用程序使用“net start”命令重新启动Windows服务:
C:\ Documents and Settings \ ME&gt; net start OracleOraDb10g_home1TNSListener
尝试在DOS提示符下使用lsnrctl启动侦听器服务。
lsnrctl start
答案 10 :(得分: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
请记住,下次重新启动docker容器时,您可能需要执行-a -a&#39;。
答案 11 :(得分:0)
在我的情况下,侦听器服务无法启动,因为它被设置为侦听VPN连接以及其他几个接口。
一旦我连接到VPN,它就开始了。
然而,@ Imre的“lsnrctl start”技巧让我走上正轨。
答案 12 :(得分:0)
监听器服务已在services.msc
中停止。
用户密码已更改。
services.msc
。答案 13 :(得分:0)
在我的Windows中,侦听器无法启动,并且'lsnrctl start'将永远挂起。解决方案是杀死extproc的所有进程。我怀疑这与我的vpn有关。