---
title: "添加节点 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 添加节点 可以向 OceanBase 集群中添加节点，添加节点适用于弹性扩容场景和调整部署场景。 弹性扩容场景：扩容后，Zone 内有更多的节点容纳 Unit，从而可以执行后续的迁移 Unit、调整租户的 UNIT_NUM 、新建租户等操作。 调整部署场景：调整部署场景，包括将集群的部署方式从同城三中心调整为三地五中…
---
切换语言

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

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

# 添加节点

更新时间：2026-06-21 15:13:11

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

可以向 OceanBase 集群中添加节点，添加节点适用于弹性扩容场景和调整部署场景。

- 弹性扩容场景：扩容后，Zone 内有更多的节点容纳 Unit，从而可以执行后续的迁移 Unit、调整租户的 `UNIT_NUM`、新建租户等操作。
 - 调整部署场景：调整部署场景，包括将集群的部署方式从同城三中心调整为三地五中心，以及机房裁撤场景下将 Zone 从一个机房搬迁到另一个机房。该场景需要先增加 Zone，再在该 Zone 内增加节点，然后调整租户的 Locatity 属性。

OceanBase 数据库的弹性扩容能力相比于传统数据库具有明显的架构优势。传统数据库的数据存放于一台机器上，而 OceanBase 数据库能够把数据打散到不同机器，从而能够解决可扩展性的问题，真正体现出分布式架构的优势。当集群或者租户的容量不足时，只需要增加更多的节点，集群就能够容纳更多的租户，租户也能够容纳更多的数据和业务流量。同样，在集群或者租户的容量富余时，也可以将节点下线，从而降低成本。

多副本部署能力同样是 OceanBase 数据库相比于传统数据库的架构优势，多副本部署能力是 OceanBase 数据库具备多级无损容灾能力的基础，包括单机级无损容灾、机房级无损容灾、城市级无损容灾等能力。此外，OceanBase 数据库支持灵活地调整集群部署架构，从而可以满足业务场景的技术演进。

## 前提条件

- 请确认待增加的所有 OBServer 服务器已完成相关配置，具体操作可参见 [部署前准备](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682296) 章节。
 - 添加节点前需要为所有 OBServer 服务器安装数据库软件，您可以从 OceanBase 官网的下载中心下载对应版本的 OceanBase 数据库软件安装包，或者从 OceanBase 技术支持人员处获取。

## 操作步骤

#### 说明

