0

0

如何向现有RAC集群添加新节点_addnode.sh脚本与Grid扩展步骤

P粉602998670

P粉602998670

发布时间:2026-03-13 17:36:33

|

363人浏览过

|

来源于php中文网

原创

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 lsdgORA-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 配置未覆盖新节点。

Rose.ai
Rose.ai

一个云数据平台,帮助用户发现、可视化数据

下载

现象是 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 -tora.ocrora.votingfile 是否 online;offline 则说明磁盘路径、权限或 ASM 状态有问题,不是 CRS 本身坏了

最易被忽略的是:新节点的 /etc/hosts 里不能有重复的 public IP 或 SCAN IP 条目,哪怕只是注释掉的旧记录,也可能干扰 GNS 注册和 OCR 通信。改完 hosts 务必 systemctl restart network(或对应网络服务)再验证。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1948

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

658

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2401

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

47

2026.01.19

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

443

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

605

2023.08.10

flex教程
flex教程

php中文网为大家带来了flex教程合集,Flex是采用Flex布局的元素,称为Flex容器(flex container),简称"容器",它的所有子元素自动成为容器成员,有三个核心概念: flex项,需要布局的元素;flex容器,其包含flex项;排列方向,这决定了flex项的布局方向。php中文网还为大家带来flex的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

371

2023.06.14

oracle清空表数据
oracle清空表数据

当表中的数据不需要时,则应该删除该数据并释放所占用的空间。本专题为大家提供oracle清空表数据的相关文章,帮助大家解决该问题。

271

2023.08.16

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号