【问题标题】:Oracle 18c Listener unable to startOracle 18c 监听器无法启动
【发布时间】:2020-09-21 01:38:52
【问题描述】:

所以我安装了 Oracle 18C XE 并能够连接到它。几天后回到它,我可以使用 sys 作为 Sysdba 使用 SQLPlus 连接到它,但无法连接到 SQL Developer。

通过服务启动侦听器会导致错误提示 本地计算机上的 OracleOraDB18Home1TNSListener 服务随后启动 停止了。

lstnrctl start from an admin cmd line 给出以下错误:

TNS-12545:连接失败,因为目标主机或对象不存在

TNS-12560:TNS:协议适配器错误

TNS-00515:连接失败 因为目标主机或对象不存在 64 位 Windows 错误: 49:未知错误

好的,所以我可以 ping tnsnames.ora 中列出的 IP,但我无法通过该 IP 远程登录到 1521 从 tnsnames.ora 生成 xe 条目

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.82)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

为了更好地衡量 lstnrctl 状态是:

C:\WINDOWS\system32>lsnrctl 状态

适用于 64 位 Windows 的 LSNRCTL:版本 18.0.0.0.0 - 2020 年 6 月 2 日 08:25:17 生产

版权所有 (c) 1991、2018、甲骨文。保留所有权利。

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.82)(PORT=1521)))
TNS-12535: TNS:operation timed out
 TNS-12560: TNS:protocol adapter error
  TNS-00505: Operation timed out
   64-bit Windows Error: 60: Unknown error
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

我该如何解决这个问题?我只需要在 oracle 上测试一个实体框架应用程序。

我可以看出 IP​​ 地址是错误的,但这是本地应用程序开发的本地安装。我可以使用本地主机吗?

我已经更新了 tnsnames 和 listener 如下:

listener
    DEFAULT_SERVICE_LISTENER = XE

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\Fraser\product\18.0.0\dbhomeXE)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Fraser\product\18.0.0\dbhomeXE\bin\oraclr18.dll")
    )
  )

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



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

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


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

但 SQL Developer 现在告诉返回“ora-12514,tns:listener 目前不知道连接描述符中请求的服务”

连接属性是

username: sys as sysdba
PASSWORD: (confirmed with sql plus login)
hostname:localhost
port:1521
SID XE
Service name: XE

我使用 sid 或服务名称单选按钮得到相同的结果(sid 是 ora 12505,但它仍然引用不知道连接描述符中 SID 的侦听器)

lsnrctl 现在是:

    C:\WINDOWS\system32>lsnrctl status

LSNRCTL for 64-bit Windows: Version 18.0.0.0.0 - Production on 02-JUN-2020 09:52:58

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 18.0.0.0.0 - Production
Start Date                02-JUN-2020 08:44:30
Uptime                    0 days 1 hr. 8 min. 32 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   C:\app\Fraser\product\18.0.0\dbhomeXE\network\admin\listener.ora
Listener Log File         C:\app\Fraser\product\18.0.0\diag\tnslsnr\SPR\listener\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

tnsnames 格式是否错误?

【问题讨论】:

  • 您的服务未在监听器中注册,以 sysdba alter system register 登录并检查 lsnrctl status
  • 这消除了更改监听器的需要,谢谢!

标签: oracle windows-10 oracle18c


【解决方案1】:

是的,如果您只打算从本地计算机连接到 XE 数据库实例,您可以使用 localhost...但是它需要重新配置 Oracle Net(侦听器)和 Oracle XE 数据库,这不是很简单。

【讨论】:

  • 我尝试了 localhost 并启动了侦听器,但是现在我收到错误“ra-12514,tns:listener 目前不知道连接描述符中请求的服务”详细信息添加到问题中。跨度>
  • 您需要将本地(不带@localhost)连接到XE并验证参数show parameter local_listener,如果需要,请尝试使用alter system set local_listener = .... (host=localhost)...更新主机名子句。
  • 如果这个工具比较困难,你可以尝试修改listener.ora 来放置XE 工作的IP 地址(当然这个IP 地址必须在你的Windows 机器上配置) .
  • 现在我得到了一个无效的 sys 登录名作为我用于 sqlplus 的 sysdba 密码,但这是完全进步的。谢谢!
  • 如果您在同一台主机上登录,则不需要使用密码 sys 即 sqlplus sys/password as sysdba 而是从提升的命令提示符 sqlplus / as sysdba 运行它
猜你喜欢
  • 1970-01-01
  • 2020-11-23
  • 1970-01-01
  • 2020-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
相关资源
最近更新 更多