---
title: "添加 OBServer | OceanBase 文档中心"
description: 添加 OBServer 您可以向管理的集群中添加 OBServer 节点。 关于 OBServer OceanBase 数据库是单进程软件，进程名为 observer，通常每个机器启动一个进程就是一个节点（节点不完全等同于物理机器）。OBServer 是 OceanBase 数据库的服务器，observer 进程就运…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

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

# 添加 OBServer

更新时间：2026-06-27 16:34:26

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.0.0/zh-CN/500.administrator-guide/600.basic-database-management/100.manage-clusters/500.manage-observers/100.add-observer-1.md)  

您可以向管理的集群中添加 OBServer 节点。

## 关于 OBServer

OceanBase 数据库是单进程软件，进程名为 observer，通常每个机器启动一个进程就是一个节点（节点不完全等同于物理机器）。OBServer 是 OceanBase 数据库的服务器，observer 进程就运行在该服务器上。

每一个 OceanBase 数据库的进程 observer 由 IP 和端口作为唯一标识。通常一台物理或者虚拟服务器运行一个 observer 进程。observer 进程作为 OceanBase 数据库最核心的进程负责几乎所有数据库内核功能，包括 SQL 引擎、存储引擎和事务引擎。分布式的功能也同样在这个进程中，包括 RPC 通信、负载均衡和分区管理等。

## 通过命令向集群中添加 OBServer 节点

通过命令添加 OBServer 节点前，需要提前准备好对应版本的 OceanBase 数据库 RPM 包。有关 OceanBase 数据库 RPM 包的获取方式，请联系 OceanBase 技术支持人员。

