深入理解 OUI(Oracle Universal Installer)


原文连接:http://www.oracledatabase12g.com/archives/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3oracle-universal-installer-oui-text.html


一.OUI 说明

1.1.什么是 OUI

(1)基于Java的图形用户界面(GUI)应用程序

(2)会从products.xml文件中读取组件信息并安装套件

(3)OUI提供了统一的用户安装界面

 

使用OUI的先题条件:

(1)OUI需要用到Java运行时环境即JavaRuntime Environment (JRE),在绝大多数平台上该JRE会由OUI自动安装(少数如itanium Linux平台需要另外安装)

(2)需求:基于不同平台及所安装的Oracle产品而不同,在绝大多数情况下至少需要32MB以上的空闲内存

(3)磁盘空间需求:在Windows上至少需要60MB空间而在Unix平台上则为70MB才能启动OUI,此外库信息文件(inventory files)大约占用1MB空间

 

1.2 OUI能做什么

1)       其核心功能无疑是安装各类Oracle产品或组件

2)       反安装组建或产品

3)       维护基于XML的产品信息仓库(inventory)

4)       为安装执行必要的安装前检查

5)       当需要时额外调用配置助手(如Netca,DBCA,DBUA等)

6)       从oracle 11g开始,OCM也就是OracleConfiguration Manager也同样被综合到OUI的框架中信息库操作,包括附件节点列表  

 

1.3 OUI具有那些阶段

(1)启动阶段

开始对用户可见,载入必要的文件并显示一个欢迎界面

(2)安装阶段

用户选择安装或反安装某些产品;提供源和目标目录

(3)选择阶段

需要安装的产品被勾选,可用磁盘空间及必要磁盘空间被显示,并会出现summary总结页面

(4)安装进度阶段

实际安装过程中,显示安装进度条

(5)安装完成阶段

要求用户运行root.sh脚本,并启动某种配置助理工具(configuration assistants)

 

1.4 安装模式

(1)互动模式

用户使用图形界面访问各安装流程在对话框中并提供必要的安装信息,当提示时。在小范围安装中最为合适。

(2)静默安装

省略图形界面,由相应文件(response file)提供必要的信息。在安装过程中自动化实现,在众多服务器时。

如setup.exe -slient -responseFile <Path_to_ResponseFile)

 

1.5 Oraparam.ini文件

(1)OUI的初始化文件

(2)位于安装介质下的”install”子目录中

(3)文档Howto Interpret the oraparam.ini File [ID 237097.1]介绍了解释了oraparam.ini文件的内容

How to Interpretthe oraparam.ini File [ID 237097.1]

http://blog.csdn.net/tianlesoftware/article/details/6859834

 

(4)Oraparam.ini的一些重要参数

SOURCE:Location of the products.jar file. This location is relative to thedirectory where oraparam.ini exists.

JRE_LOCATION:Relative location of  the JavaRuntime Environment (JRE) which will be used by the Oracle Universal Installer

JRE_MEMORY_OPTIONS:Set these variables to influence the behaviourof JRE.ie. max heap size for java (-mx), startup size of java heap (-ms),disabling JIT (-nojit).  You shouldincrease the -mx and -ms values if you're getting out of memory errors.

 

1.6 如何启动OUI互动模式?

(1)在windows上:

<Disk>\setup.exe

安装后:

%ORACLE_HOME%\oui\bin\setup.exe

 

(2)在unix上

Cd <Disk1>

./runInstaller

安装后:

Cd $ORACLE_HOME/oui/bin

./runInstaller

 

1.7 如何启动OUI静默模式?

(1)在windows上:

记录相关的相应文件:

Setup.exe    -record-responseFile <ResponseFilename>

 

以静默模式安装

Setup.exe -slient -responseFile<ResponseFilename>

 

(2)在UNIX上:

记录相关的响应文件:

./runInstaller -record  -responseFile <ResponseFilename>

 

在静默模式下安装

./runInstaller -slient -responseFile<ResponseFileName>

 

参考:

How to install/deinstall Oracle DatabaseServer software silently without response file [ID 782918.1]

 

1.8 OUI日志存放在哪里

(1)每次OUI启动都会产生日志,日志名会以时间戳的形式归档

