【正确答案】由于Oracle支持将多个Oracle软件(或者多版本的数据库软件)安装到同一台服务器上,这就需要一个位置统一记录安装的软件信息。中央目录(Central Inventory)实际上就是一台主机上安装的Oracle产品清单。在这个清单里记录了每一个Oracle软件主目录的名称和位置、安装的组件,以及一些其他的信息。OUI在安装产品时会读取中央目录来确认已经安装过的产品信息,确保新安装的产品不会和已存在的产品冲突,而且不会覆盖掉原有的产品。另外,Oracle的集群和数据库软件在进行升级时,OUI也是通过读取中央目录中的信息来确认哪些软件应被安装的。中央目录(Central Inventory)所有的Oracle软件安装都依赖于该目录,所以,要确保该目录已经备份,删除或丢失oraInventory目录的内容,都有可能导致安装或升级报错。另外,Oracle的软件产品通常比较复杂,包含很多组件,所以还需要一个更加细致的清单来记录每一个oracle_home下所安装的产品组件。而本地目录(Local Inventory)就是这样一个清单,它记录了每个产品所安装的组件,以及每个组件上应用过的补工程序信息。
oraInventory目录的位置是由oraInst.loc文件决定的:
1)AIX和Linux平台:/etc/oraInst.loc。
2)Solaris和HP-UX平台:/var/opt/oracle/Oralnst.loc。
3)Windows平台:HKEY_LOCAL_MACHINE/Software/Oracle/inst.loc。
默认情况下它保存在$ORACLE_BASE上一层路径的oraInventory路径下,例如:

一旦中央目录文件出现了损坏,请尝试使用以下的两种方式恢复该文件:
方式1:如果其他节点的inventory.xml没有损坏,可以将其复制到本地节点以覆盖原有文件。
方式2:使用$GRID_HOME/oui/bin/runInstaller工具重建inventory.xml文件。例如:
步骤1:添加GI_HOME:

步骤2:添加RDBMS_HOME:
