ORA-12170:TNS:发生连接超时

Pse*_*ous 18 oracle toad ora-12170

我试图使用Oracle Toad在我的笔记本电脑上连接到数据库,但我一直有这个错误:

ORA-12170:TNS:发生连接超时

我一直有这个错误的原因是什么?

我昨天访问了同一个数据库,并且能够访问它.

Zac*_*Zac 12

[收集评论中的答案]

问题是Oracle服务在IP地址上运行,主机配置了另一个IP地址.

要查看Oracle服务的IP地址,请发出lsnrctl status命令并检查报告的地址(在本例中为127.0.0.1,localhost):

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Run Code Online (Sandbox Code Playgroud)

要查看主机IP地址,请发出ipconfig(在windows下)或ifconfig(在linux下)命令.

但是,在我的安装中,如果在localhost地址上设置Oracle服务不起作用,我必须设置真正的主机IP地址(例如192.168.10.X).

为避免将来出现此问题,请不要使用DHCP分配主机的IP地址,而应使用静态IP地址.


小智 6

这是因为 SID 冲突。例如,在 Oracle12cBase\app\product\12.1.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora 文件中,ORCL 的连接描述如下:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
Run Code Online (Sandbox Code Playgroud)

并且,您尝试使用相同 SID 但不同 IP、用户名/密码的连接字符串进行连接,如下所示:

sqlplus 用户名/密码@192.168.130.52:1521/orcl

要解决此问题,请在 tnsnames.ora 文件中进行更改:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.130.52)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
Run Code Online (Sandbox Code Playgroud)