---
title: "单节点部署 | OceanBase 文档中心"
description: 单节点部署 本文为您介绍如何在单节点中安装 OceanBase 迁移服务（OceanBase Migration Service，OMS）。 前提条件 确认安装环境符合系统要求，详情请参见 系统要求 。 已准备 MetaDB 集群作为 OMS 的元信息库。 已获取 OMS 安装包，通常安装包为以 oms 开头的 ta…
---
切换语言

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

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

# 单节点部署

更新时间：2023-12-11 16:50:36

本文为您介绍如何在单节点中安装 OceanBase 迁移服务（OceanBase Migration Service，OMS）。

## 前提条件

- 确认安装环境符合系统要求，详情请参见 [系统要求](https://www.oceanbase.com/docs/enterprise-oms-doc-cn-10000000000374591)。
 - 已准备 MetaDB 集群作为 OMS 的元信息库。
 - 已获取 OMS 安装包，通常安装包为以 oms 开头的 `tar.gz` 文件。

## 操作步骤

1. 登录 OMS 部署机。
 2. （可选）部署时序数据库。

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

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

   请注意将必填参数替换为您部署的目标环境的实际值。本文已将可选参数进行注释，您可以根据实际情况选择性修改。

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

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

       # 用户可以自定义以下三个数据库的名称，OMS 部署时会在元信息库中创建出这三个数据库
       drc_rm_db: ${drc_rm_db}
       drc_cm_db: ${drc_cm_db}
       drc_cm_heartbeat_db: ${drc_cm_heartbeat_db}

       # 用于消费 OceanBase 增量的用户
       # 当需要从 OceanBase 数据库消费增量日志时，请在 sys 租户下创建用户
       # drc user 需要在待迁移的 OceanBase 集群 sys 租户下创建，然后在 OMS 的 config.yaml 文件中指定
       drc_user: ${drc_user}
       drc_password: '${drc_password}'

       # OMS 集群配置
       # 单节点部署时，通常配置为当前 OMS 机器 IP（建议使用内网 IP）
       cm_url: ${cm_url}
       cm_location: ${cm_location}
       # 单节点部署时，无需设置 cm_region
       # cm_region: ${cm_region}
       # 单节点部署时，无需设置 cm_region_cn
       # cm_region_cn: ${cm_region_cn}
       cm_is_default: true
       cm_nodes:
        - ${cm_nodes}

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

       ```

       | 参数 | 描述 | 是否必选 |
       | --- | --- | --- |
       | oms_meta_host | 元信息库的 IP 地址，可以是 MySQL 或 OceanBase 数据库 MySQL 租户。    **注意：**    OceanBase 数据库需要是 2.0 及以上版本。 | 必选 |
       | oms_meta_port | 元信息库的端口号。 | 必选 |
       | oms_meta_user | 元信息库的用户名称。 | 必选 |
       | oms_meta_password | 元信息库的用户密码。 | 必选 |
       | drc_rm_db | 管理控制台的数据库名称。 | 必选 |
       | drc_cm_db | 集群管理服务的元数据库名称。 | 必选 |
       | drc_cm_heartbeat_db | 集群管理服务的心跳库的名称。 | 必选 |
       | drc_user | 用于读取 OceanBase 数据库增量日志的账号名称，需要在 sys 租户下创建该用户。详情请参见 OMS 用户指南中的《用户权限说明》。 | 必选 |
       | drc_password | `drc_user` 账号对应的密码。 | 必选 |
       | 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 列表。 | 必选 |
       | cm_is_default | 标识是否默认 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` 时，请根据实际环境修改该参数。 | 可选 |
      - `config.yaml` 配置文件示例如下：

       ```yaml
       oms_meta_host: xxx.xxx.xxx.1
       oms_meta_port: 2883
       oms_meta_user: root@oms****
       oms_meta_password: oms
       drc_rm_db: oms_rm
       drc_cm_db: oms_cm
       drc_cm_heartbeat_db: oms_cm_heartbeat
       drc_user: oms_drc_user_name
       drc_password: 'Ocea****'
       cm_url: http://xxx.xxx.xxx.2:8088
       cm_location: 100
       cm_region: cn-anhui
       cm_region_cn: 安徽
       cm_is_default: true
       cm_nodes:
        - xxx.xxx.xxx.2
       tsdb_service: 'INFLUXDB'
       tsdb_enabled: true
       tsdb_url: 'xxx.xxx.xxx.4:8086'
       tsdb_username: username
       tsdb_password: 123****

       ```
 4. 加载下载的 OMS 镜像文件至 Docker 容器的本地镜像仓库。

   ```shell
   docker load -i <OMS 镜像路径>

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

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

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

   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}

   ```

   | 参数 | 描述 |
   | --- | --- |
   | OMS_HOST_IP | 宿主机的 IP 地址。 |
   | CONTAINER_NAME | 创建容器的名称。格式为 oms_xxx，请根据具体版本填写 xxx。例如，使用 OMS V3.1.0，则填写 oms_310。 |
   | IMAGE_TAG | 镜像 TAG。您可以在宿主机上加载镜像后，运行 `docker images` 语句查看。 镜像 TAG 的格式为 feature_x.x.x，请根据具体版本填写 x.x.x。例如，使用 OMS V3.1.0，则填写 feature_3.1.0。 |
   | /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` 为创建容器的名称。格式为 oms_xxx，请根据具体版本填写 xxx。例如，使用 OMS V3.1.0，则填写 oms_310。
 7. 在 root 目录下，执行元数据初始化操作。

   ```shell
   bash /root/docker_init.sh

   ```

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

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

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

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

   当元数据库为 OceanBase 数据库 MySQL 租户时，可能出现报错 `ERROR 1235 (0A000): Modify large text/lob column not supported`，直接忽略即可。

   `docker_init.sh` 脚本输出的信息如下所示：

   ```shell
   ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   # 【步骤一】校验 config.yaml 配置文件
   ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   python -m omsflow.scripts.units.oms_cluster_config --check /home/admin/conf/config.yaml

   ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   # 【步骤二】创建 OMS 元信息库
   ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   python -m omsflow.scripts.units.oms_init_manager --init-db

   ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   # 【步骤三】创建 OMS 各组件的配置文件
   ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   python -m omsflow.scripts.units.oms_init_manager --init-config-file

   ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   # 【步骤四】重启 OMS 所有组件 (大约需要两分钟，请耐心等待)
   ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   supervisorctl restart crond nginx oms_console oms_drc_cm oms_drc_supervisor sshd
   supervisorctl status crond nginx oms_console oms_drc_cm oms_drc_supervisor sshd
   supervisorctl status crond nginx oms_console oms_drc_cm oms_drc_supervisor sshd

   ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   # 【步骤五】初始化 OMS 资源标签和资源组
   ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   python -m omsflow.scripts.units.oms_cluster_manager add_resource

   ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   # 【结束】全部初始化步骤执行成功
   ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

   ```

部署完成后，如果您需要修改配置，请登录至运行的 OMS 容器中进行以下操作：

1. 根据业务需求，修改 `config.yaml` 文件。
 2. 执行命令 `python -m omsflow.scripts.units.oms_init_manager --init-config-file`。
 3. 执行命令 `supervisorctl restart oms_console oms_drc_supervisor`。

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