Oracle Database 11g R2 在Oracle Linux 6.3和Ubuntu 12.04的安装
Oracle Database很难装。在微博上看到,有人说如果装好Oracle的数据库,其他数据库就很简单了。除了MySQL,我没装过其他,所以不知道。。
Oracle Linux Server 6.3:
既然是Oracle的产品,Oracle Linux应该是被支持的平台之一。Oracle Database 11g Release 2 (11.2) Installation On Oracle Linux 6这篇文章基本上照着做就可以安装成功了。
Ubuntu 12.04:
同样,How to install Oracle Database 11g R2 on Ubuntu 12.04这篇文章也是按照它做就基本上会成功了。它的中心思想是两个步骤。一是把ubuntu装扮成Red Hat/Fedora系,修改文件夹结构,添加软链接;二是安装。轻松加愉快。
笔记:
珠玉在前,我也不好献丑重写一篇了。不过,在我安装的过程中,遇到几个情况,觉得值得记录一下。
其中一个提前说的就是最好先设置,安装前再解压。因为对两个文件改权限总比两个文件夹简单一点。
这些notes中,前两点是仅针对Oracle Linux的,后面的是两个操作系统公共的:
1. 在Oracle Linux Server 6.3安装的时候,oracle-rdbms-server-11gR2-preinstall这个工具很好用。它自动化地把配置修改了,而且在前面添加上注释,如果以后要恢复配置,能清晰地看到。因为Oracle Linux是Red Hat兼容的,所以不知道会不会也有相同的效果。ubuntu装了rpm,也没有尝试过。
不过,在自动化配置工具运行完成以后,有两个地方与文中不一致。一是中还有一两个文中所说包没有被安装。虽然应该问题不大,但为了保险起见,我还是用yum安装了;二是有些用户组没有被建立,这点文中手工配置的部分提到过,那些组是不需要的。后来在另一台机器上没有建立这些组,安装依然成功。
2. Oracle Linux Server 6.3文章中,+xhost那一句的命令,我运行从未成功过。但貌似不影响结果。
3. /etc/sysctl.conf中,那些后缀是all与max的值,应该不需要与文中一致。那个应该是数据库的要求的最小值,只需要比那个值大就好。
4. /etc/hosts中,加上那一行的意思应该是从这个文件中,找到本机主机名的一个ip地址。所以这需要做到两点,一是给一个形式合法的ip,能否连接到互联网没关系,最好避开127.0.0.1;二是要写自己的主机名,不要照抄文章用的那一个,具体可以在shell中用hostname命令查询。实际上在文章中用尖三角写了应该怎样替换。
5. 安装时,如果按照文中所说,用命令行运行runInstaller,即使设置了display变量,还是会出现Java异常。这应该是一个显示的问题,具体我也不太了解。在个人电脑中,要回避这个问题,可以用图形界面登录oracle用户,然后用鼠标双击安装目录下的runInstaller安装。安装选择typical还是advance都没有问题。
6. 安装过程中可能出现错误,这时不要急着退出,先按一下retry(有个错误就是这样被解决了。。)。如果不行,按照文中修改,然后retry即可。如果不能解决,请google一下。反正进程也是挂起了,不会有问题的。
7. 若未设置/etc/hosts,复制完文件、配置数据库会出现一个错误(号码忘了,不好意思),请重新查阅文章,设置为本机的hostname。
8. 安装成功后,记得运行那两个脚本。
9. 可以按照讲Oracle Linux安装那篇文章设置环境变量。
10. 用sqlplus,以sys(或者sysdba)用户登录后,可以尝试连接到scott/tiger模式。这需要先运行startup。
如果出现ORA-01034和ORA-27101错误,网上有两步可以解决问题,一是看变量$ORACLE_SID有没有设置(有可能写了配置文件,但是环境变量还没读取),二是看/dev/shm这个共享的空间有没有挂载、空间是否满足需求。
如果这些都满足,可能就是启动时的找不到pfile (Initialization Parameter File)。通常,启动时数据库会找$ORACLE_HOME/dbs/init$ORACLE_SID.ora这个文件。
这有两个解决方法。
10.1. 可以用命令行在startup命令后指定pfile,或者指定到全局的spfile(一般在$ORACLE_HOME/dbs/spfile,或者用show parameter spfile来定位)。
10.2. 把$ORACLE_BASE/admin/<username>/pfile/init.ora.<number>复制到$ORACLE_HOME/dbs/init$ORACLE_SID.ora。当然,在后者的目录下把init.ora复制成init$ORACLE_SID.ora,然后再配置也是可以的。
11. 有可能做完前面的东西,再次startup会出现ORA-01078以及LRM-00109错误,这时请尝试一下重启机器。我的朋友就是因为共享空间忙,尝试多次后失败。注销也不行,但重启后就好了。如果重启后也不行,请google一下,所有的解决方案都是一样的呢。
最后,可以解锁账户,进入scott/tiger模式与hr/hr模式测试数据库是否成功运行啦~