最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
为什么Oracle RAC不建议随意修改misscount
时间:2026-08-08 13:21:55 编辑:袖梨 来源:一聚教程网
misscount设太大反而加剧故障影响,因节点卡死时集群会持续等待永不抵达的心跳包,导致资源状态不确定、客户端超时、SCN同步异常;disktimeout必须严格大于misscount,否则存储抖动将直接触发误驱逐;该参数为集群级配置,所有节点值必须一致,否则CRS启动失败;根本解决需修复私网CRC错误、voting disk I/O延迟或ocssd进程僵死等底层问题。
misscount设太大,节点卡死时反而更难被驱逐
这不是“容忍时间变长”那么简单。当节点因I/O卡顿、CPU打满或ocssd.bin进程僵死而无法发心跳时,misscount只是在等——等一个永远不会来的包。如果设成120秒,集群会持续认为该节点“可能还活着”,期间所有资源(VIP、ASM、DB)都处于不确定状态,客户端连接持续超时,LMS进程在后台反复重试锁请求,甚至引发跨节点SCN同步异常。真实案例里,有客户把misscount调到60,结果一次存储延迟导致节点挂了45秒,VIP没漂移,但归档日志写入中断,DG备库延迟飙升到2小时。
disktimeout必须严格大于misscount,否则磁盘心跳永远失效
Oracle CSS要求disktimeout >misscount,否则磁盘心跳路径(voting disk I/O)的响应窗口比网络心跳还短。比如misscount=30,disktimeout=25,那只要voting disk I/O延迟超过25秒,CSS就先判定磁盘心跳失败,立刻驱逐节点——哪怕网络完全正常。这等于把故障面从“网络单点”扩大到“存储抖动即宕机”。查当前值用crsctl get css misscount和crsctl get css disktimeout,改完必须全量重启:crsctl stop crs && crsctl start crs。
所有节点值必须一致,不一致会导致集群起不来
misscount是集群级参数,不是单节点配置。任意一个节点值和其他节点不同,CRS启动时就会校验失败,报错CRS-4678: Parameter mismatch in CSS configuration,整个集群卡在INIT状态。实操中常见错误是只改了一个节点,忘了同步其他节点;或者用crsctl set css misscount后没在所有节点执行crsctl stop crs && crsctl start crs,导致部分节点仍读旧值。验证方式:在每个节点分别执行crsctl get css misscount,输出必须完全相同。
真正要调的是底层抖动,不是misscount本身
频繁驱逐90%不是misscount太小,而是私网CRC错误、voting disk I/O延迟高(iostat -x 1看%util > 95或await > 50ms)、或ocssd.bin被OOM Killer干掉。调大misscount只是掩盖症状:比如把misscount从30改成60,问题没解决,只是把“30秒内驱逐”拖到60秒,期间业务受损时间翻倍。正确做法是先查$GRID_HOME/log/,确认是否真有Lost 2 disk heartbeats或node eviction initiated,再针对性修网络、换存储链路、或调大vm.swappiness防OOM。
相关文章
- 原神少女哥伦比娅值得抽吗 新角色哥伦比娅问题解答 08-08
- 明日方舟:终末地情报档案收集攻略 情报档案收集分享 08-08
- 原神6.3版本月之四角色抽取攻略 少女抽取优势建议 08-08
- 无限暖暖若生命如诗2.1版本 巨兽养成计划玩法介绍 08-08
- 七猫小说下载到本地的怎么找 七猫小说下载保存路径介绍 08-08
- 崩坏:星穹铁道货币战争攻略 货币战争成就获得攻略 08-08