我的情况是这样的:我在虚拟机上装了个win7 64位专业版的操作系统,并且在该系统上安装了11g的oracle数据库,虚拟机上可以连接上oracle数据库没有问题,问题是物理机连接不上虚拟机上的oracle数据库。我的解决办法如下:
前提:我是直接使用instanceclient+plsql.访问数据库。(至于该种方法怎么配置,相信也不用我说,能来看这篇博文的你早就完成了这一步或者类似这一步!)
1.所先必须确保物理机能够ping通虚拟机,如果ping不通的话那么接下来的那几步就都不用看了,先把ping通问题解决了。
因为这里的重点不是在这个问题上,所以就不写ping不通后的解决办法了,具体该问题怎么解决可以自行百度!百度上很多。
2.在第一步能够ping通的前提下依旧有可能连不上虚拟机的oracle服务器,接下来要做的就是检查虚拟机上oracle的服务有没有都启动!没有启动的话记得手动启动。
3.完成了第二步以后如果还不能连接上oracle服务器的没关系,继续看下去。接下来我们检查一下这两个文件(这两个文件在oracle的安装目录中我这里的安装目录是这样的)
①listener文件:
②tnsnames文件:
改完这两个文件以后一定要重新启动下第二步中提到的那两个服务!
4.完成了以上三步后如果还不能连接上虚拟机的oracle服务的话接着看第四步:
哈哈哈这一步也没什么,主要是检查一下自己的虚拟机的防火墙是否已经关闭了,如果没有关闭的话记得去关闭!
好了,完成了这几步以后在重新用物理机连接虚拟机上的oracle服务器,应该就没什么问题了!反正我这样是可以成功连接上的!
接下来我们使用cmd连接试试:使用的是instanceclient 64位版本的!需要配置path变量!
成功连接!好了,如果你跟着做完这几步还不能连接上的话,那我也没啥办法!
上面是用cmd控制台连接的,用plsql也一样可以连:(使用的是instanceclient 32位版本的!需要配置系统变量该变量指向的是tnsnames.ora文件的位置)
也能成功连接上!