observer进程突然关闭后ob数据库会执行哪些操作

当突然使用KILL命令将observer进程杀掉后,Ocean Base会进行哪些操作?
A. 立即重启OBServer进程
B. 保证除了重启节点以外的其他节点上的副本满足多数派
C. 将节点标记为服务停止状态
D. 将待重启节点上的Leader全部切走

感觉BCD是对的,想知道考试中如果有这题应该怎么选

1 个赞

这题应该是C

B和D是哪里不对呢

  • 不会立即重启OBServer进程(A错误):OceanBase本身不具备自动拉起observer进程的能力,进程需要由管理员手动或通过外部监控脚本重启。
  • 会确保除该节点外其他副本满足多数派,才进行后续操作(B正确):根据Paxos协议,当节点心跳长时间丢失(超过server_permanent_offline_time,默认为86400s),Root Service会判定其为permanent_offline,并在确认其余副本构成多数派的前提下,将其从Paxos成员组中移除,并在其他节点补副本。这一机制保证了数据高可用性和一致性。节点故障的自动处理 → Root Service 对 OBServer 节点故障的处理
  • 不会直接将节点标记为“服务停止状态”(C错误)STOPPED状态通常是执行ALTER SYSTEM STOP SERVER命令后的结果。而KILL进程导致的是心跳中断,系统首先将其标记为INACTIVE状态(通过oceanbase.DBA_OB_SERVERS视图可见),而不是“服务停止”。数据库层高可用 → 隔离节点
    KILL进程这种硬故障场景下,Leader的切换依赖于租约(lease)过期机制。即当Leader所在节点失联超过lease时间(默认5秒),其他副本发起选举,新Leader产生后完成切换。这是一个被动恢复过程。D会切走

感觉 BD是对的