【问题标题】:ORACLE: Listener could not hand off Connection errorORACLE:侦听器无法传递连接错误
【发布时间】:2017-01-21 02:11:07
【问题描述】:

这是我的 oracle 11.2.0 配置

Listener.ora:

LISTENER_ORCL =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = ORCL))
      (ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT = 1521))
    )
  ) 

Tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )

我在 Windows 8 机器上以管理员用户身份启动 OracleServieORCL。然后在同一个系统上,我使用 sqldevloper (4.0.1) 以用户名 system 和密码 admin 连接到 SID ORCL(admin 是安装时给出的密码)

我收到错误 ORA-12518:TNS:Listener could not hand off client connection.

我尝试重新安装软件,但没有帮助。我的盒子上安装了 Java 8 (8-101) 版本。

lsnrctl services

LSNRCTL for 64-bit Windows: Version 11.2.0.2.0 - Production on 14-SEP-2016 12:02:11

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
Service "XEXDB" has 1 instance(s).
  Instance "xe", status READY, has 1 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: <system_name>, pid: 2808>
         (ADDRESS=(PROTOCOL=tcp)(HOST= <system_name>)(PORT=52707))
Service "xe" has 1 instance(s).
  Instance "xe", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:17 refused:0 state:ready
         LOCAL SERVER
The command completed successfully

【问题讨论】:

  • 您说 <... oracleserviexe...> 这意味着您的 service_name 是 XE。将“SERVICE_NAME = ORCL”替换为“SERVICE_NAME = XE”。我不确定这会解决您的问题,因为 ORA 消息说问题出在其他问题上。你能在 CMD 中运行“lsnrctl services”并显示输出吗?
  • "lsnrctl service" 显示您的服务名称是 xe - 因此请尝试在您的 tnsnames.ora 中将“SERVICE_NAME = ORCL”替换为“SERVICE_NAME = XE”,如果在此之后您在连接过程中会出现错误,我们会努力解决的。
  • 状态:失败 - 测试失败:监听器拒绝连接并出现以下错误:ORA-12505,TNS:监听器当前不知道连接描述符中给出的 SID
  • 请确保您的主机上只运行一个侦听器。如果您刚刚重新启动了侦听器 - 等待 1 分钟,以便 Oracle 在侦听器中注册。 ORA 错误对我来说看起来很奇怪,因为我从 xe 已注册的“lsnrctl 服务”中看到。另一种思路是:1)删除listener.ora文件2)重启listener服务3)等待1分钟4)尝试连接。

标签: oracle11g oracle-xe


【解决方案1】:

好的,经过几天的调试,终于知道安装没有在系统注册表中注册,当我通过管理员权限重新安装它时,它工作正常。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。我将“oracle home”帐户添加到“管理员”组,然后重新启动侦听器和数据库。这解决了问题。就我而言,我运行的是 Oracle 12c、Windows Server 2008 R2。

    【讨论】:

      【解决方案3】:

      这发生在我身上,我通过在 listener.ora 中将 localhost 替换为 127.0.0.1 来修复它(然后重新启动侦听器)。我在tnsnames.ora 中进行了同样的更改,然后我能够成功连接。

      由于您尝试使用 SID 进行连接,因此请将 tnsnames.ora 文件中的“SERVICE_NAME”替换为“SID”。

      【讨论】:

        猜你喜欢
        • 2023-03-12
        • 2021-12-05
        • 1970-01-01
        • 1970-01-01
        • 2012-10-12
        • 2021-05-02
        • 2022-11-02
        • 2018-07-20
        • 1970-01-01
        相关资源
        最近更新 更多