---
title: github-fill
description: 替换节点 替换节点适用于硬件故障场景、容量场景（不同规格机器替换），替换后集群的节点数量不变。替换节点是一套运维操作的组合：即先添加新节点并迁移副本，然后再删除旧节点，整体时间较长。 操作步骤 使用 root 用户登录到集群的 sys 租户。 连接示例如下，连接数据库时请以实际环境为准。 obclient -h10.…
---
切换语言

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

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

# 替换节点

更新时间：2026-02-27 18:43:24

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/600.manage/100.cluster-management/300.common-cluster-operations/700.replace-a-node.md)  

替换节点适用于硬件故障场景、容量场景（不同规格机器替换），替换后集群的节点数量不变。替换节点是一套运维操作的组合：即先添加新节点并迁移副本，然后再删除旧节点，整体时间较长。

## 操作步骤

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-1000000004476086) 和 [连接数据库概述（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476144)。
 2. 在待替换节点所在的 Zone 上添加新节点。

   添加新节点的详细操作请参见 [添加节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476042)。
 3. 将旧节点上的 Unit 迁移到新节点。

      1. 查询 `DBA_OB_SERVERS` 视图获取待替换节点的相关信息。

        查询示例如下：

        ```shell
        obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_SERVERS;
        +-------------+----------+----+--------------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+-------------------------------------------------------------------------------------------+
        | SVR_IP      | SVR_PORT | ID | ZONE         | SQL_PORT | WITH_ROOTSERVER | STATUS | START_SERVICE_TIME         | STOP_TIME | BLOCK_MIGRATE_IN_TIME | CREATE_TIME                | MODIFY_TIME                | BUILD_VERSION                                                                             |
        +-------------+----------+----+--------------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+-------------------------------------------------------------------------------------------+
        | 172.xx.xx.xx|     2882 |  6 | sa128_obv4_2 |     2881 | NO              | ACTIVE | 2022-12-30 16:17:03.173519 | NULL      | NULL                  | 2022-12-30 16:08:04.749100 | 2023-01-04 11:48:36.589270 | 4.0.0.0_101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322(Dec  7 2022 16:22:15) |
        | 172.xx.xx.xx|     2882 |  4 | sa128_obv4_3 |     2881 | NO              | ACTIVE | 2022-12-30 16:36:35.567437 | NULL      | NULL                  | 2022-12-30 16:08:02.755200 | 2023-01-04 14:13:36.976548 | 4.0.0.0_101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322(Dec  7 2022 16:22:15) |
        | 172.xx.xx.xx|     2882 |  3 | sa128_obv4_3 |     2881 | NO              | ACTIVE | 2022-12-12 12:42:00.054759 | NULL      | NULL                  | 2022-11-03 15:37:09.530894 | 2022-12-22 14:43:26.717736 | 4.0.0.0_101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322(Dec  7 2022 16:22:15) |
        | 172.xx.xx.xx|     2882 |  1 | sa128_obv4_1 |     2881 | NO              | ACTIVE | 2022-12-12 12:25:17.555651 | NULL      | NULL                  | 2022-11-03 15:37:08.990683 | 2022-12-12 12:25:18.553763 | 4.0.0.0_101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322(Dec  7 2022 16:22:15) |
        | 172.xx.xx.xx|     2882 |  2 | sa128_obv4_2 |     2881 | YES             | ACTIVE | 2022-12-12 11:46:37.222980 | NULL      | NULL                  | 2022-11-03 15:37:09.490511 | 2022-12-12 11:47:31.075335 | 4.0.0.0_101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322(Dec  7 2022 16:22:15) |
        | 172.xx.xx.xx|     2882 |  5 | sa128_obv4_1 |     2881 | NO              | ACTIVE | 2022-12-30 16:25:45.420996 | NULL      | NULL                  | 2022-12-30 16:08:03.928478 | 2023-01-04 11:48:36.578231 | 4.0.0.0_101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322(Dec  7 2022 16:22:15) |
        +-------------+----------+----+--------------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+-------------------------------------------------------------------------------------------+
        6 rows in set

        ```

        有关 `DBA_OB_SERVERS` 视图的更多详细信息，请参见 [DBA_OB_SERVERS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004477720)。
      2. 根据节点 IP 查询待替换的节点的 Unit 列表。

        语句如下：

        ```shell
        obclient [(none)]> SELECT  unit_id FROM  oceanbase.DBA_OB_UNITS WHERE SVR_IP = 'svr_ip';

        ```

        其中，`svr_ip` 需要根据实际情况填写待替换节点的 IP 地址。

        查询示例如下：

        ```shell
        obclient [(none)]> SELECT unit_id FROM  oceanbase.DBA_OB_UNITS WHERE SVR_IP = '172.xx.xx.xx';
        +---------+
        | unit_id |
        +---------+
        |       1 |
        |    1002 |
        |    1016 |
        |    1024 |
        +---------+
        4 rows in set

        ```
      3. 提交 Unit 迁移任务，将旧节点上的 Unit 迁移到同 Zone 的其他节点上。

        语句如下：

        ```shell
        obclient [(none)]> ALTER SYSTEM MIGRATE UNIT unit_id DESTINATION 'svr_ip:svr_port';

        ```

        相关参数说明如下：

             - `unit_id`：待迁移的 Unit 的 unit_id。
             - `svr_ip:svr_port`：新节点的 IP 地址和 RPC 端口号，端口号默认为 2882。

        每条命令仅支持迁移一个 Unit，多个 Unit 需要执行多次该命令。

        迁移示例如下：

        ```shell
        obclient [(none)]> ALTER SYSTEM MIGRATE UNIT 1016 DESTINATION '172.xx.xx.xx:2882';

        ```
      4. 查询 `oceanbase.DBA_OB_UNIT_JOBS` 视图，确认 Unit 的迁移进度。

        ```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.106|        2882 |
        +--------+--------------+------------+-------------+----------+----------------------------+----------------------------+-----------+---------+----------+------------+------------+-------------+

        ```

        如果查询结果为空，则表示 Unit 迁移完成。

   更多关于 Unit 迁移的操作及说明，请参见 [Unit 迁移](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476530)。
 4. 等待旧节点上的所有 Unit 迁移完成后，将旧节点删除。

   具体操作如下：

      1. 执行以下命令，删除旧节点。

        语句如下：

        ```shell
        obclient [(none)]> ALTER SYSTEM DELETE SERVER 'svr_ip:svr_port' [,'svr_ip:svr_port'...] [ZONE [=] 'zone_name']

        ```

        相关参数说明如下：

             - `svr_ip`：表示待删除的旧节点的 IP。
             - `port`：表示待删除的旧节点的 RPC 端口，默认为 2882。
             - `zone_name`：待删除的旧节点所属的 Zone。

        示例如下：

        ```shell
        obclient [(none)]> ALTER SYSTEM DELETE SERVER "172.xx.xx.xx:2882" zone='zone1'

        ```
      2. 待操作结束后，查询 `oceanbase.DBA_OB_SERVERS` 视图，确认旧节点是否删除成功。

        ```shell
        obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_SERVERS;

        ```

        如果列表中已经查询不到旧节点信息，则表示删除成功。如果列表中仍然有该节点，且该节点的状态为 `DELETING`，则表示该节点仍然在删除状态中。

## 相关文档

更多节点相关的运维操作，请参见以下信息：

- [查看节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476043)
 - [重启节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476056)
 - [添加节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476042)
 - [删除节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476044)
 - [隔离节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476050)

 上一篇 下一篇 ![有帮助](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) 咨询热线
