oracle rac实例资源必须依赖rac框架资源组,否则sunw.oracle_rac_server将卡在offline状态;需配置rg_affinities和resource_dependencies显式绑定,确保框架、qfs存储、vip资源按序就绪并同组运行。

Oracle RAC实例资源必须依赖RAC框架资源组
不配置这个依赖,SUNW.oracle_rac_server 资源根本无法启动——它会卡在 OFFLINE 状态,日志里反复报 dependency not satisfied。RAC实例不是独立运行的进程,它必须等底层集群框架(SUNW.rac_framework)就绪后才能加载。
实操要点:
- 用
scrgadm -a -g rac-server-rg -y RG_AFFINITIES=++rac-framework-rg创建强正关联,确保资源组只在框架资源组在线时才尝试上线 - 用
scrgadm -a -j rac-server-rs -y Resource_dependencies=rac-framework-rs显式绑定资源级依赖,不能只靠资源组关联 -
rac-framework-rg名称必须和实际创建的一致(scsetup默认生成的就是这个名,别手改) - 检查依赖是否生效:
clresource show -v rac-server-rs,确认输出里有Resource_dependencies: rac-framework-rs
共享存储资源(如QFS)必须前置启动
如果用了 Sun StorEdge QFS,SUNW.oracle_rac_server 启动前必须先挂载好 ASM 或数据库文件所在的 QFS 文件系统。否则 Oracle 实例会因找不到 +DATA 磁盘组或控制文件直接崩溃,错误日志里出现 ORA-00204 或 ORA-15032。
实操要点:
- 在创建
rac-server-rg时,用-y RG_DEPENDENCIES=sqfs-rg指定依赖的 QFS 资源组(多个用逗号分隔) - QFS 资源组本身也要正确配置:包含
SUNW.qfs资源,并设置Resource_dependencies指向底层存储资源(如SUNW.qfs_device) - 不要跳过
clrs -e验证步骤:启动前执行clresource enable -n node1 rac-server-rs,观察是否自动连带启起 QFS 资源
逻辑主机名(VIP)资源要与实例资源同组或强关联
客户端通过 VIP 连接 RAC 实例,但 VIP 和实例资源如果不在同一资源组、又没做显式关联,就会出现“VIP 已上线,但实例不可达”的假高可用现象。典型表现是 tnsping 通,sqlplus /@service_name 却超时。
实操要点:
- 推荐方案:把
clreslogicalhostname和SUNW.oracle_rac_server放进同一个可伸缩资源组(scalable resource group),用clresourcegroup set -p RG_affinities=++rac-server-rg关联 - 替代方案:若必须分离,需在 VIP 资源上设
Resource_dependencies指向实例资源,且实例资源设RG_affinities反向绑定 VIP 资源组 - 关键检查点:
clresourcegroup status输出中,VIP 和实例资源必须显示为Online且在同一节点;crsctl stat res -t应显示 VIP 依赖链完整
clsetup 向导比手动命令更可靠,但不能绕过底层逻辑
clsetup 确实能自动生成资源、依赖、关联三件套,避免拼写错误或漏配。但它不会替你判断存储拓扑是否合理,也不会校验 OCR 磁盘组是否真有足够空间——这些仍得人工确认。
实操要点:
- 运行
clsetup前,先确保rac-framework-rg已online,否则向导会失败并提示framework resource group not online - 向导生成的脚本里,重点核对
RG_DEPENDENCIES和Resource_dependencies两项是否覆盖所有必需依赖(特别是 QFS 场景) - 即使用了向导,也必须手动执行
scstat -g查看资源组状态,以及clrs -v检查每个资源的依赖字段是否真实写入
Resource_dependencies,整个 RAC 实例在节点重启后就可能永远卡在 offline。











