背景:为了学习oracle,我在虚拟机上安装了oracle。并在实体机上安装了oracle客户端及plsql developer。
开始之前,先回答两个问题
-
为什么不在本机安装oracle?
因为oracle比较消耗资源,而我不会一直用,所以放到虚拟机里,有需要的时候用比较好。也可以装在实体机上,然后再搞一个批处理来关闭或启动oracle服务,但是我感觉这样做也比较麻烦,并且万一系统给搞坏了要重装,oracle也要重装,所以综合考虑还是把oracle放到虚拟机中。 -
为什么不在虚拟机中装plsql developer?
虚拟机是win7,而我习惯了用win10,并且这样模拟了正常使用oracle的情况,一般都是通过plsql连接到远程数据库使用的,很少直接在服务器上连接数据库。
面临的难点:
- 虚拟机与实体机网络互通。
- 实体机配置plsql连接oracle.
注意事项:
- 虚拟机的网络连接要用nat模式。
用桥接模式其实也是可以的,但是不稳定,并且他的ip会跟随主机ip变,另外这个能不能ping通还跟网络有关,有一次我在A网络中不能ping通虚拟机,在B网络中又可能ping通,非常奇怪,后来猜测可能是A网络的设备添加有限制。
nat模式其实是给虚拟机固定了一个网段的,通过dhcp给虚拟机分配了一个地址。他的地址是相对固定的,因为只有这一台电脑。
另外还有一个要注意的是,有些ghost系统或定制系统精简了一些功能,导致安装了vmware后没有vmnet8,不能使用nat模式上网,所以要折腾类似的软件的时候,最好用原版操作系统,我因为ghost系统已经吃过不少亏了,不过一般人使用ghost系统还是挺好的,毕竟人家把好多东西都封装好了。
- 在安装client时最好选第二个管理员或第三个运行时。
我配置过两次,第一次选的管理员,结果安好后把tnsnames.ora改了一下,plsql就可以直接登上了。第二次我安的instantclient,安完后发现都没有tnsnames.ora文件,也没有network目录,在网上找了一下教程(配置环境变量,建立文件夹,plsql先oci)才配置好,总之选管理员那个安装的话,配置简单此些。
连接过程中还遇到过一些小问题,见:
一次ora-12541的解决
最后列一下我的环境:
虚拟机:win7 64位 旗舰版 原版系统
oracle服务端:oracle 11g r2 64位
oracle客户端:oralce 11g r2 client 64位
实体机:win10 专业版64位 原版系统
plsql developer: plsqldev 13 64位