Oracle RAC(Real Application Clusters)安装过程繁琐,涉及操作系统参数、网络配置、存储映射、Grid Infrastructure等多个层面。很多情况下安装脚本执行完毕并不代表集群已经完全健康,一些隐患比如节点时间不同步、某个网卡丢包、ASM磁盘权限不一致等,可能要等到业务运行时才暴露出来。Oracle官方提供了Cluster Verification Utility工具,也就是常说的cluvfy命令,它可以在安装后对集群做一次全面体检,把问题提前揪出来。本文详细介绍cluvfy comp系列子命令的用法和输出解读。

cluvfy工具的基本用法和执行入口
cluvfy工具位于Grid Infrastructure的home目录下的bin目录中,例如/u01/app/19.0.0/grid/bin/cluvfy。执行时建议使用grid用户,并确保环境变量ORACLE_HOME指向Grid Home。命令的基本语法是cluvfy comp 组件名 -n 节点列表,也可以用cluvfy stage -post crsinst执行一个完整的安装后验证阶段。
需要注意,不同版本支持的组件略有差异,可以通过cluvfy comp -list查看当前版本支持的所有检查组件。常用的组件包括nodecon(节点连通性)、nodeapp(节点应用配置)、clumgr(集群管理器)、crs(CRS堆栈完整性)、syscrq(系统要求)、admprv(管理权限)、peer(节点间配置一致性)、gate(网关时钟同步)等。19c版本还增加了对GIMR和QoS的检查支持。
# 查看所有可用的检查组件 su - grid cd $ORACLE_HOME/bin ./cluvfy comp -list # 对所有节点执行节点连通性检查 ./cluvfy comp nodecon -n rac1,rac2 -verbose
执行时加上-verbose参数可以看到每一项检查的明细,排查问题时这个参数非常关键,否则只会看到PASS或FAIL的汇总结果,无法定位具体原因。
核心检查项逐一验证
节点连通性检查:nodecon
nodecon组件检查节点之间的网络连通性,包括公共网络、私有网络(集群互连)的连通性,并验证每个节点上网卡与子网的映射关系是否一致。这是RAC最基础也最容易出问题的检查项。私有网络丢包或者MTU不匹配,轻则导致节点间通信延迟增大,重则直接引发节点驱逐。
./cluvfy comp nodecon -n rac1,rac2 -verbose
输出中重点关注每一对节点之间的连通性测试结果,以及集群互连使用的接口是否为预期的私网网卡。如果发现互连流量走了公网,需要检查集群中interconnect的配置,必要时通过oifcfg命令修正网卡类型定义。
CRS完整性检查:crs
crs组件验证整个Cluster Ready Services堆栈的完整性,检查CSSD、CRSD、EVMD等关键守护进程在所有节点上的运行状态,同时验证 voting disk 和 OCR 的可访问性。这是安装后必做的一项检查。
./cluvfy comp crs -n rac1,rac2 -verbose
如果该项检查失败,通常说明某个节点的集群服务没有正常启动。可以先用crsctl check crs确认各节点守护进程状态,再用crsctl stat res -t查看资源整体情况,逐层排查。
节点一致性检查:peer
peer组件是比较容易被忽视但非常实用的检查,它对比多个节点之间的系统配置是否一致,包括内核参数、内存大小、CPU数量、操作系统版本、软件包、用户和组、时间偏移等。RAC要求各节点配置尽量对称,如果某个节点缺了某个rpm包或者内核参数设置不同,在高并发场景下可能出现难以解释的性能差异。
./cluvfy comp peer -n rac1,rac2 -orainv oinstall -osdba asmadmin -verbose
执行时需要通过-orainv和-osdba指定inventory组和ASM管理组,否则检查会报权限相关的错误。输出结果会以对比表格形式展示两个节点各项配置的值,任何不一致的条目都会单独标注出来,按照提示逐项修复即可。
系统要求检查:syscrq
syscrq检查各节点是否满足集群运行的系统要求,例如内核参数(shmmax、shmmall、sem、net.core相关参数)、软件包依赖、网络带宽要求等。很多人安装时是按文档手动配置的,时间一久容易漏掉一两项,这个命令可以帮你做一次复核。
./cluvfy comp syscrq -n rac1,rac2 -verbose
检查失败时输出会明确指出是哪个内核参数不达标、期望值和实际值各是多少,直接修改/etc/sysctl.conf并执行sysctl -p生效后重新检查即可。
输出结果解读与常见故障处理
cluvfy的输出分为三个层级:PASS表示检查通过,FAIL表示存在必须修复的问题,WARNING表示非阻断性警告。WARNING不一定会导致集群故障,但建议逐条评估。例如时间同步的WARNING,如果使用的是Chrony而cluvfy用的是NTP的检测逻辑,可能会出现误报,这种情况可以用cluvfy comp clocksync做针对性检查确认。
常见的FAIL原因有几类:一是用户等效性(SSH互信)失败,表现为远程节点命令无法执行,重新配置grid用户的ssh-userequivalence即可;二是时间偏移超过阈值,检查NTP或Chrony服务状态;三是ASM磁盘可见性问题,某个节点看不到共享盘,需要排查多路径软件配置和磁盘权限;四是OCR或voting disk的多数票设备异常,这属于严重问题,必须立即处理。
建议把cluvfy检查纳入RAC交付的标准流程,在安装完成后、打补丁之后、以及定期巡检中各执行一轮核心检查项,并将输出存档。命令本身是只读操作,不会对集群产生副作用,可以放心在任何时间点执行。养成这个习惯后,很多潜在故障可以在爆发前被发现,集群运维的主动性会明显提升。
Oracle RACcluvfy comp集群验证修改时间:2026-09-05 07:48:35