1. 通过 `root` 用户登录到 OceanBase 数据库的 `sys` 租户。
 2. （可选）依次执行以下语句，添加 Zone，并设置 Zone 的区域与 IDC 属性。

   > **说明**
   >
   >  
   >
   > 如果是向已有的 Zone 中添加 OBServer 节点，则该步骤可省略。如果需要新增 Zone 并向其中添加 OBServer 节点，则需要执行该步骤。

   本节以待添加 Zone 为 `zone4`，且 `REGION='HANGZHOU',IDC='HZ1'` 为例，提供操作指导。

   ```sql
   obclient> ALTER SYSTEM ADD ZONE zone4 REGION HANGZHOU;

   obclient> ALTER SYSTEM START ZONE zone4;

   obclient> ALTER SYSTEM ALTER ZONE zone4 SET REGION='HANGZHOU',IDC='HZ1';

   ```
 3. 通过 `ssh` 登录到待添加的 OBServer，进行安装前检查。

      1. 进入工具所在的目录。

        ```shell
        [root@hostname /]# cd /root/t-oceanbase-antman/clonescripts

        ```
      2. 执行以下命令，开始检查。

        ```shell
        [root@hostname clonescripts]# sh precheck.sh -m ob

        ```
      3. 执行以下命令，检查时钟同步情况，保证所有节点的时钟偏差在 100 ms 以内。

        其中，`$IP` 表示集群中其他 OBServer 的 IP 地址。

        ```shell
        [root@hostname /]# ntpdate $IP

        ```
 4. 安装 OceanBase 数据库的 RPM 包。

   其中，`rpm_dir` 表示存放 RPM 包的目录；`$rpm_name` 表示 RPM 包的名称。

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

   [root@hostname $rpm_dir]# rpm -i --prefix=/home/admin/oceanbase $rpm_name

   ```

   > **说明**
   >
   >  
   >
   > OceanBase 数据库软件会安装在 `/home/admin/oceanbase` 目录下。
 5. 在待添加的 OBServer 服务器上创建 `/data/1` 和 `/data/log1` 目录，并将目录的拥有者（Owner）修改为 `admin`。 通常情况下，使用 `/data/1` 作为数据目录，`/data/log1` 作为日志目录。

   ```shell
   [root@xxx /]# mkdir -p /data/1 /data/log1
   [root@xxx /]# cd data
   [root@xxx data]# ll
   total 8
   drwxr-xr-x 2 root root 4096 Nov 18 14:24 1
   drwxr-xr-x 2 root root 4096 Nov 18 14:24 log1
   [root@xxx data]# cd ..
   [root@xxx /]# chown -R admin:admin data
   [root@xxx /]# cd data
   [root@xxx data]# ll
   total 8
   drwxr-xr-x 2 admin admin 4096 Nov 18 14:24 1
   drwxr-xr-x 2 admin admin 4096 Nov 18 14:24 log1

   ```
 6. 初始化 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

   ```
 7. 启动 OBServer，并将 OBServer 注册到集群。

      1. 设置 `admin` 用户的 ulimit。

        ```shell
        [admin@hostname oceanbase]$ ulimit -s 10240; ulimit -c unlimited

        ```
      2. 配置环境变量。

        ```shell
        [admin@hostname oceanbase]$ export LD_LIBRARY_PATH=/home/admin/oceanbase/lib:$LD_LIBRARY_PATH LD_PRELOAD=''

        ```
      3. 启动 OBServer。

        语句如下：

        ```shell
        [admin@hostname oceanbase]$ /home/admin/oceanbase/bin/observer -i eth0 -P XXXX -p YYYY -z zone1 -d /home/admin/oceanbase/store/obdemo -r 'xxx.xxx.xxx.xxx:xxxx:xxx.xxx.xxx.xxx:xxxx xxx.xxx.xxx.xxx:xxxx:yyyy' -c 20190716 -n obdemo -o "memory_limit_percentage=90,memstore_limit_percentage=60,datafile_disk_percentage=80,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"

        ```

        其中：

             - `-P` 参数用于指定 RPC 端口号。一般为 2882，除非有明确目的，不建议修改。
             - `-p` 参数用于指定直连端口号。一般为 2881，除非有明确目的，一般不建议修改。
             - `-z` 参数用于指定待加入的 Zone。
             - `-d` 参数用于指定数据的存储目录。
             - `-r` 参数用于指定待添加的 OBServer 的 IP 地址列表。
             - `-c` 参数用于指定集群 ID。
             - `-n` 参数用于指定集群名。
             - `-o` 参数用于指定启动配置项。

              更多配置项的详细信息，请参见 [系统配置项](https://www.oceanbase.com/docs/community-observer-cn-10000000000901222)。

        > **注意**
        >
        >  
        >
        > 在启动 OBServer 时，请务必指定正确的 Zone 名称和初始化参数值。
 8. 再次通过 `root` 用户登录到 OceanBase 数据库的 `sys` 租户，向集群中添加 OBServer 节点。

   其中，`$IP` 表示待添加的 OBServer 的 IP 地址；`$PORT` 表示 OBServer 的 RPC 端口号，默认为 `2882`。

   ```sql
   obclient> ALTER SYSTEM ADD SERVER '$IP:$PORT' ZONE 'zone4';

   ```

   该操作会将 OBServer 加入到服务列表，只有服务列表中的 OBServer 才可以提供服务。

   添加后，可以执行以下语句，确认列表中是否有刚才添加的 OBServer，如果有，则表示添加成功。

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

   ```

## 通过 OBD 向集群中添加 OBServer 节点

1. 在 OBD 所在机器的操作用户下，写一份新的配置文件，执行如下命令使用 OBD 进行部署：

   ```bash
   obd cluster deploy <deploy_name> -c <deploy_config_path>

   ```

   其中，参数 `deploy_name` 为部署集群名称，可以理解为配置文件的别名，`deploy_config_path` 为配置文件名。

   此命令会检查 home_path 和 data_dir 指向的目录文件是否为空，若目录文件不为空，则报错。此时可以加上 `-f` 选项，强制清空目录文件。

   在您执行了 `obd cluster deploy` 命令之后，OBD 将检查您的目标机器是否有 OceanBase 数据库安装包。如果没有安装包，OBD 将自动从 yum 源获取。
 2. 参考如下步骤将新部署集群的配置文件内容分别添加到原集群的配置文件对应位置中。

      1. 查看配置路径：

        ```bash
        obd cluster list

        ```
      2. 打开原集群配置文件，并添加新部署集群的配置：

        ```bash
        vim .obd/cluster/<deploy_name>/config.yaml

        ```
 3. 执行如下命令再次启动集群：

   ```bash
   obd cluster start <deploy_name>

   ```
 4. 连接 OceanBase 数据库，依次执行以下语句，添加 Zone，并设置 Zone 的区域与 IDC 属性。

   本节以待添加 Zone 为 zone4，且 REGION='HANGZHOU',IDC='HZ1' 为例，提供操作指导。

   ```sql
   obclient> ALTER SYSTEM ADD ZONE zone4 REGION HANGZHOU;
   obclient> ALTER SYSTEM START ZONE zone4;
   obclient> ALTER SYSTEM ALTER ZONE zone4 SET REGION='HANGZHOU',IDC='HZ1';

   ```
 5. 执行如下命令，向集群中添加 OBServer 节点：

   ```bash
   ALTER SYSTEM ADD SERVER 'ip:port' [,'ip:port'...] [ZONE='zone'];

   ```

   ```

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