ORACLE RAC重建central inventory适用于:
Oracle Database - Enterprise Edition - Version 10.2.0.1 and later
目标:
在RAC环境重建oraInventory (central inventory)
关于central inventory,参考lei.wang的 http://bbs.landingbj.com/t-0-252811-1.html
1-根据central inventory 的位置,不同操作系统平台的位置不同
UNIX/Linux:
/etc/oraInst.loc 或者 /var/opt/oracle/oraInst.loc
Windows:
一般都是在 %SYSTEMDRIVE%\Program Files\Oracle\Inventory.
(往往是 C:\Program Files\Oracle\Inventory 除非系统盘不是 C的话)
2-根据central inventory 的内容信息找到Oracle home 的名称和位置
Unix/Linux :
$ cat /etc/oraInst.loc
inventory_loc=/u01/app/oraInventory
inst_group=oinstall
$ cd /u01/app/oraInventory
$ cd ContentsXML
$ cat 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>
3-备份central inventory,将其移动到其他位置(信息库占用的空间极小),在集群中的其他节点同样也做同样的备份操作。
UNIX/Linux :
mv oraInventory oraInventory.orig
Windows :
cd C:\Program Files\Oracle\Inventory
move C:\Program Files\Oracle\Inventory C:\Program Files\Oracle\Invt_org
3-cd 到相应的 OUI bin 目录.
Unix/Linux :
cd $ORACLE_HOME/oui/bin
Windows :
cd %ORACLE_HOME%\oui\bin
4-重建OraCrsHome,在执行 runInstaller 或者 setup.exe 时需要加上 attachHome 参数 。
注: Windows 的可执行文件是 setup.exe,Unix/Linux 的相应命令是 runInstaller。其实意思是一样的。下面的操作是使用 "runInstaller"命令 ;如果是Windows的话,使用"setup.exe"代替。
./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="<oracle or grid home path>" ORACLE_HOME_NAME="<Name of oracleCRSHome>" LOCAL_NODE="<localnode>" CLUSTER_NODES="<nodelist>" CRS=true
比如:
./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/u01/app/oracle/product/10.2.0/crs_1" ORACLE_HOME_NAME="OraCrs10g_home" LOCAL_NODE="rac1" CLUSTER_NODES="{rac1,rac2}" CRS=true
** 重要: 千万不能忘记加上 CRS=TRUE 参数 ***
5-重建 OraDbHome ,运行runInstaller 时需要加上 attachHome 选项。
./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="<oracle or grid home path>" ORACLE_HOME_NAME="<Name of oracleHome>" LOCAL_NODE=<localnode> CLUSTER_NODES=<nodelist>
比如:
./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1" ORACLE_HOME_NAME="OraDb10g_home1" LOCAL_NODE="rac1" CLUSTER_NODES="{rac1,rac2}"
6-检查RAC的所有节点,查看central inventory是否已经重新生成。
7-RAC的所有节点验证并比较 oraInventory/ContentsXML 目录下 XML 文件的大小是否一致。