首批通过分布式安全可靠测评,为关键业务系统打造
OceanBase 集群主机故障处理
更新时间:2026-04-14 11:55:54
本节为您介绍如何对 OceanBase 集群主机进行故障运维处理。
应用场景
OceanBase 多副本高可用架构可以容忍部分节点故障,例如,三副本部署架构下,可以容忍任意一个节点故障而不影响多数派;五副本部署架构下,可以任意两个节点故障而不影响多数派。但是当 OceanBase 集群中有部分主机出现故障时,需要及时进行处理,防止后续有更多节点故障导致影响多数派。
主机故障分为以下几种场景:
有可替换的 buffer 机器。
无可替换的 buffer 机器。
仅维修 CPU、内存,无需数据重建。
维修磁盘,需要数据重建。
可以分别参考对应的操作步骤进行处理。
前置条件
OceanBase 集群中出现主机故障。当 OBServer 节点状态为不可用,且主机状态为离线时,一般是主机遇到故障而宕机。
操作步骤
有可替换的 buffer 机器
在 OCP 中添加主机,管理 buffer 机器。
在 集群 > OBServer 列表 中,选择故障的 OBServer 节点,替换 OBServer 节点。
注意
- 替换流程为:先新增 OBServer 节点,再删除 OBServer 节点,不要求被替换的 OBServer 节点为在线状态。
- 由于主机已经故障,替换 OBServer 节点时会提示是否需要跳过主机运维操作,选择 是 即可。
- 替换 OBServer 节点之前,需确保扩容的所有主机与 OceanBase 集群的时钟源保持一致,时差不超过 10ms。检查方法:在 OceanBase 集群 RS Leader 主机上 clockdiff 扩容主机 IP,检查具体时差。
- 新 OBServer 节点的资源规格需大于或等于被替换的 OBServer 节点的资源规格,以确保 Unit 和数据可完整迁移(特殊需求单独评估)。

如果删除 OBServer 节点的任务长时间卡住,可能是数据自动均衡影响了数据迁移,可参考如下命令尝试修改
resource_soft_limit参数,关闭 Unit 均衡。resource_soft_limit参数的详情说明可参见 resource_soft_limit。# 检查集群 resource_soft_limit 参数,记录该参数用于回滚配置 show parameters like "%resource_soft_limit%"; # 关闭 Unit 均衡 alter system set resource_soft_limit=100;如果数据复制较慢,且网络带宽充足,可适当提高数据复制并发参数,加速迁移。
# 检查集群数据复制并发参数,记录该参数用于回滚配置 show parameters like "%data_copy_concurrency%"; show parameters like "%server_data_copy_out_concurrency%"; show parameters like "%server_data_copy_in_concurrency%"; # 提高并发参数 alter system set data_copy_concurrency=100; alter system set server_data_copy_out_concurrency=40; alter system set server_data_copy_in_concurrency=40;在主机列表中,强制删除离线的故障主机。
无可替换的 buffer 机器,仅维修 CPU、内存,无需数据重建
在 集群 > OBServer 列表 中,停止故障的 OBServer 节点。
请选择 停止进程,由于 OBServer 节点已经不再工作,这一步实际上只是让 OCP 识别出 OBServer 节点正在停机维修。
故障主机关机维修,主机维修完成后,启动主机。
检查主机状态,如果主机仍为 离线 状态,重装 OCP-Agent。
重装完成后,主机状态应为 在线。
在 集群 > OBServer 列表 中,启动 OBServer 节点。
启动完成后, OBServer 节点的状态应为 运行中。
无可替换的 buffer 机器,需要数据重建
在 集群 > OBServer 列表 列表中,删除故障的 OBServer 节点。
注意
以下情况删除 OBServer 节点会失败,需要使用 buffer 机器进行处理:
- 如果一个 Zone 内只有 1 台 OBServer 节点,且这台 OBServer 节点上有数据副本或 Unit,删除 OBServer 节点会失败。
- 如果剩余的 OBServer 节点无法容纳全部租户的数据副本或 Unit,删除 OBServer 节点会失败。
- 如果剩余的 OBServer 节点无法满足数据多数派的要求,删除 OBServer 节点会失败。

如果删除 OBServer 节点的任务长时间卡住,可能是数据自动均衡影响了数据迁移,可参考如下命令尝试修改
resource_soft_limit参数,关闭 Unit 均衡。resource_soft_limit参数的详情说明可参见 resource_soft_limit。# 检查集群 resource_soft_limit 参数,记录该参数用于回滚配置 show parameters like "%resource_soft_limit%"; # 关闭 Unit 均衡 alter system set resource_soft_limit=100;如果数据复制较慢,且网络带宽充足,可适当提高数据复制并发参数,加速迁移。
# 检查集群数据复制并发参数,记录该参数用于回滚配置 show parameters like "%data_copy_concurrency%"; show parameters like "%server_data_copy_out_concurrency%"; show parameters like "%server_data_copy_in_concurrency%"; # 提高并发参数 alter system set data_copy_concurrency=100; alter system set server_data_copy_out_concurrency=40; alter system set server_data_copy_in_concurrency=40;在 主机列表 中,强制删除离线的故障主机。
故障主机关机维修,主机维修完成后,启动主机。
将维修后的主机添加到 OCP 中。
重新为 OceanBase 集群添加该 OBServer 节点。