暂无图片
暂无图片
12
暂无图片
暂无图片
暂无图片

OceanBase节点故障自动处理

OceanBase 2022-10-24
736

RootService 高可用

在 OceanBase 集群中,RootService 提供集群的各类管理服务,RootService 服务的高可用使用如下的方式实现:RootService 服务使用 Paxos 协议实现高可用,可以通过集群配置,指定 RootService 服务副本数,RootService 的各副本基于 Paxos 协议选举 leader,leader 副本上任后为集群提供 RootService 服务。当 RootService 的当前 leader 发生故障卸任时,其他的 RootService 副本重新选举产生新的 leader,并继续提供 RootService 服务,依次实现 RootService 的高可用。RootService 的各副本不是一个单独的进程,仅是某些 OBServer 上启动的一个服务。

OBServer 状态监测

作为集群的中控服务,RootService 负责集群的 OBServer 管理,各 OBServer 通过心跳数据包(heartbeat)的方式,定期(每 2s)向 RootService 汇报自己的进程状态,RootService 通过监测 OBServer 的心跳数据包,来获取当前 OBServer 进程的工作状态。

OBServer 心跳状态相关配置项

  • lease_time:当 RootService 累计超过 lease_time 时间没有收到过某 OBServer 的任意心跳数据包时,RootService 认为该 observer进程短暂断线,RootService 会标记该 OBServer 的心跳状态为 lease_expired。

  • server_permanent_offline_time:当 RootService 累计超过 server_permanent_offline_time 时间没有收到过某 OBServer 的任意心跳数据包时,RootService 认为该 observer 进程断线,RootService 会标记该 OBServer 的心跳状态为 permanent_offline。

RootService 对 OBServer 节点故障的处理

RootService 根据心跳数据包可以获得 OBServer 如下的工作状态:

  • OBServer 心跳数据包存在,心跳数据包中的 OBServer 磁盘状态正常。此种状态下,RootService 认为 OBServer 处于正常工作状态。

  • OBServer 心跳数据包存在,心跳数据包中的 OBServer 磁盘状态异常。此种状态下,RootService 认为 observer 的进程还在,但 OBServer 磁盘故障。此种状态下,RootService 会尝试将该 OBServer 上的全部 leader 副本切走。

  • OBServer 心跳数据包不存在,OBServer 心跳数据包的丢失时间还比较短,OBServer 心跳状态为 lease_time,此种状态下,RootService 仅将 OBServer 的工作状态设置为 inactive,不做其他处理。

  • OBServer 心跳数据包不存在,OBServer 心跳数据包丢失时间超过 server_permanent_offline_time,OBServer 的心跳状态为 permanent_offline,此种情况下,RootService 会对该 OBServer 上的数据副本进行处理,将该 OBServer 上包含的数据副本从 Paxos 成员组中删除,并在其他可用 OBServer 上补充数据,已保证数据副本 Paxos 成员组完整。

故障机器的恢复

集群中发生故障的 OBServer 存在两种情况:

  • 故障 OBServer 可以重新启动。这种情况下,不论故障机器之前处于那种心跳状态,重新启动后,OBServer与 RootService 之间的心跳数据包恢复以后,OBServer 可重新提供服务。

  • 故障 OBServer 损坏,无法重新启动。这种情况下,在确认 OBServer 损坏无法重新启动后,需要数据库管理员执行集群管理操作,将该 OBServer 中删除。删除流程可参考 alter system delete server 管理操作。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论