---
title: "少数派节点故障 - OceanBase 数据库 V4.3.0 | OceanBase 文档中心"
description: 少数派节点故障 本节主要介绍少数派节点故障的处理流程。 背景信息 OceanBase 数据库是一款分布式数据库，典型的部署模式为多副本架构，本章节仅介绍不影响任何日志流的多数派副本的节点故障。例如，三副本部署架构下，可以容忍任意一个节点故障而不影响多数派；五副本部署架构下，可以任意两个节点故障而不影响多数派。如果已经…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.0

# 少数派节点故障

更新时间：2026-04-10 11:58:35

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.0/zh-CN/600.manage/100.cluster-management/400.common-cluster-failure/100.minority-node-failure.md)  

本节主要介绍少数派节点故障的处理流程。

## 背景信息

OceanBase 数据库是一款分布式数据库，典型的部署模式为多副本架构，本章节仅介绍不影响任何日志流的多数派副本的节点故障。例如，三副本部署架构下，可以容忍任意一个节点故障而不影响多数派；五副本部署架构下，可以任意两个节点故障而不影响多数派。如果已经存在部分日志流缺少副本，可能少于预期容忍度的节点故障依然会影响多数派，该场景请参见 [多数派节点故障](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639930)。

常见的节点故障主要有：

- 节点硬件异常导致宕机。
 - 节点硬件异常尚未宕机，但导致该节点上的 observer 进程异常退出，例如，主机内存故障导致的 observer 进程崩溃。
 - 节点硬件异常尚未宕机，但导致该节点上的 observer 进程状态异常，例如，IO 异常导致 observer 进程的读写请求超时。
 - 节点硬件异常尚未宕机，但导致该节点上的 observer 进程写入 SSTable 或 RedoLog 的数据错误，并于随后的 Checksum 校验中检查出来。
 - OceanBase 数据库 Bug 导致的 observer 进程异常，例如，线程卡住、内存超限、进程崩溃等异常。

## 操作步骤

如果是 OceanBase 数据库的 Bug 导致的 observer 进程异常，首先应尽快隔离节点，隔离节点的相关操作请参见 [隔离节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639934)。如果不影响服务，可以保留现场并联系 OceanBase 技术支持人员协助处理。如果已经影响服务，需要尽快重启进程或者拉起进程，然后联系 OceanBase 技术支持人员协助处理。

如果由于硬件异常导致节点异常，或者怀疑硬件异常时，需要隔离并替换该异常节点，具体操作如下：

1. 使用 `root` 用户登录到集群的 `sys` 租户。

   连接示例如下，连接数据库时请以实际环境为准。

   ```shell
   obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A

   ```

   有关更加详细的连接数据库的操作指引，参见 [连接数据库概述（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000640069) 和 [连接数据库概述（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000640028)。
 2. 尽快对异常节点执行 `Stop Server` 或 `Force Stop Server` 操作，并确保执行成功，避免影响业务流量。

   `Stop Server` 的语句如下：

   ```shell
   obclient [(none)]> ALTER SYSTEM STOP SERVER 'svr_ip:svr_port';

   ```

   示例：

   ```shell
   obclient [(none)]> ALTER SYSTEM STOP SERVER '172.xx.xx.xx:2882';

   ```

   `Force Stop Server` 的语句如下：

   ```shell
   obclient [(none)]> ALTER SYSTEM FORCE STOP SERVER 'svr_ip:svr_port';

   ```

   示例：

   ```shell
   obclient [(none)]> ALTER SYSTEM FORCE STOP SERVER 172.xx.xx.xx:2882';

   ```

   `Stop Server` 和 `Force Stop Server` 操作的内部执行流程相关信息请参见 [隔离节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639934)。
 3. 在异常节点所在的 Zone 增加节点。

   增加节点的具体操作请参见 [添加节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639946)。
 4. 在新增节点上补全异常节点上的副本。

   分为以下三种场景：

      - observer 进程已经退出的场景。

       可以主动发起 Unit 迁移，也可以等待 Root Service 自动发起 Unit 迁移。observer 进程退出超过永久下线时间后 Root Service 会自动发起 Unit 迁移，永久下线时长由系统配置项 `server_permanent_offline_time` 控制，同时需要确保系统配置项 `enable_rereplication` 处于打开状态。

       手动发起 Unit 迁移的相关操作请参见 [Unit 迁移](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000640369)。
      - 异常节点上的数据错误，或者进程状态异常导致迁移 Unit 操作卡住，或者进程状态异常导致全局状态异常（例如，合并卡住）的场景。

       可以主动 kill observer 进程，然后参考第一种场景（observer 进程已经退出的场景）处理。
      - 硬件隐患，以及不会导致集群全局状态异常的场景。

       该场景不需要 Kill observer 进程（避免 Kill observer 后导致的集群风险敞口变大）。可以主动发起 Unit 迁移，将异常节点上的 Unit 全部迁移至新增节点。

       手动发起 Unit 迁移的相关操作请参见 [Unit 迁移](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000640369)。  

   #### 说明

   建议总是主动发起 Unit 迁移：

      - 主动迁移可以控制从异常节点上迁移所有 Unit 到新节点，避免 Root Service 自动发起，从而保持原先的 Unit 拓扑结构，避免打破节点之间的均衡。
      - Root Service 自动发起 Unit 迁移，需要等待进程退出超过永久下线时间，会增大节点异常的风险敞口。
      - 主动发起 Unit 迁移，可以实时观测迁移流量对集群资源的占用，避免影响应用流量。

       如果发现节点异常时，距离节点退出已经超过永久下线时间，并且 Root Service 已经自动发起 Unit 迁移，需要观察迁移后的拓扑结构、观察迁移流量对集群资源的占用、做好对业务人员的同步。
 5. 操作结束后，可以通过 `oceanbase.DBA_OB_UNIT_JOBS` 视图查看数据补全进度。

   ```shell
   obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_UNIT_JOBS WHERE JOB_TYPE = 'MIGRATE_UNIT';
   +--------+--------------+------------+-------------+----------+----------------------------+----------------------------+-----------+---------+----------+------------+------------+-------------+
   | JOB_ID | JOB_TYPE     | JOB_STATUS | RESULT_CODE | PROGRESS | START_TIME                 | MODIFY_TIME                | TENANT_ID | UNIT_ID | SQL_TEXT | EXTRA_INFO | RS_SVR_IP  | RS_SVR_PORT |
   +--------+--------------+------------+-------------+----------+----------------------------+----------------------------+-----------+---------+----------+------------+------------+-------------+
   |      4 | MIGRATE_UNIT | INPROGRESS |        NULL |        0 | 2023-01-04 17:22:02.208219 | 2023-01-04 17:22:02.208219 |      1004 |    1006 | NULL     | NULL       |xx.xx.xx.238|        2882 |
   +--------+--------------+------------+-------------+----------+----------------------------+----------------------------+-----------+---------+----------+------------+------------+-------------+

   ```

   如果查询结果为空，则表示 Unit 迁移完成，数据补全成功。
 6. 待异常节点上的 Unit 在新增节点上补全后，删除异常节点。

   删除节点的具体操作请参见 [删除节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639947)。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
