Oracle 19c RAC集群安装权限检测失败解决方法

作者:技术拾光时间:2026-07-15 19:47:14浏览:190

Oracle19cRAC安装权限检测不通过常因路径嵌套、环境变量交叉污染及文件系统权限残留所致。$GRID_HOME和$ORACLE_HOME须为独立路径且属主正确;grid和oracle用户环境变量需严格隔离;root.sh执行前需清理残留文件。CVU报PRVG-11250可忽略,应关注ERROR条目。

权限检测不通过,通常不是用户组配置错误,也不是密码输入错误,这些只是表象。真正的原因是 Oracle 安装器在后台严格遵循三条硬性规则:路径归属、环境变量隔离、文件系统权限。只要其中任何一环没有对齐,root.sh 或 gridsetup.sh 就会报出模糊的 "permission denied",或者直接退出,让排查陷入困境。

Oracle 19c RAC集群安装权限检测失败解决方法

grid 和 oracle 用户的 $ORACLE_HOME 不能嵌套或共用

这是最常见的错误。安装器会反复检查路径结构,一旦发现 $ORACLE_HOME 是 $GRID_HOME 的子目录——例如 /u01/app/19.3.0/grid/dbhome_1——就会立即中止,没有协商余地。

  • $GRID_HOME 必须是独立路径,例如 /u01/app/19.3.0/grid,属主必须为 grid:oinstall
  • $ORACLE_HOME 必须是另一条独立路径,例如 /u01/app/oracle/product/19c/dbhome_1,属主必须为 oracle:oinstall
  • 两个路径不能有父子关系:/u01/app/grid 和 /u01/app/grid/dbhome_1 这种组合绝对禁止
  • 验证方法:执行 ls -ld $GRID_HOME $ORACLE_HOME,确认输出中用户/组名完全匹配,且没有软链接指向对方的目录

环境变量必须严格分隔,PATH 和 ORACLE_BASE 不能交叉污染

安装器在后台会逐个比对每个用户的 shell 环境。即使 grid 用户的 PATH 中不小心混入了 oracle 的 $ORACLE_HOME/bin,也足以导致 root.sh 校验失败。

  • grid 用户执行:echo $PATH | grep -v "dbhome",确保没有任何 oracle 用户的 bin 路径
  • oracle 用户执行:echo $ORACLE_BASE,必须是独立路径(例如 /u01/app/oracle),绝不能是 /u01/app/19.3.0/grid 或其子路径
  • 每个用户的 .bash_profile 单独维护:grid 只设置 GRID_HOME 和 ORACLE_BASE(可以与 oracle 共用同一个 ORACLE_BASE);oracle 只设置自己的 ORACLE_HOME 和相同的 ORACLE_BASE
  • ORACLE_BASE 可以相同,但必须是真实存在的目录,不能是软链接到对方 home 下的

root.sh 执行前必须清理 grid 用户残留文件

root.sh 并非简单修改权限就完事。它会扫描 $GRID_HOME 下 27 个以上的固定路径节点,逐一校验属主、权限、SELinux 上下文,甚至文件创建时间戳。只要有一处不匹配,就会立即中断。

  • 手动清理四类残留文件:.oracle 隐藏目录、installActions*.log、cfgtoollogs(即使里面是空的)、以及非 grid 用户创建的临时文件
  • 特别提醒:cfgtoollogs 目录权限必须是 775,不是 755;.oracle 必须由 grid 创建且属主正确
  • 建议在重跑之前执行:rm -rf $GRID_HOME/.oracle $GRID_HOME/installActions*.log $GRID_HOME/cfgtoollogs,然后重新解压 GI 介质

CVU 报 PRVG-11250 别当错误处理

这个提示看起来吓人,但并非权限问题。它是 CVU 主动跳过了需要 root 权限的检查项,例如 RPM 数据库完整性校验。它出现在日志中,但不影响安装流程。

  • 看到 INFORMATION PRVG-11250 可以放心跳过,不必因此切 root 去跑整个 runcluvfy.sh
  • 如果想消除该提示,可以在命令末尾加 -method root,但仅限于调试场景,生产环境不建议使用
  • 真正需要关注的是 PRVF-7532、PRVE-0405、INS-40915 这类带 ERROR 关键字的条目

这里最容易被忽略的是:路径隔离和环境变量污染这两项,在安装日志中往往不会直接报错,而是表现为静默退出,或者 root.sh 跑到一半忽然中断,只留下一句 "permission denied"。因此,必须逐节点、逐用户、逐路径地人工验证,不能依赖自动同步,也不能想当然地假设所有节点配置一致。