Oracle 连接出现Listener refused the connection with the following error:ORA-12505的解决

问题说明

之前在虚拟机里的CentOs上安装了Oracle 11g ,由于一直采用的是物理机win 10 系统中安装sql developer直接连接Oracle的方式进行操作,所以虚拟机采用的是NAT方式的静态IP。今天突然想用另一台macbook中的sql developer 连接Oracle,于是就将虚拟机的联网方式改为了Bridge(桥接),并且重新配置了静态IP,启动Oracle监听后,sql develoer 连接时出现了Oracle Listener refused the connection with the following error:ORA-12505,TNS:listener does not currently know of SID given in connect descriptor的错误。

分析

参考网上的说法,这个问题是数据库监听的配置文件中sid不正确,进入数据库安装目录下,找到tnsnames.ora文件,例如我的路径是/home/Oracle_11g/product/11.2.0/dbhome_1/network/admin/tnsnames.ora。

[Oracle@dpc admin]$ cat tnsnames.ora

# tnsnames.ora Network Configuration File: /home/Oracle_11g/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

CHENDONGPO =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = dpc)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)


发现SERVICE_NAME = orcl 没有问题,但是发现了(HOST = dpc)这里(dpc为我的主机名),于是想起之前安装Oracle时曾经在hosts文件中增加了dpc到原来的ip的映射。于是找到了解决方法。

解决

root 用户下打开/etc/hosts文件,将原来的dpc指向的地址更改为新的ip,例如:

192.168.1.198 dpc

一般情况下hosts文件更改后是立即生效的,可以用 hostname -i  命令来查看用户名指向的ip地址是否改变,如果未生效,可以重启服务器使hosts生效。

你可能感兴趣的:(Oracle 连接出现Listener refused the connection with the following error:ORA-12505的解决)