addnode.sh执行失败的根本原因是新节点Grid Infrastructure未安装或未启动;需先静默安装GI、配置OCR路径、确保网络/SSH/内核参数就绪,并通过cluvfy预检,再运行addnode.sh。
addnode.sh 执行失败:找不到 OCR 或 ASM 实例不可用
根本原因通常是新节点上 grid infrastructure 未安装或未启动,addnode.sh 依赖本地运行的 ohasd 和能连上集群 ocr 的 crsd。它不是“远程加节点”的脚本,而是要求目标节点已预装 gi(至少到 root.sh 前置阶段),且网络、时间、ssh 互信、uid/gid、内核参数等全部就绪。
常见错误现象包括:CRS-4000: Command Add failed, or completed with errors.、ORA-15032: not all alterations performed、或直接报 Cannot communicate with CRS daemon。
- 必须先在新节点手动运行
gridSetup.sh -silent -executeConfigTools -responseFile ...完成 GI 的静默安装(不执行root.sh) - 确保
/etc/oracle/ocr.loc存在且指向共享存储(如 ASM diskgroup 或 NFS),否则addnode.sh会因无法定位 OCR 而退出 - 检查
olsnodes -n在原节点是否能看到新节点名和 IP 映射;若无,说明集群 DNS 或 GNS 配置未同步,addnode.sh会卡在发现阶段 - 不要跳过
cluvfy stage -pre nodeadd—— 它比addnode.sh自带的检查更严格,能提前暴露 udev 规则缺失、ASM filter driver 未加载等问题
addnode.sh 后 ASM 实例没起来,diskgroup 挂载失败
这是因为 addnode.sh 只负责添加节点配置和启动 CRS 栈,但 ASM 实例默认不会自动在新节点启动,尤其当使用 Flex ASM 或 ASM 托管的 OCR/Voting Disk 时,需要显式启用。
典型表现是 crsctl stat res -t | grep asm 显示 OFFLINE,或 asmcmd lsdg 报 ORA-15000: command not allowed from client。
- 确认 ASM 配置模式:
crsctl query css votedisk输出若含ASM,说明 voting disk 在 ASM 上,此时必须先让 ASM 实例在新节点 up 起来才能挂载 diskgroup - 手动启动 ASM 实例:
srvctl start asm -n <new_node_name>;若失败,看$ORACLE_HOME/log/<node>/agent/crsd/orarootagent_root/orarootagent_root.log里是否提示磁盘路径权限不对或 ASM filter driver 未启用 - Flex ASM 场景下,新节点默认不托管 ASM 实例,需运行
srvctl add asm -n <new_node_name>再启动;否则srvctl config asm里看不到该节点 - 检查
/dev/asm*设备是否可见 —— RHEL8+ 默认禁用 udev,asmfilterdriver必须启用并加载,否则 ASM 无法识别磁盘
节点加入后 SCAN VIP 不漂移,客户端连不上新实例
SCAN VIP 属于集群资源,由 ora.scan*.vip 管理,它本身不绑定物理网卡,而依赖底层网络接口状态和 GNS 解析。新节点上线后 SCAN VIP 不自动分配,往往不是 addnode.sh 的问题,而是 GNS 或 DNS 配置未覆盖新节点。
现象是 nslookup <scan_name> 仍只返回老 IP,或 srvctl status scan 显示 SCAN 名称解析正常但 VIP 资源状态为 INTERMEDIATE。
- 确认 GNS 是否启用:
crsctl query gns;若为disabled,则 SCAN VIP 分配完全依赖外部 DNS,必须手动把新节点 IP 加入 DNS A 记录并刷新 TTL - GNS 启用时,检查新节点的
/etc/resolv.conf是否指向 GNS VIP(而非公网 DNS),否则nslookup会绕过 GNS - 强制刷新 SCAN 缓存:
srvctl modify scan -n <scan_name>(仅修改名称触发重注册),或重启 GNS:srvctl stop gns; srvctl start gns - 别忽略防火墙:新节点的 1521(监听器)、53(GNS)、1251(SCAN VIP VIP)端口必须放行,否则 VIP 资源无法 online
Grid 扩展后 OCR 备份失效或 crsctl check crs 报告异常
OCR 自动备份依赖集群中所有节点都能访问 OCR 存储位置(ASM diskgroup 或文件系统路径),扩展节点后若备份路径权限、ASM diskgroup mount 状态或备份目录空间不足,会导致 ocrconfig -showbackup 显示旧备份、甚至 crsctl check crs 提示 CRS-4639: Could not contact Oracle High Availability Services。
- 检查 OCR 备份路径:
ocrconfig -showbackup输出的路径是否在所有节点都可写;若用 ASM,确认该 diskgroup 在新节点已 mount(asmcmd lsdg查状态) - OCR 自动备份默认每天一次,但新节点加入后首次 backup 会在下一个整点触发 —— 不要立刻查
-showbackup,等 60 分钟再确认 - 如果 OCR 在 ASM 上,且新节点 ASM 实例刚启动,可能需手动触发一次 backup:
ocrconfig -manualbackup,验证是否成功 -
crsctl check crs报错常是表象,优先看crsctl stat res -t里ora.ocr和ora.votingfile是否 online;offline 则说明磁盘路径、权限或 ASM 状态有问题,不是 CRS 本身坏了
最易被忽略的是:新节点的 /etc/hosts 里不能有重复的 public IP 或 SCAN IP 条目,哪怕只是注释掉的旧记录,也可能干扰 GNS 注册和 OCR 通信。改完 hosts 务必 systemctl restart network(或对应网络服务)再验证。










