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

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

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

# 添加 OBServer

更新时间：2026-06-04 17:58:23

您可以向管理的集群中添加 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. 执行以下命令，开始检查。

        建议您使用 oat-cli 工具进行检查，有关 oat-cli 工具的详细信息及使用，请参见当前版本对应的 《OceanBase 数据库 部署指南》文档。

        ```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

   ```
 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/enterprise-oceanbase-database-cn-10000000000884672)。

        > **注意**
        >
        >  
        >
        > 在启动 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;

   ```

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