Oracle Universal Installer是一种基于Java的图形界面应用程序,OUI为Oracle软件的安装、管理提供了统一的接口。在Unix平台上安装Oracle database software时,因为实际操作系统的差异,往往会出现OUI无法正常启动的问题,在这里我列出几种常见的启动问题和解决方案。
1.Itanium Montecito processors引起的JRE问题:在安腾平台上执行runInstaller启动OUI时会出现Java HotSpot错误如下:
An unexpected error has been detected by HotSpot Virtual Machine:
SIGILL (0x4) at pc=0x2000000000039a4070 pid=11459 tid=2305843009213968960
原因是9iR2,10gR1/R2自带的JRE在Montecito处理器相关的操作系统如Windows/Linux Itanium上存在Bug,该Bug在SUN JDK版本1.4.2_11(b02)中得到修复;如果遇到以上问题,那么可以follow 以下Metalink文档:
How To Install Oracle RDBMS Software On Itanium Servers With Montecito Processors [ID 400227.1]
How To Identify A Server Which Has Itanium2 (Montecito, Montvale, Tukwila....) Processors Installed [ID 401332.1]
2.DISPLAY显示环境变量设置不当导致图形界面无法显示,可以通过安装例如Xmanager的软件解决;也可以follow以下Metalink文档:
FAQ: X Server Testing and Troubleshooting [ID 153960.1]
3.临时目录/tmp空间应至少有400MB空间,且Oracle software安装用户对该目录有读写权限;在无奈之下可以通过修改用户的临时目录环境必变量$TMP来workaround:
Unable To Start OUI: not enough room in /tmp [ID 339657.1]
How To Set Temporary Space Directory [ID 177902.1]
4.必要时以"-debug"调试选项来调用OUI,通过阅读详细的OUI bootstrap引导流程日志以确认和保证以下2点:
- 在JRE解压阶段没有出现错误
- 在调用java命令启动OUI java图形界面阶段没有出现错误
如以下DEBUG示例:
[maclean@rh8 database]$ cd database
[maclean@rh8 database]$ ./runInstaller -debug > debug.log
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2011-03-17_03-12-17PM. Please wait ...Archive: ../stage/Components/oracle.jdk/1.5.0.1.1/1/DataFiles/lib.jar
inflating: /tmp/OraInstall2011-03-17_03-12-17PM/jdk/lib/dt.jar
inflating: /tmp/OraInstall2011-03-17_03-12-17PM/jdk/lib/htmlconverter.jar
inflating: /tmp/OraInstall2011-03-17_03-12-17PM/jdk/lib/ir.idl
inflating: /tmp/OraInstall2011-03-17_03-12-17PM/jdk/lib/jconsole.jar
inflating: /tmp/OraInstall2011-03-17_03-12-17PM/jdk/lib/orb.idl
inflating: /tmp/OraInstall2011-03-17_03-12-17PM/jdk/lib/sa-jdi.jar
inflating: /tmp/OraInstall2011-03-17_03-12-17PM/jdk/lib/tools.jar
Archive: ../stage/Components/oracle.jdk/1.5.0.1.1/1/DataFiles/jre.jar
EMPTY_DIR
inflating: /tmp/OraInstall2011-03-17_03-12-17PM/jdk/jre/CHANGES
inflating: /tmp/OraInstall2011-03-17_03-12-17PM/jdk/jre/COPYRIGHT
inflating: /tmp/OraInstall2011-03-17_03-12-17PM/jdk/jre/LICENSE
..................
LD_LIBRARY_PATH environment variable :
-------------------------------------------------------
Total args: 22
Command line argument array elements ...
Arg:0:/tmp/OraInstall2011-03-17_03-12-17PM/jdk/jre/bin/java:
Arg:1:-Doracle.installer.library_loc=/tmp/OraInstall2011-03-17_03-12-17PM/oui/lib/linux:
Arg:2:-Doracle.installer.oui_loc=/tmp/OraInstall2011-03-17_03-12-17PM/oui:
Arg:3:-Doracle.installer.bootstrap=TRUE:
Arg:4:-Doracle.installer.startup_location=/home/maclean/Downloads/database/install:
Arg:5:-Doracle.installer.jre_loc=/tmp/OraInstall2011-03-17_03-12-17PM/jdk/jre:
Arg:6:-Doracle.installer.nlsEnabled="TRUE":
Arg:7:-Doracle.installer.prereqConfigLoc= :
Arg:8:-Doracle.installer.unixVersion=2.6.35.11-83.fc14.i686:
Arg:9:-mx150m:
Arg:10:-cp:
Arg:11:/tmp/OraInstall2011-03-17_03-12-17PM::/tmp/OraInstall2011-03-17_03-12-17PM/ext/jlib/orai18n-mapping.jar:/tmp/OraInstall2011-03-17_03-12-17PM/ext/jlib/orai18n-utility.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/OraInstaller.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/oneclick.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/xmlparserv2.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/share.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/OraInstallerNet.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/emCfg.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/OraPrereq.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/jsch.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/ssh.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/remoteinterfaces.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/http_client.jar:../stage/Components/oracle.swd.opatch/11.1.0.6.0/1/DataFiles/jlib/opatch.jar:../stage/Components/oracle.swd.opatch/11.1.0.6.0/1/DataFiles/jlib/opatchactions.jar:../stage/Components/oracle.swd.opatch/11.1.0.6.0/1/DataFiles/jlib/opatchprereq.jar:../stage/Components/oracle.swd.opatch/11.1.0.6.0/1/DataFiles/jlib/opatchutil.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/InstImages.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/InstHelp.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/InstHelp_de.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/InstHelp_es.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/InstHelp_fr.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/InstHelp_it.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/InstHelp_ja.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/InstHelp_ko.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/InstHelp_pt_BR.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/InstHelp_zh_CN.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/InstHelp_zh_TW.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/oracle_ice.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/help4.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/help4-nls.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/ewt3.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/ewt3-swingaccess.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/ewt3-nls.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/swingaccess.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/classes12.jar::/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/jewt4.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/jewt4-nls.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/orai18n-collation.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/orai18n-mapping.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/ojmisc.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/xml.jar:/tmp/OraInstall2011-03-17_03-12-17PM/oui/jlib/srvm.jar:
Arg:12:oracle.sysman.oii.oiic.OiicInstaller:
Arg:13:-scratchPath:
Arg:14:/tmp/OraInstall2011-03-17_03-12-17PM:
Arg:15:-sourceLoc:
Arg:16:/home/maclean/Downloads/database/install/../stage/products.xml:
Arg:17:-sourceType:
Arg:18:network:
Arg:19:-timestamp:
Arg:20:2011-03-17_03-12-07PM:
Arg:21:-debug:
-------------------------------------------------------
Initializing Java Virtual Machine from /tmp/OraInstall2011-03-17_03-12-07PM/jdk/jre/bin/java. Please wait...
[maclean@rh8 database]$ Oracle Universal Installer, Version 11.1.0.6.0 Production
Copyright (C) 1999, 2007, Oracle. All rights reserved.
若以上JRE解压顺利完成但OUI仍无法启动图形欢迎界面(一般来说由java命令失败引起),那么很有可能是安装工具自带的JRE在目标系统上无法正常工作。建议客户自行安装目标系统上最新可用的JDK软件,并使用runInstaller的"-jreloc"选项以workaround。
5.为了进一步确认JRE的问题,我们可能需要将安装介质中自带的JRE手动解压出来并测试其java命令的可用性;可以通过如下流程测试:
/* 首先通过oraparam.ini配置文件了解介质自带JRE jar包所在路径 */
[maclean@rh8 tmp]$ cat database/install/oraparam.ini |grep JRE_LOCATION
JRE_LOCATION=../stage/Components/oracle.swd.jre/1.4.2.8.0/1/DataFiles
[maclean@rh8 tmp]$ ls database/stage/Components/oracle.swd.jre/1.4.2.8.0/1/DataFiles/
filegroup1.jar filegroup2.jar filegroup3.jar filegroup4.jar filegroup5.jar
[maclean@rh8 tmp]$ mkdir /tmp/jre_test
[maclean@rh8 tmp]$ cp database/stage/Components/oracle.swd.jre/1.4.2.8.0/1/DataFiles/*.jar /tmp/jre_test
[maclean@rh8 tmp]$ cd /tmp/jre_test
[maclean@rh8 jre_test]$ unzip filegroup1.jar
Archive: filegroup1.jar
inflating: jre/1.4.2/bin/ControlPanel
inflating: jre/1.4.2/bin/java
inflating: jre/1.4.2/bin/java_vm
inflating: jre/1.4.2/bin/keytool
inflating: jre/1.4.2/bin/kinit
inflating: jre/1.4.2/bin/klist
inflating: jre/1.4.2/bin/ktab
inflating: jre/1.4.2/bin/orbd
inflating: jre/1.4.2/bin/policytool
inflating: jre/1.4.2/bin/rmid
inflating: jre/1.4.2/bin/rmiregistry
inflating: jre/1.4.2/bin/servertool
inflating: jre/1.4.2/bin/tnameserv
/* 使用unzip命令依次解压copy过来的jar文件,会出现jre目录 */
[maclean@rh8 jre_test]$ ls
filegroup1.jar filegroup2.jar filegroup3.jar filegroup4.jar filegroup5.jar jre
[maclean@rh8 jre_test]$ cd jre/1.4.2/bin
[maclean@rh8 bin]$ chmod u+x java
[maclean@rh8 bin]$ ./java -version
java version "1.4.2_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03)
Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode)
/* 可以看到在我们的场景中java命令运行正常 */
若以上测试的最后结果中java命令出错则说明Oracle安装介质自带的JRE存在问题,这可能是个例,在安装介质传输过程中出现网络错误所导致的文件损坏可能引起以上问题;可以通过checksum等方式验证安装介质包/ISO文件无误。若经过验证发现安装介质没有损坏,那么很有可能是自带JRE在目标操作系统上无法正常运行,用户可以到java.sun.com网站去下载指定平台最新可用的JDK软件,在成功安装后JDK后再次尝试以"-jreloc"选项启动runInstaller程序,命令示例如下:
./runInstaller -debug -jreLoc <JRE Install Home>