INS-32047 错误本质是 RAC 各节点 ORACLE_BASE 软链接目标路径字符级不一致所致,需确保所有节点执行 readlink -f $ORACLE_BASE 输出完全相同,并同步校验 GRID_HOME、ORACLE_HOME 路径一致性。
INS-32047 错误本质是软链接路径不一致导致的校验失败
这个错误通常出现在 oracle 19c rac 静默安装或克隆部署阶段,ins-32047 的完整提示是 “the path specified for the oracle base is not valid. the path must be a local path on the node.”。但实际根本原因不是“非本地路径”,而是 grid infrastructure 安装过程中,runinstaller 或 cluvfy 在校验各节点的 oracle_base 软链接目标时发现不一致——比如节点1指向 /u01/app/oracle,节点2却指向 /opt/oracle(哪怕两者内容完全相同),就会直接报错退出。
检查并统一所有节点的 ORACLE_BASE 软链接目标
软链接本身不是问题,问题在于链接“指向的绝对路径”在所有节点上必须完全相同(字符级一致)。常见踩坑点:
-
ORACLE_BASE环境变量值 ≠ 实际软链接目标:比如你设了export ORACLE_BASE=/u01/app/oracle,但/u01/app/oracle是个软链接,真正要检查的是它readlink -f /u01/app/oracle的结果 - 不同节点用了不同创建方式:节点1用
ln -s /u01/app/oracle /oracle,节点2用ln -s /opt/oracle /oracle,即使目录结构镜像,路径字符串也不等价 - 路径末尾斜杠差异:
/u01/app/oracle和/u01/app/oracle/在某些校验逻辑中会被视为不同路径
实操步骤:
在每个节点执行:
readlink -f $ORACLE_BASE
确保输出完全一致。如果不一致,统一重建软链接:
rm -f /u01/app/oracle<br>ln -sf /u01/app/oracle /u01/app/oracle
(注意:使用绝对路径做源和目标,避免相对路径;不要跨文件系统软链到 ASM 或 NFS 挂载点)
静默安装前必须验证的三个路径一致性
RAC 静默安装会校验三组路径,任一组不一致都可能触发 INS-32047 或类似变体(如 INS-40915):
-
ORACLE_BASE:必须是本地文件系统上的绝对路径,且所有节点readlink -f结果相同 -
GRID_HOME:Grid Infrastructure 安装目录,不能是软链接,必须真实存在且权限、属主(grid:oinstall)一致 -
ORACLE_HOME(数据库软件):同GRID_HOME要求,且不能与GRID_HOME相同或嵌套
特别注意:cluvfy comp software -n all -verbose 会明确告诉你哪项路径不匹配,比盲猜高效得多。
克隆环境里最容易被忽略的残留软链
如果你是从一个节点克隆出第二个节点(比如 VMware 克隆),/etc/oratab、/var/opt/oracle/oraInst.loc 甚至 $HOME/.bash_profile 里的软链接定义可能还带着原节点的路径痕迹。这些文件不会被 cluvfy 自动扫描,但会在安装后期被读取并引发校验失败。
务必逐项清理:
- 检查
/etc/oratab中每行的ORACLE_HOME路径是否真实存在且是硬路径(非软链) - 运行
cat /var/opt/oracle/oraInst.loc,确认inventory_loc和inst_group值在所有节点一致,且inventory_loc目录本身不能是软链接 - 以
grid和oracle用户分别检查~/.bash_profile,删除任何硬编码的ORACLE_BASE赋值或软链创建命令
最稳妥的做法:克隆后,先清空所有节点的 /u01/app 下内容,再从头创建目录、软链、用户、权限——别试图复用旧软链。