(2)这些日志包含了安装过程中丰富的信息。我们推荐在安装完成后复验一遍日志

(3)一般来说这些日志存放在中心信息库中(inventory),在logs子目录下的并以如下形式命名:

installActions<year-mm-dd_hh-mi-ss><AM|PM>.log
oraInstall<year-mm-dd_hh-mi-ss><AM|PM>.err
oraInstall<year-mm-dd_hh-mi-ss><AM|PM>.out

 

中心信息库的位置可以通过库指针文件了解到库指针文件的默认位置:

在windows 上:注册表中的”HKLM\Software\oracle\inst_loc”

在unix上:例如Solaris平台:/var/opt/oracle/oraInst.loc

其他平台如Linux:/etc/oraInst.loc

 

Linux 示例:

[xezf@localhost ~]$ cat /etc/oraInst.loc

inventory_loc=/home/oraInventory

inst_group=dba

 

1.9 如何确认已安装的产品

(1)使用OUI

启动OUI并尝试点击”InstalledProducts”

(2)也可以使用Opatch工具

Opatchlsinventory -detail

 

1.10 如何启用OUI的debug和trace功能

(1)OUI工具存在”-debug”选项:./runInstaller –debug

将启用最精细级别的信息日志

将显示启动阶段的信息(例如抽取JRE)

在对OUI进行可能由java引起的问题诊断时十分有效

 

(2)另一方面可以对OUI启用系统调用跟踪trace,一般我们使用操作系统提供的tracing工具,举例而言:truss -aefo/tmp/oui_trace.log ./runInstaller

 

参考文档:

How to Trace Unix System Calls [ID110888.1]

OUI: "Abnormal programtermination" with java.io.IOException in .err file [ID 798338.1]

 

绝大多数OUI意外终止的问题可以从.ERR文件中找到相关问题。

 

二.OUI 使用说明

2.1 Oracle Inventory的层次


[xezf@localhost ~]$ cat /etc/oraInst.loc

inventory_loc=/home/oraInventory

inst_group=dba

 

[xezf@localhost ~]$ cd /home/oraInventory/

[xezf@localhost oraInventory]$ ls

Contents          locks                    oraInst.loc     sessionContext.ser

ContentsXML       logs                     orainstRoot.sh

install.platform  oraInstaller.properties  oui

[xezf@localhost oraInventory]$ cdContentsXML/

[xezf@localhost ContentsXML]$ ls

comps.xml inventory.xml  libs.xml

 

[xezf@localhost ContentsXML]$ cat comps.xml

<?xml version="1.0"standalone="yes" ?>

<!-- Copyright (c) 2008 OracleCorporation. All rights Reserved -->

<!-- Do not modify the contents of thisfile by hand. -->

<PRD_LIST>

<TL_LIST>

</TL_LIST>

<COMP_LIST>

</COMP_LIST>

<ONEOFF_LIST>

</ONEOFF_LIST>

</PRD_LIST>

 

2.2 信息库指针文件

默认的信息库指针:在给定平台上的某个标准位置存放着该指针文件,该文件包含了中心信息库的位置。

/etc/oraInst.loc (Linux上)

/var/opt/oracle/oraInst.loc(Solaris上)

\\HKEY_LOCAL_MACHINE\\Software\Oracle\inst_loc(Windows上)

 

2.3 集中信息库(CentralInventory)

集中信息库:该信息库以目录形式存在,包含了该主机上安装的所有Oracle产品的信息

 

举例来说:

在Unix上:/u01/oraInventory

在Windows平台上:C:\ProgramFiles\Oracle\Inventory

 

信息库文件:已注册的ORACLE_HOME的列表

<inventory_location>/ContentsXML/inventory.xml

 

示例内容:

 

[xezf@localhost ContentsXML]$ cat inventory.xml

<?xml version="1.0"standalone="yes" ?>

<!-- Copyright (c) 2008 OracleCorporation. All rights Reserved -->

<!-- Do not modify the contents of thisfile by hand. -->

<INVENTORY>

<VERSION_INFO>

  <SAVED_WITH>10.2.0.4.0</SAVED_WITH>

  <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>

</VERSION_INFO>

<HOME_LIST>

