基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
单节点部署
更新时间:2026-04-14 15:40:44
本文为您介绍如何在单节点中安装 OceanBase 迁移服务(OceanBase Migration Service,OMS)社区版。
前提条件
确认安装环境符合系统要求,详情请参见 系统要求。
已准备 MetaOB 集群作为 OMS 社区版的元信息库。
已下载 OMS 社区版的安装包,通常安装包为以 oms 开头的
tar.gz文件。下载地址:OceanBase 社区版下载中心。
操作步骤
登录 OMS 社区版部署机。
(可选)部署时序数据库。
如果您需要 OMS 社区版能够收集和展示监控数据,请部署时序数据库。如果无需展示监控数据,请跳过本步骤。操作详情请参见 部署时序数据库。
准备配置文件。
在适当的目录下编辑 OMS 社区版启动配置文件。例如,您可以将配置文件创建为
/root/config.yaml。请注意将必填参数替换为您部署的目标环境的实际值。本文已将可选参数进行注释,您可以根据实际情况选择性修改。
注意:
config.yaml文件中的 Key: Value,冒号后面必须加一个空格。config.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 社区版。 必选 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。
OMS 社区版控制台的访问地址为:部署 OMS 社区版的宿主机的 IP 地址:8089。例如,http(https)://xxx.xxx.xxx.1:8089。
8088 是负责调度的程序端口,8089 是网页地址的端口。必选 cm_location 地域码,取值范围为 [0,127]。每个地域一个数字,用户自行选择。 必选 cm_region 地域,例如 cn-jiangsu。
注意:
如果是和阿里云 MSHA 产品在容灾双活场景下使用,请使用阿里云的 Region 信息作为cm_region。可选 cm_region_cn 地域的中文标识。例如,江苏。 可选 cm_nodes OMS 社区版集群管理服务的机器 IP 列表。 必选 cm_is_default 标识是否默认 OMS 社区版集群管理服务。 可选,默认值为 truetsdb_enabled 表示是否开启指标汇报的功能(监控能力),包括 true或false。可选,默认值为 falsetsdb_service 表示时序数据库的类型,包括 INFLUXDB和CERESDB。可选,默认值为 CERESDBtsdb_url 部署 InfluxDB 的机器地址。当 tsdb_enabled为true时,请根据实际环境修改该参数。可选 tsdb_username 时序数据库的用户名。当 tsdb_enabled为true时,请根据实际环境修改该参数。 部署时序数据库后,需要您手动创建时序数据库用户,并填写用户名和密码。可选 tsdb_password 时序数据库的密码。当 tsdb_enabled为true时,请根据实际环境修改该参数。可选 config.yaml配置文件示例如下:oms_meta_host: xxx.xxx.xxx.1 oms_meta_port: 2883 oms_meta_user: root@om**** oms_meta_password: oms drc_rm_db: oms_rm drc_cm_db: oms_cm drc_cm_heartbeat_db: oms_cm_heartbeat drc_user: drc_user_name drc_password: 'Ocean****' 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****
加载下载的 OMS 社区版镜像文件至 Docker 容器的本地镜像仓库。
docker load -i <OMS 社区版镜像路径>执行以下命令,启动容器。
OMS 社区版支持通过 HTTP 协议或 HTTPS 协议访问 OMS 社区版控制台。如果您想要安全访问 OMS 社区版,可以提供 HTTPS 证书,并将其挂载至容器内的指定目录。如果使用 HTTP 协议访问 OMS 社区版,则无需配置。
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}参数 描述 OMS_HOST_IP 宿主机的 IP 地址。 CONTAINER_NAME 创建容器的名称。 IMAGE_TAG 镜像 TAG。您可以在宿主机上加载镜像后,运行 docker images语句查看。镜像 TAG 的格式为 feature_x.x.x-ce,请根据具体版本填写 x.x.x。/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 配置用户进程数的上限。 进入新容器。
docker exec -it ${CONTAINER_NAME} bash注意:
CONTAINER_NAME为创建容器的名称。在 root 目录下,执行元数据初始化操作。
bash /root/docker_init.sh执行命令后,初始化操作的流程如下:
在元数据库中初始化数据。
生成各组件的配置文件。
重启所有组件。
初始化 OMS 社区版资源标签和资源组。
在执行
docker_init.sh时,请关注执行时命令行的输出。待执行成功后,会提示您 【结束】全部初始化步骤执行成功。注意:
执行过程需要耗时 2~4 分钟,请您耐心等待,切勿中断执行。
当元数据库为 OceanBase 社区版时,可能出现报错
ERROR 1235 (0A000): Modify large text/lob column not supported,直接忽略即可。docker_init.sh脚本输出的信息如下所示:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- # 【步骤一】校验 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 容器中进行以下操作:
根据业务需求,修改
config.yaml文件。执行命令
python -m omsflow.scripts.units.oms_init_manager --init-config-file。执行命令
supervisorctl restart oms_console oms_drc_supervisor。