---
title: "扩容部署 | OceanBase 文档中心"
description: 扩容部署 本文为您介绍如何进行单地域和单节点扩容。 单节点扩容为多节点 单节点扩容为多节点包括两种场景： 初始节点配置的 cm_url 为 VIP 初始节点配置的 cm_url 为物理机 IP 初始环境配置的 cm_url 为 VIP 具体操作步骤，与您最初进行单节点部署时的各步骤保持一致即可。详情请参见 单节点部署…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*L03BS6f-o40AAAAAAAAAAAAADiGDAQ/original) 迁移服务 OMSV 4.2.0 社区版

# 扩容部署

更新时间：2026-04-14 15:40:56

[编辑](https://github.com/oceanbase/oms-doc/edit/V4.2.0/zh-CN/400.deployment-guide/800.scale-out-oms.md)  

本文为您介绍如何进行单地域和单节点扩容。

## 单节点扩容为多节点

单节点扩容为多节点包括两种场景：

- 初始节点配置的 cm_url 为 VIP
 - 初始节点配置的 cm_url 为物理机 IP

### 初始环境配置的 cm_url 为 VIP

具体操作步骤，与您最初进行单节点部署时的各步骤保持一致即可。详情请参见 [单节点部署](https://www.oceanbase.com/docs/community-oms-cn-1000000000248266)。

#### 注意

启动容器时，`-e OMS_HOST_IP` 的值需要配置为当前机器的 IP。

以初始节点的 `cm_nodes` 为 xxx.xxx.xxx.1，扩容节点的 `cm_nodes` 为 xxx.xxx.xxx.2 为例，`config.yaml` 文件配置如下。

```yaml
# OMS 社区版元数据库信息
oms_meta_host: ${oms_meta_host}
oms_meta_port: ${oms_meta_port}
oms_meta_user: ${oms_meta_user}
oms_meta_password: ${oms_meta_password}

# 单节点扩容为多节点时，以下三个数据库的名称请与初始节点的配置保持一致
drc_rm_db: ${drc_rm_db}
drc_cm_db: ${drc_cm_db}
drc_cm_heartbeat_db: ${drc_cm_heartbeat_db}

# OMS 社区版集群配置
cm_url: http://VIP:8088
cm_location: ${cm_location}
cm_region: ${cm_region}
cm_region_cn: ${cm_region_cn}
cm_is_default: true
cm_nodes:
 - xxx.xxx.xxx.1
 - xxx.xxx.xxx.2

# 时序数据库配置
# 默认值为 false。如果您需要开启指标汇报功能，请设置为 true，并取消该参数前的注释
# tsdb_enabled: false
# 当 tsdb_enabled 为 true 时，请取消下述参数的注释并根据实际情况填写
# tsdb_service: 'INFLUXDB'
# tsdb_url: '${tsdb_url}'
# tsdb_username: ${tsdb_user}
# tsdb_password: ${tsdb_password}

```

### 初始环境配置的 cm_url 为物理机 IP

该场景下，您需要进行数据库订正，操作如下。

#### 说明

您需要订正的表包括 `drc_cm_db` 数据库中的表 `location_cm`、`host` 和 `resource_group`，以及 `drc_rm_db` 数据库中的表 `cluster_info`。

1. 配置好 VIP、SLB 或域名，绑定当前地域下所有的物理机 IP 地址。

   例如，VIP 绑定的物理机 IP 地址为 xxx.xxx.xxx.1 和 xxx.xxx.xxx.2。
 2. 停止原容器内的进程，以 oms_330 容器为例。

   ```shell
   sudo docker exec -it oms_330 bash  
   supervisorctl stop all

   ```
 3. 以数据库 `drc_rm_db` 和表 `cluster_info` 为例。登录数据库，进行下述操作。

      1. 查询 `cluster_info` 中的数据作为备份。

        ```shell
        select * from cluster_info;

        ```
      2. 删除 `cluster_info` 中的数据。

        ```shell
        delete from cluster_info;

        ```
 4. 修改 oms_330 容器中的配置文件。

   ```shell
   # /home/admin/conf/config.yaml 为 Docker 内的固定目录
   sudo vi /home/admin/conf/config.yaml

   # 修改 cm_url 地址及增加 cm_nodes:
   cm_url: http://VIP:8088
   cm_nodes:
    - xxx.xxx.xxx.1
    - xxx.xxx.xxx.2

   ```
 5. 重新进行初始化操作。

   ```shell
   sudo sh /root/docker_init.sh

   ```

   初始化完成后，确认数据库中表 `cluster_info` 的 `cm_url` 地址是否符合预期为 VIP 地址。
 6. 复制一份相同的配置文件，在另外一台机器上启动 OMS 社区版容器。

   #### 注意

      - 启动容器时，`-e OMS_HOST_IP` 的值需要配置为当前机器的 IP。
      - 请替换 `work.oceanbase-dev.com/obartifact-store/oms:${IMAGE_TAG}` 为执行 `docker load -i` 命令实际导入的镜像名称。  

   ```shell
   OMS_HOST_IP=xxx
   CONTAINER_NAME=oms_xxx
   IMAGE_TAG=feature_x.x.x-ce

   docker run -dit --net host \
   -v /data/config.yaml:/home/admin/conf/config.yaml \
   -v /data/oms/oms_logs:/home/admin/logs \
   -v /data/oms/oms_store:/home/ds/store \
   -v /data/oms/oms_run:/home/ds/run \
   # 仅在 OMS 社区版容器中挂载 HTTPS 证书时，需要设置如下两个参数
   -v /data/oms/https_crt:/etc/pki/nginx/oms_server.crt
   -v /data/oms/https_key:/etc/pki/nginx/oms_server.key
   -e OMS_HOST_IP=${OMS_HOST_IP} \
   --privileged=true \
   --pids-limit -1 \
   --ulimit nproc=65535:65535 \
   --name ${CONTAINER_NAME} \
   work.oceanbase-dev.com/obartifact-store/oms:${IMAGE_TAG}

   ```

## 单地域扩容为多地域

将单地域单节点环境扩容为多地域单节点环境时，其操作步骤和单节点部署时的操作一致。不同之处在于，`config.yaml` 文件中，`drc_cm_heartbeat_db` 配置项需要区别于初始 OMS 社区版机器的使用库。同时，需要修改 `cm_url、cm_location`、`cm_region`、`cm_region_cn`、`cm_is_default` 和 `cm_nodes` 等参数为新地域的配置。

1. 登录 OMS 社区版部署服务器。
 2. （可选）部署时序数据库。

   如果您需要 OMS 社区版能够收集和展示监控数据，请部署时序数据库。如果无需展示监控数据，请跳过本步骤。操作详情请参见 [部署时序数据库](https://www.oceanbase.com/docs/community-oms-cn-1000000000248259)。
 3. 准备配置文件。

   在适当的目录下编辑 OMS 社区版启动配置文件。例如，您可以将配置文件创建为 `/root/config.yaml`。

   请注意将必填参数替换为您部署的目标环境的实际值。以扩容机器 xxx.xxx.xxx.xx1，地域江苏为例，`config.yaml` 文件的配置如下。

   #### 注意

   `config.yaml` 文件中的 Key: Value，冒号后面必须加一个空格。

   ```yaml
   # OMS 元数据库信息
   oms_meta_host: ${oms_meta_host}
   oms_meta_port: ${oms_meta_port}
   oms_meta_user: ${oms_meta_user}
   oms_meta_password: ${oms_meta_password}

   # drc_rm_db、drc_cm_db 和初始节点的配置保持一致
   drc_rm_db: ${drc_rm_db}
   drc_cm_db: ${drc_cm_db}
   # drc_cm_heartbeat_db 需要使用新名称，以区别于初始节点的 heartbeat_db 库
   drc_cm_heartbeat_db: ${drc_cm_heartbeat_db}

   # OMS 社区版集群配置
   # 下述参数填写扩容地域的配置
   cm_url: http://xxx.xxx.xxx.1:8088
   cm_location: ${cm_location}
   cm_region: cn-jiangsu
   cm_region_cn: 江苏
   cm_is_default: true
   cm_nodes:
    - xxx.xxx.xxx.1

   | 参数 | 描述 | 是否必选 |
   | --- | --- | --- |
   | oms_meta_host | 元信息库的 IP 地址，可以是 MySQL 或 OceanBase 数据库 MySQL 租户。 | 必选 |
   | oms_meta_port | 元信息库的端口号。 | 必选 |
   | oms_meta_user | 元信息库的用户名称。 | 必选 |
   | oms_meta_password | 元信息库的用户密码。 | 必选 |
   | drc_rm_db | 管理控制台的数据库名称，请与初始节点的配置保持一致。 | 必选 |
   | drc_cm_db | 集群管理服务的元数据库名称，请与初始节点的配置保持一致。 | 必选 |
   | drc_cm_heartbeat_db | 集群管理服务的心跳库的名称。请使用新名称，以区别于初始节点的 heartbeat_db 库。 | 必选 |
   | cm_url | OMS 社区版集群管理服务的地址。例如，`http://xxx.xxx.xxx.1:8088`。    **说明：**    单节点部署时，通常配置为当前 OMS 社区版机器 IP。    不建议您使用 `http://127.0.0.1:8088`，因为该地址无法扩容为多地域多节点模式。 | 必选 |
   | cm_location | 地域码，取值范围为 [0,127]。每个地域一个数字，用户自行选择。 | 必选 |
   | cm_region | 地域，例如 cn-jiangsu。    **注意：**    如果是和阿里云 MSHA 产品在容灾双活场景下使用，请使用阿里云的 Region 信息作为 `cm_region`。 | 可选 |
   | cm_region_cn | 地域的中文标识。例如，江苏。 | 可选 |
   | cm_nodes | OMS 社区版集群管理服务的机器 IP 列表，本文示例为 xxx.xxx.xxx.1。 | 必选 |
   | cm_is_default | 标识是否默认 OMS 社区版集群管理服务。    **注意：**    当存在多个地域时，仅支持配置一个地域的 `cm_is_default` 为 `true`，标识默认 OMS 社区版集群管理服务。 | 可选，默认值为 `true` |
   | tsdb_enabled | 表示是否开启指标汇报的功能（监控能力），包括 `true` 或 `false`。 | 可选，默认值为 `false` |
   | tsdb_service | 表示时序数据库的类型，包括 `INFLUXDB` 和 `CERESDB`。 | 可选，默认值为 `CERESDB` |
   | tsdb_url | 部署 InfluxDB 的机器地址。当 `tsdb_enabled` 为 `true` 时，请根据实际环境修改该参数。 | 可选 |
   | tsdb_username | 时序数据库的用户名。当 `tsdb_enabled` 为 `true` 时，请根据实际环境修改该参数。 部署时序数据库后，需要您手动创建时序数据库用户，并填写用户名和密码。 | 可选 |
   | tsdb_password | 时序数据库的密码。当 `tsdb_enabled` 为 `true` 时，请根据实际环境修改该参数。 | 可选 |
 4. 加载下载的 OMS 社区版安装包至 Docker 容器的本地镜像仓库。

   ```shell
   docker load -i <OMS 社区版安装包>

   ```
 5. 执行以下命令，启动容器。

   OMS 社区版支持通过 HTTP 协议或 HTTPS 协议访问 OMS 社区版控制台。如果您想要安全访问 OMS 社区版，可以提供 HTTPS 证书，并将其挂载至容器内的指定目录。如果使用 HTTP 协议访问 OMS 社区版，则无需配置。

   ```

   | 参数 | 描述 |
   | --- | --- |
   | OMS_HOST_IP | 宿主机的 IP 地址。 |
   | CONTAINER_NAME | 创建容器的名称。格式为 oms_xxx，请根据具体版本填写 xxx。 |
   | IMAGE_TAG | 使用 Docker 加载 OMS 安装包后，通过 `docker images` 命令获取到加载的相应镜像的 [IMAGE ID] 或 [REPOSITORY:TAG]，即为相应加载后镜像的唯一标识符 `<OMS_IMAGE>`。   #### 注意    请替换 `work.oceanbase-dev.com/obartifact-store/oms:${IMAGE_TAG}` 为执行 `docker load -i` 命令实际导入的镜像名称。 |
   | /data/oms/oms_logs     /data/oms/oms_store     /data/oms/oms_run | `/data/oms/oms_logs`、`/data/oms/oms_store` 和 `/data/oms/oms_run` 可以替换为在您的 OMS 社区版部署服务器上创建的挂载目录，分别存放 OMS 社区版运行过程中产生的日志文件、日志拉取组件和同步组件生成的文件，在本机进行持久化。    **注意：**    在后续的版本重新部署、升级中，挂载目录的位置必须保持不变。 |
   | /home/admin/logs     /home/ds/store    /home/ds/run | `/home/admin/logs`、`/home/ds/store` 和 `/home/ds/run` 为容器内的固定目录，路径不可以修改。 |
   | /data/oms/https_crt（可选）    /data/oms/https_key（可选） | HTTPS 证书在 OMS 社区版容器内的挂载位置，请根据实际情况进行替换。 如果挂载了 HTTPS 证书，OMS 社区版容器内的 Nginx 服务将会运行在 HTTPS 模式下。您必须以 HTTPS 模式访问，才可以使用 OMS 社区版的控制台服务。 |
   | privileged | 为容器授予扩展权限。 |
   | pids-limit | 配置容器的进程数限制，-1 表示不限制。 |
   | ulimit nproc | 配置用户进程数的上限。 |
 6. 进入新容器。

   ```shell
   docker exec -it  ${CONTAINER_NAME} bash  

   ```

   #### 注意

   `CONTAINER_NAME` 为创建容器的名称。
 7. 在 root 目录下，执行元数据初始化操作。

   ```shell
   bash /root/docker_init.sh

   ```

   执行命令后，初始化操作的流程如下：

      1. 在元数据库中初始化数据。
      2. 生成各组件的配置文件。
      3. 重启所有组件。
      4. 初始化 OMS 社区版资源标签和资源组。

   在执行 `docker_init.sh` 时，请关注执行时命令行的输出。待执行成功后，会提示您 **【结束】全部初始化步骤执行成功**。

   #### 注意

   执行过程需要耗时 2~4 分钟，请您耐心等待，切勿中断执行。

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