<HOME NAME="OraDb10g_home1"LOC="/u01/oracle/product/10.2.0/db_1" TYPE="O"IDX="1"/>

</HOME_LIST>

</INVENTORY>

 

2.4 本地信息库(localInventory)

(1)本地信息库:目录结构包含了ORACLE_HOME中Oracle软件的细节信息

$ORACLE_HOME/inventory

(2)组件文件:各组件信息及其关联性,补丁集和One-off patch以及其所修复的bug,$ORACLE_HOME/inventory/ContentsXML/comps.xml

(3)ORACLE_HOME属性文件:关于HOME的GUID,ARU Id和Cluster_nodes等信息:

$ORACLE_HOME/inventory/oraclehomeproperties.xml

(4)本地信息库指针:指向自身注册的中心信息库(10Gr2以后才出现)

ORACLE_HOME/oraInst.loc

 

2.5 如何重建集中信息库

前提是本地信息库没有被损坏或丢失

 

使用runInstaller的'-attachHome' 选项,仅在10gr1以后可能。

 

在10.1.0.3以后,OUI会重建指定位置的oraInst.loc集中信息库,即便oraInventory目录不存在

 

命令语法

$ORACLE_HOME/oui/bin/runInstaller -slient-attachHome \

ORACLE_HOME=<ORACLE HOME PATH>

ORACLE_HOME_NAME=<name of the ORACLEHOME>

 

在oracle 10gr2以后attachhome和detachome的脚本被自动包含

<ORACLE_HOME>/oui/bin/attachhome.sh

<ORACLE_HOME>/oui/bin/detachhome.sh

 

2.6 10g以前和10g后安装的区别

在10g以前(经典的如9iR2),OUI与JRE组件一直作为非ORACLE_HOME组件而置于其独立位置上,与ORACLE_HOME相分离.

 

举例而言在9i中其安装位置:

OUI 组件位于<oraInventory>/../oui

JRE组件位于<oraInventory>/../jre

<oraInventory>/ContentsXML/comps.xml包含了9iR2中OUI与JRE组件的相关信息

 

到10g以后,JRE与OUI组件被移动到独立的ORACLE_HOME中,以使得各个ORACLE HOME可以做到自包含并支持例如clone和attachhome等的操作

 

举例来说从10g以后,安装位置位于:

OUI组件在$ORACLE_HOME/oui

JRE组件在$ORACLE_HOME/jre

<OH>/inventory/ContentsXML/comps.xml包含了关于OUI和JRE的信息

 

2.7 使用OUI的前提:合适的JRE

OUI是基于Java的图形化工具, 启动JRE必须要用到JRE(Java运行时环境Java Runtime Environment),在绝大多数平台上安装包中已经包含了启动OUI必要的JRE.

runInstaller/setup.exe在引导阶段会自动去解压并使用oraparam.ini中JRE_LOCATION所指向的JRE程序

 

OUI可以不使用自带的JRE,而使用用户指定的安装在操作系统上的JRE程序.

 

JRE最低版本要求:

OUI 2.2.0.X要求JRE版本不低于1.3.1(某些老版本的OUI只接受少数几个较早版本JRE,有时这些JRE往往已经找不到了)

OUI 10.1.0.X和10.2.0.X 要求JRE版本不低于1.4.2

OUI 11.1.0.X则要求不低于1.5

 

2.8 JRE是如何与安装套件打包的

JRE一般对应与OUI版本和安装套件打包在一起

安装套件使用OUI10.2.0.x版包含了扩展的JRE套件

 

cat oraparam.ini |grep JRE_LOCATION

JRE_LOCATION=../stage/Components/oracle.swd.jre/1.4.2.8.0/1/DataFiles

filegroup1.jar  filegroup2.jar  filegroup3.jar  filegroup4.jar  filegroup5.jar

 

11g中installer在oraparam.ini中引入了BOOTSTRAP_COMPS与JRE_SCRATCH_LOC参数;通过使用这些参数,11g安装器可以抽取并使用JDK组件(即oracle.jdk)由安装套件自带的。

 

BOOTSTRAP_COMPS="oracle.swd.oui:11.1.0.6.0,oracle.swd.oui.core:11.1.0.6.0,oracle.jdk:1.5.0.1.1"

JRE_SCRATCH_LOC=jdk/jre

 

