因为源库触发了ora 31626错误,原因是数据库打补丁后,未升级数据字典.

solution:

1  sql>@?/rdbms/admin/catalog.sql

2  sql>@?/rdbms/admin/catproc.sql

3  执行以上脚本后重启数据库。

4  查询dba_registry检查数据库数据字典版本信息


cd $ORACLE_HOME/Opatch/

opatch lsinventory

报错:

opatch cannot find a valid oraInst.loc file to locate central Inventory

opatch failed with error code  104


默认的oraIn.loc是放在/etc下面,其内容会指明用户组与oraInventory的路径:

inventory_loc=/oracle/app/oraInventory    ----一般是$ORACLE_BASE目录下

inst_group=oinstall

而有时oraInst.loc会被放在$ORACLE_HOME目录下(具体情况自己查询),这时候指令就要修改:

opatch lsinventory -invPtrLoc $ORACLE_HOME/oraInst.loc  


oraInventory可以重建,重建的路径取决于oraInst.loc 中的inventory_loc值

cd $ORACLE_HOME/oui/bin/

./attachHome.sh

Oracle,grid用户均需要执行(某一节点)

注意:oracle,gird等相关用户或oracle组件都有其对应的home name,它需要注册到inventory子目录ContentsXML下inventory.xml文件里