搭建背景:
由于工作中经常使用到oracle,有时想学习下oracle的使用,但是公司的oracle服务器是有权限限制的,有一些操作没有权限,所以想在自己电脑上安装一个oracle,供平常学习使用。
考虑到oracle服务器安装后会长期占系统资源,并且不容易卸载,所以我想着在虚拟机上安装oracle服务器,在本机安装客户端及plsql,这样用本机plsql的话,界面上会更流畅一些,虚拟机上装服务器,用的时候找开,不用的时候关闭虚拟机。
搭建经历:
想象是美好的,便实现的时候发现并不容易。主要遇到以下几个问题:
- 服务器版本的选择。我选择了最新的12c,但是安装完后发现12c的变化还是挺大,首先是目录结构变了,网上的一些配置文件的路径都发生了变化。其次是用户变了,现在自己创建的用户要以c##开头。光这几点变化就让我折腾了一会。
- 主机与虚拟机的网络连通。这一点也是一个坑,主机与虚拟机的互通有两个模式:一种是桥接模式,一种是nat模式,两种模式都可以实现主机与虚拟机的互通并且虚拟机都可以上网,网上推荐的更多的是nat模式,这种模式也确实有优点,他可以虚拟机的ip不随本机网络 的改变而改变,这样可以方便固定ip,方便在本机连接虚拟机的oracle, 但是我发现这种方式不太稳定,有一次我双方弄通了,但第二天用时发现又不通了,目前没找到原因。最后我使用的是桥接模式,这种模式的缺点就是虚拟机的ip要跟随主机的ip,如果学期固定网络到也还好,但是像我用的是笔记本,笔记本的连接的网络也经常变化,这,就会导致每次按网络时重新配置虚拟机的ip及tnsnames.ora文件。(有时间了我专门写一个网络连接的文章)
- oracle客户端版本的问题,我以前一直用的是一个oracle9i的精简客户端,这个客户端的好处是直接安装好后不用改配置,只用修改下tnsnames.ora就可以连接数据库了,他是可以连10g,11g版本的,但是这次连12c时,发现有问题,连不上。最终为了连上oracle,我更换了我的客户端版本和plsql版本。
经过了3个晚上的折腾,我终于把环境都弄好了,但是还是感觉不满意:
- 我的电脑配置已经很高了,但是打开我装有oracel服务器的虚拟机,还是感觉有些卡,不顺畅。
- 没有找到一个固定网络的方法,每次变换网络需要重新配置tnsnames.ora文件。
- 配置oracle客户端与服务器的连通还是不太熟悉,没有完全理解其中的一些内容,如tnsnames.ora各个配置文件的意义。搞不清服务名是不是两边都需要还是只需要一连配。
最后,如果有人跟我一样,搭建一个oracle的学习环境,我推荐这样做:
- 如果不是为了尝试新功能,尽量选择11g的oracle版本。
- 不使用虚拟机,直接在本机安装oracle,然后写一个批处理脚本,来打开或关闭oracle相关服务。