crsctl query crs activeversion 返回集群当前实际运行的 Oracle Clusterware 版本,即所有节点协商一致启用的“活”版本,需由 grid 用户执行,输出中方括号内如 [12.2.0.1.0] 为真实有效版本号。
直接查集群当前运行的 CRS 版本用 crsctl query crs activeversion
这个命令返回的是整个 rac 集群正在实际运行的 oracle clusterware 版本,不是安装包版本,也不是某个节点“能跑”的最高版本,而是所有节点协商后一致启用的那个版本。它最权威,也最该优先看。
-
crsctl query crs activeversion必须由grid用户执行(非 root、非 oracle),否则报权限错或找不到命令 - 输出形如
Oracle Clusterware active version on the cluster is [12.2.0.1.0]—— 方括号里的才是真实有效版本号,别漏掉点号和末尾的.0 - 如果集群部分节点没起来,或 OCR/Voting Disk 不可用,该命令可能报
CRS-4639: Could not contact Cluster Synchronization Services,此时先别急着查版本,得先解决集群通信问题
crsctl query crs softwareversion 和 releaseversion 的区别在哪
这三个版本命令常被混用,但含义不同:activeversion 是“活的”,softwareversion 是“装的”,releaseversion 是“编译的”。三者不一致,往往意味着升级没完成或节点状态异常。
-
crsctl query crs softwareversion查当前节点已成功启动的 CRS 软件版本(即本地$GRID_HOME实际加载的版本);加节点名可查远程节点,比如crsctl query crs softwareversion jydb2 -
crsctl query crs releaseversion查的是二进制文件头里硬编码的版本信息(类似 build timestamp),反映安装介质原始版本,一般比softwareversion更“静态” - 若
activeversion≠softwareversion(尤其跨大版本,如 12.1 → 12.2),说明集群尚未完成 rolling upgrade 的最后一步:crsctl stop crs && crsctl start crs在所有节点执行完毕
为什么有时查不到版本?常见卡点和绕过方式
不是命令写错,而是底层服务没就位。版本命令依赖 CSSD、CRSD、EVM 等进程正常运行,任一环节断链就会失败。
- 执行
crsctl check crs看基础组件是否在线 —— 若报CRS-4638: Oracle High Availability Services is offline,说明ohasd没起来,先检查/etc/init.d/ohasd或 systemd unit 状态 - OCR 损坏或不可访问时,
activeversion会失败,但softwareversion仍可查(它不依赖 OCR) - 节点处于 “pending” 或 “intermediate” 状态(如刚 reboot 未完全 join 集群),
crsctl query crs activeversion可能超时;此时改用crsctl check cluster -all确认各节点连通性
别只信一个命令:三个版本要交叉验证
生产环境排查升级或故障时,单看 activeversion 容易误判。比如你刚打完 RU 补丁,softwareversion 已升到 12.2.0.1.25,但 activeversion 还是 12.2.0.1.0 —— 说明补丁已部署,但还没生效,必须重启 CRS 才行。
- 日常巡检建议一次性执行三句:
crsctl query crs activeversion、crsctl query crs softwareversion、crsctl query crs releaseversion - 所有节点结果应一致;若有差异,重点盯
activeversion最低的那个节点,它往往是升级瓶颈或故障源 - 特别注意:12cR2(12.2)起引入了 Flex ASM 和 GIMR,
activeversion显示的仍是 Clusterware 主版本,但 GI 内部组件可能有独立小版本,需结合crsctl query has releaseversion单独确认
[12.2.0.1.0] 时,真正该问的是:这个 .0 是刚打完补丁没重启,还是 OCR 里记录的旧配置没刷新,又或者某个节点根本没跟上集群心跳。

















