OceanBase 数据库如何配置通过心跳检查来标记 OBServer 永久下线?

OceanBase 数据库中,可以通过 server_permanent_offline_time 配置项来控制 OBServer 的永久下线时间。

适用版本

OceanBase 数据库 V2.X 版本

设置方法

OceanBase 数据库通过

server_permanent_offline_time

配置项来控制 OBServer 的永久下线时间,默认为 3600s,取值范围为 [20s, +∞)。对于一台 OBServer,RootService 会通过检查心跳的方式按照 100 ms 的间隔定期检查此 Server 的状态,并记录

last_hb_time

为 OBServer 最近保持心跳的时间。当

last_hb_time

超过

server_permanent_offline_time

配置项指定的值后,该 OBServer 会被标记为永久下线,此后会触发 unit 复制和副本迁移动作。

通过

server_permanent_offline_time

配置项的设置,系统会容忍副本丢失一段时间(例如,4 小时),当副本丢失超出该时长后才启动复制,避免了不必要的副本复制。

server_permanent_offline_time

配置项的使用场景如下:

  • OBServer 升级流程:进行版本升级时,OceanBase 数据库会自动将该参数设置为 72h(72 小时)。
  • OBServer 硬件更换:建议将该参数设置为 4h(4 小时)。
  • OBServer 清空上线:建议将该参数设置为 10m(10 分钟),使集群快速上线。

如果一台 OBServer 宕机,而缺失的副本还没有被补齐,那么系统处于副本少数派风险中。