【发布时间】: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