频繁驱逐是cssd判定任一关键心跳路径(网络、磁盘或本地)在misscount窗口内持续不可达所致,根因多为私网crc错误、voting disk i/o延迟或ocssd进程卡死;调misscount仅延长容忍时间,不解决底层抖动。
频繁驱逐不是心跳丢包本身导致的,而是 cssd 综合判定某条关键心跳路径(网络、磁盘或本地)在 misscount 时间窗口内持续不可达后触发的强制隔离。调 misscount 只是延长容忍时间,不解决底层抖动源——90% 的案例根因在私网 crc 错误、voting disk i/o 延迟或 ocssd.bin 进程卡死。
查 LMON 日志确认驱逐是否由实例级异常引发
lmon 是负责实例成员资格仲裁的核心后台进程,它的 trace 文件会明确记录驱逐动因,比 alert.log 更早、更直接。
- 先定位被驱逐节点的
lmontrace 路径:/oracle/app/diag/rdbms/<db_name>/<instance_name>/trace/<instance_name>_lmon_<pid>.trc</pid></instance_name></instance_name></db_name> - 搜索关键字:
ORA-29740、evicted by instance、inconsistent instance membership - 若 trace 中出现
IPC Receiver dump detected或大量minact-scn: useg scan erroring out,说明实例内部已严重卡顿,LMON 主动放弃协调,此时驱逐是结果而非原因——需排查 SGA 压力、_lm_tickets是否过小(SGA >100GB 时建议设为 5000)或共享内存参数不足
从 CSSD 日志区分真实驱逐与误报心跳丢失
ocssd.log 里高频出现 missed heartbeat from node X 不等于节点已被驱逐;真正驱逐前必有 node eviction initiated 或 Eviction initiated for node X 标记,且后续紧跟着 rebooting node X。
- 检查位置:
$GRID_HOME/log/<hostname>/cssd/ocssd.log</hostname> - 关键判断点:连续丢失
disk heartbeats(如日志中出现Lost 2 disk heartbeats)比单纯网络丢包更危险,说明 voting disk I/O 已超时,可能源于 ASM 磁盘组 IO 饱和(iostat -x 1查%util > 95或await > 50ms) - 若
missed checkins同时出现在网络和磁盘路径,但node eviction initiated滞后很久才出现,大概率是ocssd.bin自身卡住(如 CPU 占满、OOM Killer 杀掉进程),需结合dmesg -T | grep -i kill和ps -ef | grep ocssd.bin验证
安全调整 misscount 与 disktimeout 的实操约束
misscount 和 disktimeout 必须同步调,且满足 disktimeout > misscount,否则磁盘心跳永远来不及响应,节点必然被误驱逐。
- 查看当前值:
crsctl get css misscount、crsctl get css disktimeout - 生产环境推荐组合(虚拟化或跨机架部署):
misscount = 60、disktimeout = 240;若原值为默认(30/200),必须先设disktimeout = 240,再设misscount = 60,顺序不能反 - 修改后必须在所有节点执行
crsctl stop crs && crsctl start crs重启集群栈,且所有节点值必须完全一致,否则 CRS 启动失败 - 切勿在业务高峰期操作;修改后至少观察 48 小时,重点盯
ocssd.log中是否仍有evicting node或反复rebooting node
为什么调了 misscount 还是被驱逐?盯这三类硬故障
调大 misscount 只是买时间,不是治病。如果驱逐仍在发生,说明底层抖动已突破新阈值——必须立刻排查:
- 私网物理层:用
ethtool -S <private_if></private_if>查rx_crc_errors,非零即表明网线/光模块/交换机端口存在物理损坏,换线是最有效解 - voting disk 所在 ASM 磁盘组 IO:
iostat -x 1持续监控,若await稳定 >50ms 或%util长期 >95%,说明存储链路或阵列已瓶颈,需优化 ASM AU 大小、检查多路径状态(multipath -ll)、或迁移 voting disk 到低负载 LUN -
ocssd.bin进程健康:用top -p $(pgrep ocssd)观察 CPU 和 RES 内存占用,若 RES 持续增长或 CPU 占满,配合strace -p $(pgrep ocssd)看是否卡在write()或epoll_wait(),指向内核调度或 I/O 子系统异常
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











