因为源库触发了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文件里