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 宕机,而缺失的副本还没有被补齐,那么系统处于副本少数派风险中。