2.9 如何使用可选的JRE协同OUI工作

安装套件(10.2.0.x和11g)使用OUI版本10.2.0.X和11.X,支持使用”-jreloc”选项以使用用户提供的JRE软件。

 

./runInstaller -jreloc/usr/local/jdk1.6.0_24 (Unix)

Setup.exe -jreloc C:\jdk1.6 (Windows)

 

安装套件(版本9.2.0.5至9.2.0.8和10.1.0.x)使用OUI版本10.1.0.X,可以参考Metalink文档”Note 298163.1”以了解创建“bin.jar和all_exception_bin.jar”

安装套件(版本9.2.0.2至9.2.0.4)使用OUI版本2.2.0.X,通过修改oraparam.ini并替换JRE_LOCATION所指向的位置,可以利用用户想要使用的JRE。

 

2.10 安装套件自带JRE已知的Bug/问题

1)       Bug5391050 - DB 10.2.0.1 INSTALLATION FAILS ON MONTECITO CHIP H/W

2)       Note400227.1  How To Install Oracle RDBMSSoftware On Itanium Servers With Montecito Processors

3)       Bug5530274 PATCH "P4547809_92080_SOLARIS64.ZIP" JAVA VERSION 1.3.1 -SR NUMBER 5746016.992

4)       Note393199.1 Oui provided with Patchset 9.2.0.8 fails with exception

 

2.11 OUI简易安装流程

 



2.12 11g数据库安装流程

 


2.13 11g新特性:ORACLE_BASE

ORACLE_BASE目前可以充当一个新的会话变量.

例如./runInstaller ORACLE_BASE=<location of ORACLE_BASE>

 

目前在GUI模式下界面会提示用户是否想要使用已有的ORACLE_BASE或者指定一个新的.

在安装之后,ORACLE_BASE信息会被记录到本地信息库中的以下文件:

<OH>/inventory/ContentsXML/oraclehomeproperties.xml

 

参考

Note454442.1 11g Install : Understanding about Oracle Base, Oracle Home andOracle Central/Global Inventory locations [ID 454442.1]

11g Install : Understanding about OracleBase, Oracle Home and Oracle Central/Global Inventory locations [ID 454442.1]

 

2.14 11g新特性:JRE

引入了可定制化的引导程序功能,这样做的出发点:

(1)软件自带的JRE无法正常引导或工作

(2)用户未安装OS级别的JRE/JDK,由此runInstaller无法使用-jreloc选项

 

Oraparam.ini文件中的新参数:

BOOTSTRAP_COMPS="oracle.swd.oui:11.1.0.6.0,oracle.swd.oui.core:11.1.0.6.0,oracle.jdk:1.5.0.1.1"

JRE_SCRATCH_LOC=jdk/jre,该参数指定了启动java引擎所在位置的相对起点

 

举例来说:

JRE_SCRATCH_LOC=jdk/jre,那么在引导完成后,JRE在<scratch>/jdk/jre/bin/java的位置被启动

runinstaller目前出现了新的选项:-bootstarponly,即仅针对指定的组件启动引导操作

../runInstaller –bootstraponlyBOOTSTRAP_LOC=<location>

 

OUI所使用JRE位置的优先级如下:

(1)若指定了-jreloc,则使用指定的位置

(2)指定了的JRE_SCRATCH_LOCATION

(3)使用已引导的oracle.swd.jre组件,位置由oraparam.ini指定的JRE_LOCATION决定,否则提示用户输入JRE_LOCATION

 

Preparing to launch Oracle Universal Installerfrom /tmp/OraInstall2011-03-17_01-30-30PM. Please wait ...

Please specify JRE/JDK location ( Ex. /home/jre), <location>/bin/java should exist :/fds

Please specify a valid JRE location :

 

2.15 常见问题

2.15.1 信息库常见问题

1)       集中信息库或本地信息库可能丢失会损坏造成的使用”opatch lsinventory -detail”或者OUI界面上点击installedProducts时找不到ORACLEHOME

2)       虽然opatch lsinventory -detail或者OUI界面上installedproducts点击可以显示相应ORACLE_HOME但无法列出详细信息,一般是ORACLE_HOME相关的信息库丢失或者损坏了

