运行 runcluvfy.sh 前必须满足4个前提条件:grid用户对所有节点/tmp有读写权限;各节点时间偏差≤1s;/etc/hosts包含完整一致的public、private、VIP、SCAN四类地址;grid用户已配置节点间免密SSH。
运行 runcluvfy.sh 前必须确认的 4 个前提条件
不满足任意一条,runcluvfy.sh 会直接报错退出,不是跳过、不是警告,是中断。常见现象是卡在 verifying user equivalence 或抛出 prvf-9802: failed to scan the network。
-
grid用户需对所有节点的/tmp有读写权限(不是root,也不是oracle) - 所有节点时间偏差必须 ≤ 1s(
ntpq -p看offset,别只看系统时间是否同步) - 所有节点的
/etc/hosts必须包含完整且一致的 public、private、VIP、SCAN 四类地址条目(顺序无关,但缺一不可) -
grid用户在各节点间必须已配置免密 SSH(ssh node1 date和ssh node2 date都不能输密码,且不能触发首次连接提示)
runcluvfy.sh stage -pre crsinst 的真实作用范围
这个命令不是“装 Grid 前的万能体检”,它只校验 RAC 启动依赖的最小集合:网络连通性、存储可见性、内核参数、用户资源限制、时间同步、SSH 等。它不检查 ASM 磁盘权限、OCR/Voting Disk 路径是否存在、或是否已被其他集群占用。
- 若你用的是 udev 绑定磁盘,
runcluvfy.sh不验证OWNER/GROUP是否为grid:asmadmin,只查设备文件能否被grid用户ls -l到 - 若 OCR 存在但属主是
root,它不会报错;但后续root.sh会失败并留一堆残留 - 它默认不扫描 NFS 存储(哪怕你计划用 NFS 做 OCR),除非显式加
-nfs参数 - 输出里的
PASS不代表一定能建集群,只是“没发现当前已知硬伤”
遇到 PRVF-5636: The NTP daemon is not running 别急着启 ntpd
Oracle 12c RAC 官方明确支持 chronyd,但 runcluvfy.sh 默认只认 ntpd 进程名。强行启 ntpd 可能和已有 chronyd 冲突,导致时间漂移更大。
- 先确认实际服务:
systemctl status chronyd或ps -ef | grep chrony - 若
chronyd正常运行且已同步(chronyc tracking显示Leap status: Normal),可跳过该检查:runcluvfy.sh ... -fixup -verbose会自动忽略 - 或者临时骗过检查:
ln -s /usr/bin/chronyd /usr/sbin/ntpd(仅限预检,安装后删掉) - 注意:RHEL 7+ 默认禁用
ntpd,硬启可能失败或被 systemd 拦截
检查结果里出现 WARNING 但没 ERROR,能继续安装吗?
能,但得看哪类 WARNING。有些是设计如此,有些是埋雷信号。
-
PRVF-5431: DHCP-assigned IP address found→ 必须改,RAC 不允许任何节点用 DHCP -
PRVF-5645: Node connectivity passed for subnet→ 实际是 INFO,不是 WARNING,可忽略 -
PRVF-5412: Time drift on node X is Y ms→ 若 Y > 1000ms,虽标 WARNING,但root.sh会拒绝执行 -
PRVF-5436: DNS response time is high→ SCAN 解析慢会导致集群启动超时,建议优化 DNS 或加 hosts 条目
真正麻烦的是那些没报错、也没警告,但磁盘路径权限不对或多路径 alias 不一致的情况——runcluvfy.sh 根本不扫这些,等 root.sh 执行到 80% 才崩,回退成本极高。










