oracle 19c已经发布了快一年了,在AIX和Linux上面安装的次数也不少了,安装的方法也层出不穷,最常用的就是图形化了,可以避免静默安装发现不了的问题。今天帮助一位朋友安装oracle 19c rac,在执行root.sh的时候,报错了。下面就详细分析下:
执行root.sh,屏幕打印日志,显示在安装acfs的时候,报错failed了,
前台日志只是显示failed,并没有具体的报错信息,我们在相关路径下面查找root.sh的日志,路径在前台日志重有显示,为/u01/app/grid/crsdata/主机名/crsconfig/rootcrs_主机名_日期.log。直接搜索failed,我们可以看到相关报错为:
通过这个报错信息我们大概可以看出,是由于ACFS在安装的过程中发现了以前的版本,在uninstall的过程报错,又无法安装新的acfs,所以导致安装失败。
查看mos,发现有篇文章和这种情况相似,只是版本不同:AIX: ROOT.SH FAILS WITH CLSRSC-196: ACFS DRIVER INSTALL ACTIONS FAILED (Doc ID 1929899.1)。
经询问,此平台为AIX,之前安装的12.2.0.2,安装19c没有机器,所以rm -rf $GRID_HOME,直接删除相关目录来进行卸载,没有使用正常的卸载命令。可能导致文件有残留,从而导致失败。按照mos的解决方案:
Manually remove the driver files as root user:
- Copy the following files from <12.1 GRID_HOME>/usm/install/cmds/bin to /usr/lib/methods/, overwriting the existing ones:
#cd <12.1 GRID_HOME>/usm/install/cmds/bin
#cp cfgacfsctl.bin cfgadvmctl.bin cfgadvmvol.bin defacfsctl.bin defadvmctl.bin ucfgacfsctl.bin ucfgadvmctl.bin ucfgadvmvol.bin udefacfsctl.bin udefadvmctl.bin /usr/lib/methods/
- Modify the following files: /usr/lib/methods/ucfgacfsctl, /usr/lib/methods/ucfgadvmctl, /usr/lib/methods/udefacfsctl, /usr/lib/methods/udefadvmctl, change "ORA_CRS_HOME=" from old 11.2 GRID_HOME to 12.1 GRID_HOME
- Run the following commands to complete deinstallation of old ACFS version:
#/usr/lib/methods/ucfgacfsctl -l ofsctl (Continue if error states "failed to look up ODM CuDv object class" or "device is already unconfigured")
#/usr/lib/methods/ucfgadvmctl -l advmctl (Continue if error states "failed to look up ODM CuDv object class" or "device is already unconfigured")
#/usr/lib/methods/udefacfsctl -l ofsctl (Continue if error states "failed to look up ODM CuDv object class")
#/usr/lib/methods/udefadvmctl -l advmctl (Continue if error states "failed to look up ODM CuDv object class")
#/usr/sbin/rmauth -h oracle
#rmrole oracle_devmgmt
#setkst
#rm /usr/lib/drivers/oracle
#rm /usr/lib/methods/advm /usr/lib/methods/acfs
#rm -rf /sbin/helpers/acfs
#rm /usr/sbin/acfsutil /usr/sbin/advmutil
#rm /sbin/acfsutil /sbin/advmutil*
执行具体情况如下:
通过和第一张图片对比可知:libhasgen12.so. 这里显示的是缺少12的版本,应该是找以前安装过oracle 12c rac的残留版本。卸载的时候,libhasgen19.so 找的又19版本.所以这里可以以版本来区分。root.sh执行安装acfs的时候,调用到12c的版本了,但是12c的已经删除,所以报错找不到,应该是重新安装的时候找19的版本。
重新执行root.sh报错解决。
所以以后卸载oracle,一定要按照官方推荐的卸载方法。具体参考下面几篇文章
1、How to Add Node/Instance orRemove Node/Instance in 10gr2, 11gr1, 11gr2 and 12c Oracle Clusterware and RAC(文档 ID 1332451.1)
2、How to Remove/Delete a Node FromGrid Infrastructure Clusterware When the Node Has Failed (文档 ID 1262925.1)
3、https://docs.oracle.com/cd/E14795_01/doc/rac.112/e10717/adddelclusterware.htm#CHDFIAIE
4、https://docs.oracle.com/cd/E18283_01/rac.112/e16795/adddelunix.htm#BEICADHD
5、https://docs.oracle.com/cd/E18283_01/rac.112/e16794/adddelclusterware.htm#CWADD90992
6、http://docs.oracle.com/cd/E11882_01/rac.112/e41959/adddelclusterware.htm#CWADD90992
原文地址:https://blog.51cto.com/zhuozhuo/2464563