3)       若集中信息库丢失或损坏,可以通过还原来回复,前提是备份过

4)       我们极力推荐日常备份ORACLE_HOME和集中信息仓库,在升级或打patch之前

5)       使用9.2.0.2的客户需要注意,有报告说明OUI 2.2.0.12存在损坏信息库的bug,推荐参考文档Note229773.1

 

2.15.2 Unix或Windows上OUI启动问题检查列表

(1)Itanium Montecito processors相关的JRE问题

     Note401332.1  How To Identify A ServerWhich Has Intel® Montecito Processors Installed

     Note400227.1  How To Install Oracle RDBMSSoftware On Itanium Servers With Montecito Processors

 

(2)UNIX上的OUI启动失败检查列表

1)SPLAY环境变量设置不当

Note.153960.1FAQ X Server Testing and Troubleshooting

 

2)mp临时目录至少需要400MB的空间并且对oracle 安装用户来说可写,实在没有办法的时候,可以修改临时目录变量$TMP到别的目录

Note 339657.1Unable To Start OUI: not enough room in /tmp

   Note177902.1 How To Set Temporary Space Directory

 

3)OUI时使用”-debug”选项以确认

4)在JRE解压阶段没有出现错误,在调用java命令启动OUI阶段没有出现错误,若在JRE解压完成后(java 命令失败)OUI启动失败,那么一般可以确认是自带的JRE在目标系统上存在问题。

 

为了确认JRE的问题,手动解压自带的JRE并确认java命令:

cddatabase/stage/Components/oracle.swd.jre/1.4.2.8.0/1/DataFiles/

mkdir /tmp/java_test

cp *.jar /tmp/java_test

cd /tmp/java_test

Unzip filegroup[1-5].jar

cd jre/1.4.2/bin

chmod 755 java

 

$ ./java -version

java version "1.4.2_08"

Java(TM) 2 Runtime Environment, StandardEdition (build 1.4.2_08-b03)

Java HotSpot(TM) Client VM (build1.4.2_08-b03, mixed mode)

 

可以看到在我们的场景中java命令运行正常,若以上测试的最后结果中java命令出错则说明Oracle安装介质自带的JRE存在问题,这可能是个例,在安装介质传输过程中出现网络错误所导致的文件损坏可能引起以上问题;可以通过checksum等方式验证安装介质包/ISO文件无误。若经过验证发现安装介质没有损坏,那么很有可能是自带JRE在目标操作系统上无法正常运行,用户可以到java.sun.com网站去下载指定平台最新可用的JDK软件,在成功安装后JDK后再次尝试以”-jreloc”选项启动runInstaller程序,命令示例如下:

./runInstaller -debug -jreLoc <JRE InstallHome>

 

2.16 相关Support文档

OracleUniversal Installer Users Guide

Note.736819.1How to Log Good Service Request for Oracle Universal Installer (OUI) issues?

Note.454442.111g: Understanding about Oracle Base, Oracle Home and Oracle Central/GlobalInventory locations

Note71919.1 Debugging OUI on windows

Note137200.1 Checklist when Oracle Universal Installer (OUI) fails for Windows

Note208944.1 How to Resolve Issues of the OUI Hanging on UNIX

Note266617.1 OUI may appear and then disappear on Windows 2000 with SP4

Note338507.1 10gR2 OUI Error "OUI-10094:Problem in saving inventory"

Note301883.1OUI Deinstallation From Home1 Can Affect Home2




-------------------------------------------------------------------------------------------------------

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

Blog:   http://blog.csdn.net/tianlesoftware

Weibo:   http://weibo.com/tianlesoftware

Email:    tianlesoftware@gmail.com

Skype:    tianlesoftware


-------加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请----

DBA1 群:62697716(满);   DBA2 群:62697977(满)  DBA3 群:62697850(满)  

DBA 超级群:63306533(满);  DBA4 群:83829929(满) DBA5群: 142216823(满) 

DBA6 群:158654907(满)   DBA7 群:69087192(满)  DBA8 群:172855474

DBA 超级群2:151508914  DBA9群:102954821     聊天 群:40132017(满)

posted @ 2011-10-24 20:11  hibernate我最强  阅读(234)  评论(0编辑  收藏  举报