0
点赞
收藏
分享

微信扫一扫

RAC Central Inventory

慎壹 2022-08-17 阅读 39


读书笔记

 

由于Oracle支持将多个Oracle软件(或者多版本的数据库软件)安装到同一台服务器上面,这就需要一个位置统一记录安装的软件信息。中央目录(central inventory)实际上就是一台主机上面安装的Oracle产品的清单,这个清单里面记录了每一个Oracle软件的主目录的名称和位置,安装的组件,以及一些其他的信息。

 

OUI在安装产品时候会读取中央目录来确定已经安装过的Oracle产品的信息,确保新安装的产品不会和已经存在的产品发生冲突,而且不会覆盖掉原有的产品。另外,Oracle的集群和数据库软件在进行升级的时候,OUI也是通过读取中央目录的信息来确认哪些软件应该被安装。对于10G,11GR1版本的软件,Oracle在进行补丁集(opatch set)升级的时候选择的方式是:在原有的oracle_home上面直接用新的软件覆盖旧的软件,也就是in-place升级方式。而对于11GR2版本,oracle选择创建新的oracle_home来保存新的版本,同时保留旧的版本,也就是所谓的out-of-place升级方式,这样更加有利于回滚到之前的版本。

 

 

另外Oracle的软件产品通常比较复杂,包含很多组件,所以需要一个更加清晰细致的清单来记录每一个oracle_home下所安装的产品组件,而本地目录(local inventory)就是这样一个清单,它记录着每个产品所安装的组件,以及每个组件上应用过的补丁程序信息。

 

  1. central inventory

Central inventory的位置是通过文件/etc/oraInst.loc(不同平台下可能不同,我的是rhel 6.5)记录的。默认情况下它是保存在<oracle_base>上一层路径oraInventory路径下的。例如:

[root@RAC1 ~]# cat /etc/oraInst.loc

inventory_loc=/u01/app/oraInventory

inst_group=oinstall

 

上面的信息说明central inventory位于路径/u01/app/oraInventory下,而且拥有者的group是oinstall。Central inventory的核心文件是inventory.xml文件,它位于<inventory_loc>/ContentsXML路径下。以下是一个集群节点的inventory.xml文件实例。

 

[oracle@RAC1 ContentsXML]$ cat inventory.xml

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

<!-- Copyright (c) 1999, 2013, Oracle and/or its affiliates.

All rights reserved. -->

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

<INVENTORY>

<VERSION_INFO>

11.2.0.4.0</SAVED_WITH>

   <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>

</VERSION_INFO>

<HOME_LIST>

<HOME NAME="Ora11g_gridinfrahome1" LOC="/u01/app/11.2.0/grid" TYPE="O" IDX="1" CRS="true">

   <NODE_LIST>

 <NODE NAME="rac1"/>

      <NODE NAME="rac2"/>

   </NODE_LIST>

</HOME>

<HOME NAME="OraDb11g_home1" LOC="/u01/app/oracle/product/11.2.0/db_1" TYPE="O" IDX="2">

   <NODE_LIST>

      <NODE NAME="rac1"/>

      <NODE NAME="rac2"/>

   </NODE_LIST>

</HOME>

</HOME_LIST>

<COMPOSITEHOME_LIST>

</COMPOSITEHOME_LIST>

</INVENTORY>

 

以上信息说明:

(1)Inventory版本是11.2.0.4

(2)集群管理软件被安装(CRA=”true”),对应的oracle home名称是Ora11g_gridinfrahome1,路径是/u01/app/11.2.0/grid。

(3)数据库软件被安装,对应的oracle_home名称是OraDb11g_home1,路径是/u01/app/oracle/product/11.2.0/db_1。

(4)集群当中包括两个节点,rac1,rac2,这意味着集群当中三个节点的central inventory位于相同的位置,而且包含相同的信息。

 

 

一旦central inventory文件出现了损坏,请不要尝试手动修改,因为这不是oracle建议的方式,使用下面两种方式恢复文件。

  1. 如果其他节点的inventory.xml没有损坏,可以将其复制到本地节点已覆盖原有的文件。
  2. 使用.runInstalll工具,这个工具位于<gi_home>/oui/bin路径下面,重建inventory.xml文件。

步骤1:添加Gi home

$./runInstaller -slient -ignoreSysPrereqs -attachHome ORACLE_HOME=’/u01/app/11.2.0/grid’

CLUSTER_HOME_NAME=’Ora11g_gridinfrahome1’ CLUSTER_NODES=rac1,rac2 CRS=true

“INVENTORY_LOCATION=/u01/app/oraInventory” LOACL_NODE=RAC1

步骤2:添加Rdbms home

$./runInstaller -slient -ignoreSysPrereqs -attachHome ORACLE_HOME=’/u01/app/oracle/product/11.2.0/db_1’

ORACLE_HOME_NAME=’OraDb11g_home1’ CLUSTER_NODES=rac1,rac2 CRS=true

“INVENTORY_LOCATION=/u01/app/oraInventory” LOACL_NODE=RAC1

(以上命令只是一个例子,具体情况具体分析)

 

举报

相关推荐

0 条评论