12505

https://blog.csdn.net/u013479571/article/details/48004509
Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
由于SID连接不匹配,监听器拒绝连接。


一般情况下,当创建数据库时会创建数据库名和SID。SID用于唯一标识一个实例。在同一台计算机上不能重复。
1、查看实例名称和ORACLE_SID
    在Windows环境可以(以我自己的机器为例):
    (1)开始—>运行(输入regedit),在HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1中有ORACLE_SID的键值(系统默认值),如下图所示:

我的ORACLE_SID是orcl,所以SID应输入orcl而不是xe;
经测试,通过,就可以连接数据库了。


https://blog.csdn.net/king0406/article/details/73929163

今天遇到的数据库连接时报错:

Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor


这个问题是数据库监听的配置文件中sid不正确,网上查了原因,也许是网络配置ip之后出现的问题,而公司的云服务器之前正常没问题,最近管理员确实改过网络配置,并且今天重启了。

解决:进入数据库安装目录下,找到tnsnames.ora文件,把其中的service_name改成数据库正确的sid值,如我的是orcl

\network\admin\tnsnames.ora:
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.62)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = ORCL)
      (SERVICE_NAME = ORCL)
    )
重启监听即可

若是碰到继续报错: 17410 提示无法从套接字获取更多数据如何解决,则进入数据库安装目录下,找到listener.ora文件,将(PROGRAM = extproc)这行前面加#注释掉,如下:
#(PROGRAM = extproc)
并且,检查配置文件中HOST是否为主机名
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 主机名)(PORT = 1521))
    )
重启监听,数据库即可连接

猜你喜欢

转载自blog.csdn.net/grace_1203/article/details/80831416