不能。addnode.sh 不支持真正在线加节点,执行时会短暂中断SCAN VIP等服务,且需满足GI_HOME预解压、网络互通、时间同步、OCR空间充足、集群健康等5项硬性条件。
addnode.sh 能不能直接在线加节点?
不能。oracle rac 的 addnode.sh 脚本本身不支持真正意义上的“在线”添加——它要求集群处于运行状态(即 crs 启动、已有节点正常),但执行过程中会短暂中断部分服务,且必须满足严格前置条件。很多人误以为只要数据库没停就能叫“在线”,实际它会在新节点安装 grid infrastructure 时触发 ocr/voting disk 的重发现、资源注册、asm 实例启动等动作,这些步骤会让部分资源(如 scan vip、gns、部分 asm diskgroup)短暂不可用或重新平衡。
执行 addnode.sh 前必须检查的 5 个硬性条件
漏掉任意一项都会导致脚本中途失败,甚至破坏集群稳定性:
-
GI_HOME和ORACLE_HOME在待加节点上必须已解压(但不能配置、不能运行root.sh);路径、用户、权限、组(oinstall、asmadmin、asmdba 等)须与现有节点完全一致 - 所有节点(含新节点)的 hostname、/etc/hosts 解析、DNS 配置必须双向可达,
ping -c 3 <hostname></hostname>和nslookup <hostname></hostname>必须全通 - 新节点时间必须与集群 NTP 源同步,偏差 >1s 就可能被 CRS 拒绝加入;建议先跑
ntpdate -u <ntp-server></ntp-server>再验证date - OCR 和 Voting Disk 所在 ASM diskgroup 必须有足够空间(至少预留 2GB),且处于 MOUNTED 状态;可用
crsctl query css votedisk和ocrcheck确认 - 现有集群中
crsctl check cluster -all必须全部通过,且无CRS-4639或CRS-4000类错误
addnode.sh 过程中最容易卡住的三个阶段
不是脚本挂了,而是你没看日志就干等:
- 卡在 “Copying files to remote nodes…”:通常是 SSH 免密未配全(比如 root 用户之间没互通),或新节点防火墙未放行 6200–6400 端口(GI 内部通信端口)
- 卡在 “Running root.sh on remote node…”:常见于新节点缺少
libaio、sysstat或内核参数(如kernel.sem)未生效;检查/u01/app/19.0.0/grid/cfgtoollogs/addnode/addnode.log - 卡在 “Updating OCR with node information…”:OCR 正在被其他进程锁定(比如另一个
crsctl操作正在执行),或新节点的oracle用户对 OCR 设备权限不足(需chown grid:oinstall /dev/oracleasm/disks/*)
加完节点后必须手动验证的三件事
脚本成功返回 ≠ 节点真正可用:
根据 package.json 中的 engines 字段自动检测 Node.js 版本需求,未安装 nvm 时自动安装并切换至对应版本。支持 Windows、macOS、Linux。适用于 Node.js 项目开发、版本切换和环境配置。
- 确认新节点上的
crsctl check crs返回 “CRS-4638: Oracle High Availability Services is online”;如果只显示 CSSD online 而 OHASD offline,说明root.sh未完整执行成功 - 运行
olsnodes -s -t查看状态是否为Active,类型是否为Hub(非 Flex ASM 场景下);若显示Inactive,大概率是 voting disk 未能访问,检查crsctl query css votedisk输出 - 手动在新节点启动一个测试实例(如
srvctl add database -d testdb -o $ORACLE_HOME -r PRIMARY),再srvctl start instance -i testdb1 -n newnode;别只依赖 DB 自动拉起,很多环境因 listener 名称或端口冲突导致实例无法注册
最常被忽略的是网络心跳链路验证:新节点和老节点之间必须能持续收发 UDP 包(默认使用 4.2.0.0/16 网段的私网),丢包率 >1% 就可能引发 evictions。别只信 ifconfig,用 cluvfy comp nodecon -n all -verbose 实测更可靠。










