ORA-12505: 侦听器拒绝连接并出现以下错误 -- SQL Developer
Posted
技术标签:
【中文标题】ORA-12505: 侦听器拒绝连接并出现以下错误 -- SQL Developer【英文标题】:ORA-12505: Listener refused the connection with the following error -- SQL Developer 【发布时间】:2022-01-02 00:48:15 【问题描述】:过去我这样做没有问题,但是当我重新安装 Oracle 11g 和 SQL Developer 时,我遇到了麻烦。我正在尝试将我的 oracle 11g 数据库连接到 sql developer,但是当我测试连接时,我收到了这个错误。我尝试了一切:配置文件,tnsnames.ora 更改了几次,listener.ora 文件更改了,但都是徒劳的。我看过很多处理该错误的视频或帖子,他们都说要查看 tnsnames.ora 文件中的 SID 和主机名/服务名之间的匹配,但在我的情况下,它们是正确且一致的。谁能帮我吗?我已经删除了所有内容:文件、环境变量等。
当我打开 SQL Developer 时,它会自动检测 tns 文件,所以它实际上是读取的,所以我不明白问题可能是什么。
这是我的 tnsnames.ora
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = LAPTOP-SMTRG338)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
这是听者
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = LAPTOP-SMTRG338)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
【问题讨论】:
【参考方案1】:基本连接不使用 tnsnames.ora 文件。
基本是 EZConnect:user/pass@host:port/SERVICE_NAME
您可以尝试检查"Nombre servizio"
并将其设置为XE
并连接,但我认为它不会解决您的问题。
对于这样的场景,alert_<SID>.log
是您的朋友。在这里您可以诊断数据库的健康状况。
您的 Windows 服务可以是 running
,但您的数据库可以是以下任何一种模式:shutdown | nomount | mount | open
%ORACLE_BASE%\diag\rdbms\xe\XE\trace\alert_XE.log
注意!请不要使用notepad.exe
阅读日志文件。在 Windows 领域 Notepad++
是更好的选择。
祝你好运!
【讨论】:
感谢您帮助我。我检查了那个日志文件,但是有超过 1k 行,我什至不知道要在里面寻找什么。我还检查了诸如 listener.log 或 sqlnet.log 之类的文件。在 sqlnet.log 我得到“目录不存在用于读/写 [C:\oraclexe\app\oracle\product\11.2.0\server\log] [C:\oraclexe\app\oracle\product\11.2.0 \server\log\diag]" 并且在 listener.log 中我得到了 "23-NOV-2021 17:50:40 * (CONNECT_DATA=(SID=xe)(CID=(PROGRAM=SQL Developer)(HOST=__jdbc__)( USER=Gigi))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=58727)) * 建立 * xe * 12505 停止Windows Oracle XE服务,删除日志,重新启动服务。它会告诉你数据库是否达到打开状态或者是否有其他事情发生。 我总是遇到同样的错误。我什至在一个新的磁盘分区中安装了 db,但那没用 在“app\oracle\product\11.2.0\server\log\diag\”中创建客户端文件夹后,我注意到 sqlnet.log 发生了变化,这给了我这个错误“致命的 NI 连接错误 12560,连接到:(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle)(ARGV0=oracleXE)(ARGS='(DESCRIPTION=(LOCAL=YES))(ADDRESS=(PROTOCOL =beq)))')))(CONNECT_DATA=(SID=XE)(CID=(PROGRAM=I:\app\oracle\product\11.2.0\server\bin\oradim.exe)(HOST=LAPTOP-SMTRG338 )(USER=Gigi))))"以上是关于ORA-12505: 侦听器拒绝连接并出现以下错误 -- SQL Developer的主要内容,如果未能解决你的问题,请参考以下文章
Oracle SQL Developer 12505 网络更改后的错误
ORA-12505, TNS: 监听器当前不知道连接描述符中给出的 SID
ORA-12505, TNS: 监听器当前不知道连接描述符中给出的 SID