本节主要介绍如何通过命令手动向集群中添加节点，对于 OceanBase 数据库社区版，如果需要通过 obd 向 OceanBase 集群中添加节点，可参考 [obd 产品文档](https://www.oceanbase.com/docs/community-obd-cn-1000000000519115) 中 **集群扩容** 的相关内容进行操作。

1. （可选）对于需要添加 Zone 后再向该 Zone 中添加节点的场景，请确认已添加新的 Zone，添加 Zone 的操作请参见 [添加 Zone](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682470)。
 2. 通过 `ssh` 登录到待添加的 OBServer 服务器，初始化 OBServer 服务器并配置时钟源。

   初始化 OBServer 服务器的详细操作，请参见 [使用 oatcli 初始化 OBServer 服务器](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682850)。

   配置时钟源的详细操作，请参见 [配置时钟源](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682851)。
 3. 通过 `ssh` 登录到待添加的 OBServer 服务器，安装 OceanBase 数据库的 RPM 包。

   在添加节点前，需要为待添加的所有 OBServer 服务器安装数据库软件。

   命令如下：

   ```shell
   [root@xxx /]#cd $rpm_dir

   [root@xxx $rpm_dir]#rpm -ivh $rpm_name

   ```

   其中，`rpm_dir` 表示存放 RPM 包的目录；`$rpm_name` 表示 RPM 包的名称。
 4. 初始化 OceanBase 数据库的目录。

   OceanBase 数据库的数据目录通常建议设置在独立的磁盘上，然后通过软链接方式链接到软件的 `Home` 目录下面。

   ```shell
   [root@xxx admin]#su - admin
   -bash-4.2$ mkdir -p /data/1/$cluster_name/{etc3,sort_dir,sstable,slog}
   -bash-4.2$ mkdir -p /data/log1/$cluster_name/{clog,etc2,ilog,oob_clog}
   -bash-4.2$ mkdir -p /home/admin/oceanbase/store/$cluster_name
   -bash-4.2$ for t in {etc3,sort_dir,sstable,slog};do ln -s /data/1/$cluster_name/$t /home/admin/oceanbase/store/$cluster_name/$t; done
   -bash-4.2$ for t in {clog,etc2,ilog,oob_clog};do ln -s /data/log1/$cluster_name/$t /home/admin/oceanbase/store/$cluster_name/$t; done

   ```

   其中，`cluster_name` 表示待添加 OBServer 服务器的集群名。

   示例如下：

   ```shell
   [root@xxx admin]#su - admin
   -bash-4.2$ mkdir -p /data/1/obdemo/{etc3,sort_dir,sstable,slog}
   -bash-4.2$ mkdir -p /data/log1/obdemo/{clog,etc2,ilog,oob_clog}
   -bash-4.2$ mkdir -p /home/admin/oceanbase/store/obdemo
   -bash-4.2$ for t in {etc3,sort_dir,sstable,slog};do ln -s /data/1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done
   -bash-4.2$ for t in {clog,etc2,ilog,oob_clog};do ln -s /data/log1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done

   ```
 5. 启动节点 observer 进程。

   执行以下命令，启动 observer 进程。

   ```shell
   [root@xxx admin]$ su - admin

   -bash-4.2$ cd /home/admin/oceanbase

   -bash-4.2$ ./bin/observer -I xx.xx.xx.xx -P XXXX -p YYYY -z zone1 -d /home/admin/oceanbase/store/obdemo -r 'xx.xx.xx.xx:xxxx:yyyy' -c 20190716 -n obdemo -o "system_memory=30GB,datafile_size=100G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"

   ```

   相关参数说明如下：

      - `-I`：参数用于指定待启动的节点 IP。在多机部署场景下，不能指定 `127.0.0.1` 作为目标 IP。

       通过指定网卡名来启动节点（例如 `-i eth0`）的方式在当前版本依然可以使用，但建议使用指定 IP（例如，`-I 10.10.10.1`）来启动。此外，通过同时指定 IP 和网卡名（例如 `-I 10.10.10.1 -i eth0`）来启动节点也可以，但不建议这么用。

       对于当前版本，支持指定的节点 IP 为 ipv6 地址，使用时需要注意以下事项：

            - ipv6 地址分为 Global 地址和 Link 地址，建议使用 Global 地址。
            - 需要在 `-I` 前，添加 `-6`。
      - `-c`：用于指定集群 ID。其值可通过 `SHOW PARAMETERS LIKE 'cluster_id';` 语句获取。
      - `-p`：用于指定 SQL 端口号。一般为 2881，除非有明确目的，一般不建议修改。
      - `-P`：用于指定 RPC 端口号。一般为 2882，除非有明确目的，不建议修改。
      - `-n`：用于指定集群名。其值可通过 `SHOW PARAMETERS LIKE 'cluster';` 语句获取。本示例中集群名为 `obdemo`。
      - `-z`：用于指定待加入的 Zone。可通过视图 `DBA_OB_ZONES` 查看集群中的 Zone 名。
      - `-d`：用于指定数据目录。
      - `-r`：用于指定待添加的 OceanBase 集群的 RS 地址列表。

       指定的地址为 ipv6 地址时，需要注意以下事项：

            - ipv6 地址分为 Global 地址和 Link 地址，建议使用 Global 地址。
            - IP 地址需要使用 `[]` 包裹。
            - 需要在 `-r` 前，添加 `-6`。
      - `-l`：用于指定日志的级别，本示例中为 `WARN`，表示日志级别为 WARNING 级别。

       有关 OceanBase 数据库日志级别的详细介绍，请参见 [日志级别](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682044)。
      - `-o`：用于指定集群的启动配置项，需要根据实际情况配置。

       使用 `-o` 参数时，需满足以下条件：

            - 不分大小写，但是推荐按照 `observer.config.bin` 中的名称来写。
            - 配置项名不能包含以下特殊字符：空格、`\r`、`\n`、`\t`
            - 配置项名和配置项值中间必须有等号（=）。
            - 配置项之间使用英文逗号（,）进行分割。

       语句中:

            - `system_memory`：用于指定 OceanBase 数据库内部保留内存，默认是 30G。
            - `datafile_size`：用于指定 OceanBase 数据库数据文件 SSTable 的大小（一次性初始化），根据 `/data/1/` 可用空间评估，建议不少于 100G，同时又保留一些剩余空间。
            - `config_additional_dir`：用于指定参数文件的冗余目录。

   示例如下：

   -bash-4.2$ ./bin/observer -I xx.xx.xx.1 -c 20221216 -p 2881 -P 2882 -z zone4 -n obdemo -d /home/admin/oceanbase/store/obdemo -r 'xx.xx.xx.1:2882:2881' -l WARN -o "system_memory=30GB,datafile_size=100G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"

   ```

   使用 ipv6 地址启动的示例如下：

   -bash-4.2$ ./bin/observer -6 -I xxxx:xxxx:xxxx:xxxx:xxx:xxxx:xxxx:ebd8 -c 20221216 -p 2881 -P 2882 -z zone4 -n obdemo -d /home/admin/oceanbase/store/obdemo -r '[xxxx:xxxx:xxxx:xxxx:xxx:xxxx:xxxx:ebd8]:2882:2881' -l WARN -o "system_memory=30GB,datafile_size=100G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"

   ```
 6. （可选）如果需要添加多个节点，请重复执行步骤 2 ~ 5。
 7. 向集群中添加节点。

      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-1000000005682520) 和 [连接数据库概述（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682578)。
      2. 执行以下命令，向集群的 Zone 中添加节点。

        ```sql
        ALTER SYSTEM ADD SERVER 'svr_ip:svr_port' [,'svr_ip:svr_port'...] [ZONE [=] 'zone_name'];

        ```

        相关参数说明如下：

             - `svr_ip`：表示待添加的节点的 IP。
             - `svr_port`：表示待添加的节点的 RPC 端口。默认为 `2882`。
             - `zone_name`：表示待添加节点的 Zone。

        示例如下：

        ```shell
        obclient> ALTER SYSTEM ADD SERVER '10.xx.xx.xx:2882','10.xx.xx.xx:2882' ZONE 'zone4';

        ```

        该操作会将 OBServer 服务器加入到服务列表，只有服务列表中的 OBServer 服务器才可以提供服务。
 8. 执行成功后，可以查询 `DBA_OB_SERVERS` 视图进行确认。

   查询示例如下：

   ```shell
   obclient> SELECT * FROM oceanbase.DBA_OB_SERVERS;

   ```

   列表中有刚刚添加的 OBServer 服务器，则表示添加成功。

## 后续操作

增加节点主要用于弹性扩容场景和调整部署场景：

- 对于弹性扩容场景，增加节点后，节点所在的 Zone 内有更多的节点容纳 Unit，从而可以执行后续的迁移 Unit、调整租户的 `UNIT_NUM` 以及新建租户等操作，相关操作可参考以下内容：

     - [Unit 迁移](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682972)
     - [调整 Unit Number](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682938)
     - [创建租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682466)
 - 调整部署场景：调整部署场景，包括将集群的部署方式从同城三中心调整为三地五中心，以及机房裁撤场景下将 Zone 从一个机房搬迁到另一个机房。该场景需要先增加 Zone，再在该 Zone 内增加节点，然后调整租户的 Locality 属性。调整租户 Locality 属性的相关操作请参见 [修改 Locality](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682966)。

## 相关文档

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

- [查看节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682468)
 - [重启节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682481)
 - [删除节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682469)
 - [隔离节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682475)
 - [替换节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682472)

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