最近在HP 11.31系统下安装ORACLE 10G的时候,碰到不少麻烦,问题集中体现在以下几个方面:
1,建立ORACLE用户后无法进入指定的目录、无法生成profile文件
2,通过Xmanager无法进入图形界面进行安装
3,能够进入图形界面,但是弹不出oracle的安装界面
对于第一个问题,前面的文章已经阐述得比较清楚了,11.23下面就没这么麻烦,我想大致跟11.31下加强的安全机制是密不可分的。对于第二个问题,11.23跟11.31甚至11.11操作系统下都比较明显,这几乎就是一个老大难的问题。幸好,通过努力找到了比较好的解决方法。实践之后,发现跟网上连篇累牍的说法还是有很大差别的,实际没那么复杂。
至于第三个问题,弄了好长时间,在老大的带领以及部门成员的通力合作下顺利解决。本文重点会谈谈这第三个问题,正是这个问题困扰了比较长时间。
UNIX下ORACLE的安装通常有两种方法,一种是常用的,通过图形界面的方式进行安装,一种是不太常用但是比较快捷的,直接在命令行下运行脚本来安装。就保障性来说,还是推荐使用第一种方法,毕竟比较直观一些,安装过程中发现哪些错误也比较明显。要通过图形界面方式安装,比如这里安装ORACLE10g,就需要通过oracle用户登陆到图形界面下,然后运行runInstaller来进行安装,这里就碰到了上面提到的第二个问题:无法登陆到图形界面。
常见的有两种情况,一种是在Xmanager里面输入主机ip地址之后回车,出来一个黑白电视机一样花屏的界面,连oracle登陆界面也看不到;还有一种情况是,好不容易看到oracle登陆界面了,但是输入用户名跟密码之后,在即将进入到图形界面的时候卡住了。
对于第一种情况,要考虑装有Xmanager的远程机和主机之间的通讯是否正常,这个只需要通过两台机器互相ping测试一下就知道了。对于第二种情况,对应有两种可能,一是主机名解析错误,登陆之后客户机会自动去解析主机的/etc/hosts文件,如果发现有问题,那么就进不了图形界面。举个简单的例子,在/etc/hosts文件中对应同一个主机名出现了两个不同的IP地址,解析受阻,自然就进不去图形界面了,所以切记一个主机名一定要对应一个唯一的IP地址,切勿一对多。
还有一种可能和另一个文件相关,这就是/etc/dt/config/Xservers。在这个文件的最后一行有如下内容:
# * Local /usr/bin/X11/X :0
可以通过取消前面的注释符,然后运行命令/sbin/init.d/dtlogin.rc reset来刷新dt进程,尝试重新登陆到图形界面。
有人建议取消注释符之后,重新启动dt进程,也就是运行/sbin/init.d/dtlogin.rc stop/start。但这里会有一个问题,通过这种方法重启dt进程之后,/etc/dt/config/Xservers文件最末一行的注释符又重新生成了,这对进入图形界面仍然是一个阻碍。
当然,一般情况下,/etc/dt/config/Xservers这个文件是不需要动的。
前两个问题都解决好了之后,顺利进入到图形界面。现在要面对第三个问题,就是在运行runInstaller之后,ORACLE的安装界面无法弹出,一直呈现如下所示的情形:
这一please wait就是大半天,随便怎么等,就是没反应,之后所有的操作都是围绕怎么解决这个问题的。
在解决这个问题之前,还要解决几个小问题。众所周知,在安装ORACLE之前,会自动进行一些系统前期检查,比如说这个版本的安装程序是否对应正确的操作平台,比如说交换区和临时区是否满足最低要求,从上图可见一斑。而要解决这个问题,就得修改一个叫oraparam.ini的文件。
修改这个文件,可以从两处下手,一是安装文件里,一是在临时文件夹里。安装文件里很好找,一般就是database/install/oraparam.ini。至于临时文件夹里,必须得运行了runInsaller之后这个文件才生成的。首先会生成一个临时文件夹,比如说我这里生成的文件夹是/tmp/OraInstall2010-04-07_11-03-39AM,那么oraparam.ini就位于此目录的oui文件夹下。
为啥要修改这个文件?这个问题比较现实。因为HP 11.31操作系统出来的时间不长,ORACLE厂商呢,也还没有在软件里加入针对11.31系统检测方面的一些信息,最高就到11.23。所以需要通过修改这个文件来加入11.31的信息,从而瞒天过海的让检测部分顺利过关。下面就来说说需要修改的具体信息:
上面这幅图呈现的是oraparam.ini文件的具体位置。
这第二幅图就是oraparam.ini的具体内容,在这个地方,将“HPUX-B.11.11-required“里面的11.11改为11.31。
同样的,第三幅图也是oraparam.ini的内容,这里需要将“HPUX=B.11.11”前面的注释符取消,然后将11.11改为11.31。
改完这两个地方,系统安装前检查的时候起码版本没啥问题了,如果交换区和临时区也满足要求,那么就可以顺着往下走了。
这里接下来要说说为啥会出现这样的状况,runInstaller之后为啥就停住没反应了,系统也没报错信息,网上有一篇帖子一针见血的指出是因为JRE路径的问题。建议使用系统自带的JRE路径,而不是ORACLE软件默认的路径。这样一来,就需要修改oraparam.ini文件里的第三处:JRE路径,如下图所示:
看到了吧,这个地方的JRE_LOCATION就是ORACLE默认的路径,我所需要做的就是在这个地方将默认的JRE路径改动成系统自带的JRE路径。
再上一张图片:
whereis jar是用来查询jar命令所在具体路径的,而jar就包含在JRE文件夹下。顺着这个思路,就得出系统JRE路径:/opt/java1.4/jre,把这个路径替换掉ORACLE默认的JRE路径就可以了。
完成这些工作之后,再运行runInstaller,这就ok了:
全文完。
解决了上面的问题,在安装的过程中还会碰到点小问题,比如说下面这个:
刚开始弹出这个界面的时候,PATH里面的内容是空白的,需要通过手工指定的方式找到products.xml文件,否则安装就无法进行。
再有,再运行dbca建库的时候也容易碰到和之前类似的问题,就是在图形界面中运行“./dbca”之后没有任何反应,这实际还是JRE的问题。
当然了,既然runInstaller都是使用ORACLE安装软件自带的JRE路径,那么dbca当然也不例外。通过查看dbca文件可以看到其中的JRE路径:
JRE_DIR=/home/db/oracle/10g/jdk/jre
我的ORACLE_HOME是/home/db/oracle,所以对应的默认JRE路径就是这个,但现在既然用系统自带的JRE路径也无法让dbca运行起来,不妨按照之前的方法,修改JRE路径为系统自带,如下所示:
# Directory Variables
SRVM_JLIB_DIR=/home/db/oracle/10g/jlib
JRE_DIR=/opt/java1.5/jre
#JRE_DIR=/home/db/oracle/10g/jdk/jre
新增JRE路径,屏蔽掉之前的JRE路径,再运行./dbca,问题就解决了。
在这个过程中,看到有人说也可以通过修改oracle用户的.profile文件,将JAVA_HOME、JRE_LOCATION等路径添加到CLASSPATH以及PATH里面,我觉得这样还不如直接修改oraparam.ini文件来的更稳妥一些。