修改11g rac集群名称的唯一可行方法是执行rootcrs.pl -deconfig -force -verbose清空本地gi配置,再通过gridsetup.sh重新安装并输入新集群名;直接修改配置文件或使用crsctl等命令均无效,因集群名硬编码于gpnp profile、olr及本地脚本中,且11g不支持动态更新。
olsnodes -c 查出来的集群名,是写死在 grid infrastructure 安装时生成的本地配置里的。它不是 ocr 里可改的资源,也不是靠 srvctl 或 crsctl 命令能动态更新的元数据。
修改集群名称会触发 GI 层硬编码校验失败
- 集群名被嵌入到每个节点的多个静态文件中:
$GRID_HOME/crs/install/s<em>crsconfig</em><code>hostname_env.txt、$GRID<em>HOME/crs/admin/ocrconfig</em><code>hostname.txt、GPnP profile($GRID_HOME/gpnp/<code>hostname/profiles/peer/profile.xml)、OLR(Oracle Local Registry)。 - 这些文件在 GI 安装完成后就固化,后续任何
crsctl操作(包括crsrename)在 11.2.0.4 及更早版本中根本不生效——你看到的CRS-42004: successfully set the cluster name是 12c+ 才支持的特性,11g 下该命令不存在或静默失败。 - 尝试用
cemutlo -n强制覆盖,只会让crsctl check cluster报CRS-4537: Cannot communicate with Cluster Ready Services,因为 CRS 启动时比对的是本地文件 + OCR + GPnP 三者一致性,一处不匹配就拒绝加载。
为什么不能只停 CRS + 改文件 + 重启
- 即使你手动编辑所有节点的 profile.xml 和 ocrconfig_*.txt,OCR 本身也不存储集群名字段(
ocrdump -stdout | grep -i cluster无结果),所以没有“同步 OCR”这回事。 - 更关键的是:OLR 中的集群名和 GPnP profile 是签名绑定的,手工修改会导致校验失败,
crsctl start crs直接卡在ora.gpnpd启动阶段,日志报PROC-44: Error in network address and interface operations。 - 有用户试过用
gpnpd工具导出 profile、改名、重签名再导入,但在 11.2.0.4 上会触发ORA-15018: diskgroup cannot be created,因为签名变更导致 ASM 实例无法识别本地 OLR 中记录的 voting disk 路径。
真实可行的路径只有 deconfig + reconfig
- MOS 文档 ID 1967916.1 明确指出:11g RAC 修改集群名的唯一支持方式是运行
rootcrs.pl -deconfig -force -verbose(所有节点依次执行),清空本地 GI 配置,再用gridSetup.sh重新运行图形或静默安装,过程中输入新集群名。 - 这个过程会重建 OLR、重写 GPnP profile、生成新的
s<em>crsconfig</em>*.txt,并自动把新名注册进 OCR 的底层结构(虽然不显式存字段,但通过资源命名空间隐式关联)。 - 注意:deconfig 不删 OCR、不碰 ASM 磁盘组、不格式化 voting disk,但必须确保 OCR 设备(ASM 磁盘组或裸设备)在重装前仍可访问且状态正常,否则
root.sh会因找不到 OCR 而失败。
最常被忽略的一点:改集群名不是改个变量名,而是换掉整个 GI 的身份指纹。11g 的设计决定了它没有热更新机制,强行绕过 deconfig 步骤,99% 的情况最终都会卡在 ora.crsd 启动失败,且恢复比重装还费时间。











