版权声明:Mr.O版权所有 转载请标明出处 https://blog.csdn.net/qq_28189423/article/details/88760817
开发环境:
VMVare12.0
windows server2008
oracle11g
场景:
在虚拟机中搭载有windows server2008操作系统,使用oracle11g进行安装,安装过程非常顺利,sqlplus连接正常,但是无法通过sqldeveloper连接oracle,提示没有对应的监听。
解决方案:
一、问题排查,对于可能导致此结果的原因进行一一排查。
1、server 2008 默认没有开启1521端口
测试,将sqldeveloper安装到虚拟机中进行本地连接测试,依然不能连接上。
说明不是受到端口没有开启的影响,否则本地连接没有问题。 如果大家通过此方案可以解决,不需要继续排查。
2、相关服务没有打开
重点排查主服务和监听服务。
oracleserviceXXX
oracleXXXListener
监听服务和主服务正常
3、检查配置文件
找到listener.ora 和 tnsnames.ora 文件进行检查,发现问题所在。
由于使用虚拟机安装oracle,监听地址和主服务地址使用的是虚拟机ip地址,而不是监听本机地址。
oracle只监听了192.168.XXX.XXX对应的地址,没有监听localhost,使用默认连接地址localhost无法连接。
解决方案:修改host为虚拟机的计算机名称,这样通过监听名称,可以同时支持多个不同的网段对oracle的请求。
连接成功!
注意:此问题虽然见于虚拟机中,但是在我们的实际工作中也可能由于主机同时处于多个网段,导致部分网段无法访问,如果出现对应问题,可以参考此方案进行解决。