ocssd.log 是诊断节点驱逐的首要日志,需优先检查“misscount exceeded”(私网心跳中断)或“disk timeout”(表决盘I/O失败)等关键错误,并确认时间同步、表决盘可达性及ocssd.bin崩溃信号。
看 ocssd.log 里有没有 “misscount exceeded” 或 “disk timeout”
节点被驱逐,ocssd.bin 是最终执行者,它的日志最直接。别急着翻 alert.log 或系统日志,先去 $grid_home/log/<hostname>/cssd/ocssd.log</hostname> 找关键线索。
- 如果看到
misscount exceeded、network heartbeat failure或类似提示,基本锁定是私网通信中断或延迟超标(默认misscount=30秒,即连续 30 次没收到心跳) - 如果看到
disk timeout、voting file I/O error、CRS-1606,说明磁盘心跳失败,问题出在表决盘(voting disk)的读写上,可能是 ASM 延迟、存储链路抖动、裸设备权限错,或触发了 Bug 13869978(11.2.0.3.4 之前版本高发) - 注意时间戳:必须确认日志报错时间早于节点重启时间;否则就是“后见之明”,不是真因
查网络心跳前先确认时间同步是否真实可靠
时间不同步会直接导致 CSS 认为心跳超时——哪怕网络完全正常。CTSS(Cluster Time Synchronization Service)日志里出现异常返回值,或者 ntpq -p 显示 offset > 1000ms(比如你见过的 11376 ms),就已是强信号。
- 别只改 NTP 配置:BIOS 时间也得同步,否则重启后又漂移
- 检查时间源是否指向新环境的 NTP 服务器,旧数据中心的时间源在新网络下可能不可达或响应极慢
-
crsctl check ctss返回ACTIVE: time synchronizer active才算真正生效;若为INACTIVE,CTSS 实际已退化为“观察模式”,不干预但也不校正
用 crsctl query css votedisk 和 dd if=<vote-device> of=/dev/null count=1 bs=4k</vote-device> 验证表决盘可达性
表决盘不是“配好就行”的静态配置,它每秒都在被读写。很多驱逐看似突发,实则是某块投票盘 I/O 卡顿超过 200 秒(disktimeout 默认值),CSSD 主动自毁保数据。
-
crsctl query css votedisk看路径和状态;再用ls -l核对属主是否为grid:oinstall,权限是否为640 - 若在 ASM 中,用
asmcmd lsdsk -k -G <dg_name></dg_name>确认表决盘磁盘在线且 MOUNTED;若用 ASMLib,用oracleasm querydisk /dev/sdX映射真实设备 - 用
dd if=/dev/raw/raw1 of=/dev/null count=1 bs=4k 2>&1测试裸设备读取延时——别用大块、别用of=/tmp/test,避免覆盖或误写
留意 clssscExit: CSSD signal 11 这类致命信号而非普通告警
这不是超时或重试,是 ocssd.bin 进程自己崩了,通常意味着底层缺陷:Bug 9132429(10g/11g 常见)、内核信号量冲突、HugePages 配置不当,或第三方集群件(如 Veritas VCS)与 OHASD 的兼容性问题。
- 查
/var/log/messages是否有伴随的kernel: ocssd[NNN]: segfault at ...,这是硬证据 - 检查是否启用了非 Oracle 推荐的内核参数(如
net.ipv4.tcp_tw_recycle=1在 NAT 环境下会干扰私网心跳) - 升级补丁前先验证:Oracle 官方明确标注 “Fixed in 11.2.0.4 BP27+” 或 “Includes fix for Bug 13869978” 的 patch 才值得上
真实驱逐往往发生在多个条件叠加时:私网刚好抖动 + 表决盘 I/O 小幅升高 + CTSS 失效 + 某个 Bug 被触发。单看一个日志、一个命令输出,很容易归错因。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










