Oracle RAC 环境中重建中央 oraInventory 的操作指南
在 Oracle Real Application Clusters (RAC) 环境中,oraInventory(中央清单)用于记录所有 Oracle 安装信息。当 oraInventory 出现损坏或丢失时,我们可能需要重新构建它,以确保 OUI(Oracle Universal Installer)能正确识别现有的 Oracle Home。文件,它记录了所有注册过的 Oracle Home
背景与目的
在 Oracle Real Application Clusters (RAC) 环境中,oraInventory(中央清单)用于记录所有 Oracle 安装信息。当 oraInventory 出现损坏或丢失时,我们可能需要重新构建它,以确保 OUI(Oracle Universal Installer)能正确识别现有的 Oracle Home。本指南将介绍如何安全、完整地重建中央 oraInventory。
步骤概览
步骤 1:确认中央 oraInventory 的位置
-
Linux/Unix: 查看
/etc/oraInst.loc
或/var/opt/oracle/oraInst.loc
-
Windows: 默认在
%SYSTEMDRIVE%\Program Files\Oracle\Inventory
cat /etc/oraInst.loc
输出示例:
inventory_loc=/u01/app/oraInventory
inst_group=oinstall
步骤 2:查看原始 Inventory 信息
确认 oraInventory 的当前内容,主要看 ContentsXML/inventory.xml
文件,它记录了所有注册过的 Oracle Home 路径与所属节点。
示例:
$ cat /u01/app/oraInventory/ContentsXML/inventory.xml
输出内容如下:
<?xml version="1.0" standalone="yes" ?>
<!-- Copyright (c) 1999, 2011, Oracle.All rights reserved. -->
<!-- Do not modify the contents of this file by hand. -->
<INVENTORY>
<VERSION_INFO>
<SAVED_WITH>11.2.0.3.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.3/grid" TYPE="O" IDX="3" CRS="true">
<NODE_LIST>
<NODE NAME="cetrain21"/>
<NODE NAME="cetrain22"/>
</NODE_LIST>
</HOME>
<HOME NAME="OraDb11g_home1" LOC="/u01/app/oracle/product/11.2.0.3/userb" TYPE="O" IDX="4">
<NODE_LIST>
<NODE NAME="cetrain21"/>
<NODE NAME="cetrain22"/>
</NODE_LIST>
</HOME>
</HOME_LIST>
<COMPOSITEHOME_LIST>
</COMPOSITEHOME_LIST>
</INVENTORY>
说明:
-
<HOME>
标签标识一个 Oracle Home,包括路径(LOC
)、名称(NAME
)以及集群节点(NODE_LIST
)。 -
TYPE="O"
表示是 Oracle 安装路径,CRS="true"
表示该 Home 是 Clusterware(Grid Infrastructure)。
步骤 3:备份中央 oraInventory(每个节点都执行)
mv /u01/app/oraInventory /u01/app/oraInventory.bak
步骤 4:定位 OUI 执行程序目录
cd $ORACLE_HOME/oui/bin
步骤 5:重新注册 Grid Infrastructure
./runInstaller -silent -ignoreSysPrereqs -attachHome \
ORACLE_HOME="/u01/app/11.2.0.3/grid" \
ORACLE_HOME_NAME="Ora11g_gridinfrahome1" \
LOCAL_NODE="cetrain21" \
CLUSTER_NODES="{cetrain21,cetrain22}" \
CRS=true
注意:Grid Home 必须加上 CRS=true
。
步骤 6:注册数据库 Oracle Home
./runInstaller -silent -ignoreSysPrereqs -attachHome \
ORACLE_HOME="/u01/app/oracle/product/11.2.0.3/userb" \
ORACLE_HOME_NAME="OraDb11g_home1" \
LOCAL_NODE="cetrain21" \
CLUSTER_NODES="{cetrain21,cetrain22}"
步骤 7:验证新生成的 oraInventory
-
对比各节点上的
ContentsXML/inventory.xml
-
检查
dba_registry
、opatch lsinventory
输出是否一致
注意事项
-
仅需在一个节点执行 attach 操作,它会自动同步到其他节点。
-
避免多个节点同时 attach,否则可能出现冲突或破坏。
-
强烈建议 在操作前备份 oraInventory。
更多推荐
所有评论(0)