Oracle 11g RAC双网卡绑定失效故障修复
bond 接口未生效?别急着排查 Oracle,先确认 Linux 网络栈是否识别了聚合接口。 很多运维人员第一时间会查看 RAC 日志,但问题的根源往往在更底层——bonding 模块未被加载、配置文件存在错误、slave 网卡未能成功加入绑定,或者物理链路本身不稳定。无论哪种原因,最终表现都一样:RAC 私网实际走的是单路径,心跳一旦丢失,集群就会产生异常。
bond 接口未能启动,或者 ifconfig 显示 bond0 已分配 IP 但 ethtool bond0 报 “No such device”,基本可以断定绑定未生效——这并非 Oracle 层面的问题,需要首先让 Linux 网络栈识别这个聚合接口。
确认 bond 设备是否被内核正常识别
许多故障的根源在于 modprobe bonding 未执行,或 /etc/modprobe.d/bonding.conf 缺失/配置错误。在 rhel/centos 5/6 环境下,必须显式加载模块:
lsmod | grep bonding—— 若无输出,表明模块未被加载modprobe bonding mode=1 miimon=100(主备模式)临时启用,接着查看cat /proc/net/bonding/bond0验证状态- 若报错 “Operation not supported”,说明网卡驱动不支持当前
mode,可改用mode=0或mode=4(LACP 模式需交换机配合配置) /etc/sysconfig/network-scripts/ifcfg-bond0中必须包含BONDING_OPTS="mode=1 miimon=100",同时确保DEVICE=bond0、BOOTPROTO=none、ONBOOT=yes
检查 slave 网卡是否被正确纳入 bond
常见现象:bond0 显示 up,但 cat /proc/net/bonding/bond0 输出 “No slaves”,或只列出了一个网卡。这会导致 RAC 私网流量实际仅通过单一路径传输,一旦该物理端口出现抖动,心跳就会丢失。
- 确保每个 slave 接口(如
eth0、eth1)的配置文件中包含SLAVE=yes和MASTER=bond0 - 执行
ifdown eth0 && ifup eth0后仍无法加入 bond?检查dmesg | tail -20是否存在 “bond0: Adding slave eth0 failed” 类提示——通常是速度或双工模式不匹配所致 - 强制统一双工设置:在 slave 接口配置中增加
ETHTOOL_OPTS="speed 1000 duplex full autoneg off",避免协商失败导致 bond 初始化异常
验证私网链路是否真正具备冗余能力
RAC 对私网延迟和稳定性要求极高,仅仅依靠 ping 通是不够的。必须确认心跳包实际走的是 bond 路径,且无丢包、无抖动。
- 使用
tcpdump -i bond0 -c 100 'host(CSS 心跳默认端口)验证流量确实经过 bond0 收发and port 12560' - 运行
ethtool -S bond0查看rx_packets和tx_packets是否持续增长;若某个 slave 的rx_missed_errors非零,说明接收队列溢出,需要调整net.core.netdev_max_backlog - 执行
ping -c 1000 -i 0.05 <私网IP>,重点关注 mdev(标准差),超过 0.5ms 即需警惕;RAC 要求 95% 的包延迟 ≤ 2ms
OCR/Voting Disk 访问异常时优先排查 bond 状态
当 crsctl check cluster -all 报 CRS-4535,但节点本身可正常 SSH 登录,大概率是 OCR 所在存储路径依赖的私网 bond 不稳定,导致 CSSD 进程无法完成集群成员资格仲裁。
- 不要直接重启 CRS:先执行
tail -f /oracle/11.2.0/grid/log/,搜索 “IPC timeout” 或 “missed heartbeat” 关键词/cssd/ocssd.log - 若日志反复出现 “clssnmSendingThread: sent 5 status msgs”,紧接着 “clssgmHandleMasterMemberExit”,说明私网通信已断续,此时强行
crsctl start crs可能触发误驱逐 - 临时恢复手段:在故障节点上执行
ifconfig bond0 down && ifconfig bond0 up,观察 ocssd.log 是否停止报错;若恢复,说明 bond 驱动状态异常,需要重载 bonding 模块
实际生产环境中,bond 配置正确只是第一步。RAC 私网的稳定性最终取决于物理链路层——交换机端口双工是否强制为全双工、网线是否存在接触不良、甚至网卡固件版本是否过旧。这些细节不会直接出现在 Oracle 日志中,却会导致 ocwd.log 中密集出现 CRS-1611,而你翻阅所有 srvctl 命令都找不到原因。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
如何配置Oracle可恢复空间分配以防止任务中断
启用可恢复空间分配需将RESUMABLE_TIMEOUT设为非零值(如3600秒),RAC环境需逐节点单独设置。该机制仅对ORA-01536等空间类错误生效,挂起期间事务锁定状态不变,超时自动中止。会话级启用需显式指定timeout和name,否则可能无效。
Redis集群升级配置文件不兼容 对照新旧参数手册转换
升级至Redis7 0配置不兼容须知:主从复制命令由slaveof改为replicaof否则报错;集群全量覆盖参数默认开启需改为关闭;TCP连接积压参数需与系统内核一致;访问控制列表默认用户无管理权限需授权;节点配置文件禁止手动编辑,应通过命令管理。
Oracle 19c补丁冲突问题修复方法详细步骤使用opatch apply命令
Oracle19c补丁冲突因新旧补丁修复重叠或文件冲突所致。需先确认OPatch版本、inventory一致性及执行用户正确性,再通过opatchprereq定位具体冲突。真实冲突可回退旧补丁或改用完整RU流程,RAC环境需逐节点检查inventory。
MySQL修改权限后为何必须执行FLUSH PRIVILEGES?
MySQL修改权限后是否执行FLUSHPRIVILEGES取决于修改方式。通过GRANT或ALTERUSER标准命令自动同步,无需手动刷新;直接UPDATEmysql user表则必须执行以刷新内存缓存。已存在连接不重载,需注意host匹配、认证插件兼容性及RELOAD权限。
SQL嵌套查询在电商订单报表中的应用实践
SQL嵌套查询在电商订单报表中适用于条件筛选,如快速圈定用户范围,但不适合替代关联分析。使用时需注意子查询空值导致IN失效、必须返回单列、MySQL5 7不支持LATERAL及CTE。聚合分析应依赖聚合加过滤,深层嵌套可用派生表或CTE分步处理。
- 日榜
- 周榜
- 月榜
相关攻略
2026-07-08 07:04
2026-07-08 07:03
2026-07-08 07:03
2026-07-08 07:03
2026-07-08 07:03
2026-07-08 07:03
2026-07-08 07:02
2026-07-08 07:02
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

