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

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

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

6 个赞

这题应该是C

2 个赞

B和D是哪里不对呢

2 个赞
  • 不会立即重启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是对的

2 个赞

这题到底应该选什么?

2 个赞

:grin: :grin:

2 个赞

选择B、D

3 个赞

:smiley: :smiley: :smiley: :smiley:

3 个赞

最直接的后果是C. 将节点标记为服务停止状态

1 个赞

正确答案:BCD
以下是详细的分析:

  • A. 立即重启OBServer进程 :这个说法不准确。observer进程本身是否立即重启,取决于你的操作系统或集群管理工具的配置(如systemd)。如果配置了自动重启策略,进程会在意外退出后被拉起来。但使用 kill 命令本身并不会直接触发“立即重启”,重启动作是由外部监管机制完成的。
  • B. 保证除了重启节点以外的其他节点上的副本满足多数派 :这是正确 的。OceanBase使用Paxos协议保证数据一致性,当某个节点宕机后,集群会自动检测并确保剩余的副本满足多数派要求,维持集群的可用性和数据完整性。
  • C. 将节点标记为服务停止状态 :这是正确 的。OceanBase集群的RootService会进行元数据管理和集群调度。当节点掉线后,集群会将该OBServer节点标记为服务停止状态,以从路由表中移除它,不再向其分发新的请求。
  • D. 将待重启节点上的Leader全部切走 :这是正确 的。为了保证服务的连续性,当节点不可用时,其上的Leader副本会通过Paxos协议重新选举为Follower,并将Leader角色切换到其他健康的节点上,从而不影响业务的读写请求。
2 个赞

C感觉不对样的。

1 个赞

666

BCD

选择D