首批通过分布式安全可靠测评,为关键业务系统打造
多地域多节点部署
更新时间:2026-04-14 15:40:56
本文为您介绍如何在多地域多节点中使用 OMS 社区版部署工具安装 OceanBase 迁移服务(OceanBase Migration Service,OMS)社区版。
背景信息
由于越来越多的用户使用 OMS 社区版进行数据迁移,OMS 社区版需要实现的用户场景也越来越多。除目前广泛使用的单地域数据迁移、大数据同步场景外,OMS 社区版还支持多个地域之间进行数据同步、异地城市之间进行数据迁移或双活同步。

多地域场景下,每个地域都可以部署一个或者多个节点。如果在某一地域部署了多个 OMS 社区版节点,它们会构成一个高可用环境。OMS 社区版会根据具体任务场景,在合适的节点上启动相应的功能组件。
例如,您需要同步杭州的数据至黑龙江。此时,OMS 社区版会在杭州的某节点上启动增量日志抓取功能组件 Store,在黑龙江的某节点上启动增量同步组件 Incr-Sync。
多节点部署的说明如下:
为了实现多节点部署,您可以先进行单节点部署,然后再扩容至多节点。详情请参见 扩容部署。
在多地域多节点部署环境中,您需要在每个地域都申请 VIP 作为 OMS 社区版管理控制台的挂载点。同时,您需要在 VIP 网络策略上配置 8088 和 8089 端口的映射规则。
申请 VIP 后,即使有 OMS 社区版节点故障,您依然可以通过 VIP 访问 OMS 社区版的管理控制台。
前提条件
已确认安装环境符合系统和网络要求,详情请参见 系统和网络要求。
已准备 MetaDB 集群作为 OMS 社区版的元信息库。
已确认在进行部署的机器能够连通多节点中其它的所有机器。
多节点部署场景下,请确保网络相互连通,并且能够通过输入用户名和密码获取到对应节点的 root 权限。
已获取 OMS 社区版安装包,通常安装包为以 oms 开头的
tar.gz文件。下载地址:OceanBase 社区版下载中心。已在每个节点的机器上,加载下载的 OMS 社区版安装包至 Docker 容器的本地镜像仓库。
docker load -i <OMS 社区版安装包>已准备一个 OMS 社区版容器挂载目录,OMS 社区版会在该目录下创建三个映射目录:
/home/admin/logs、/home/ds/store和/home/ds/run,用于存放 OMS 运行时的组件和日志信息。(可选)已准备时序数据库为 OMS 社区版存储性能监控和 DDL/DML 统计数据信息。
名词解释
在后续指南中,部分命令和提示信息存在需要您自行替换的变量名。变量名会使用 <> 包裹,解释如下:
OMS 社区版容器挂载目录:请参见前提条件中 OMS 社区版容器挂载目录的说明。
本机 IP 地址:执行脚本的宿主机的 IP 地址。在单节点场景下,会被默认解析为 CM 配置信息中的对应 IP 地址。
OMS_IMAGE:使用 Docker 加载 OMS 社区版安装包后,通过
docker images命令获取到加载的相应镜像的 [IMAGE ID] 或 [REPOSITORY:TAG],即为相应加载后镜像的唯一标识符<OMS_IMAGE>。示例如下:$sudo docker images REPOSITORY TAG IMAGE ID work.oceanbase-dev.com/obartifact-store/oms feature_4.0.0-ce 2786e8a6eccd则
<OMS_IMAGE>可以是:work.oceanbase-dev.com/obartifact-store/oms:feature_4.0.0-ce或2786e8a6eccd。在后续指南中请替换相关命令中的 <OMS_IMAGE> 为上述值。已有
config.yaml配置文件地址:如果您需要根据现有的config.yaml配置文件进行部署,该地址为现有配置文件的地址。
部署流程(无配置文件)
登录 OMS 社区版部署服务器。
(可选)部署时序数据库。
如果您需要 OMS 社区版能够收集和展示监控数据,请部署时序数据库。如果无需展示监控数据,请跳过本步骤。操作详情请参见 部署时序数据库。
执行下述命令,从加载的镜像中获取部署脚本。
sudo docker run -d --name oms-config-tool <OMS_IMAGE> bash && sudo docker cp oms-config-tool:/root/docker_remote_deploy.sh . && sudo docker rm -f oms-config-tool示例如下:
sudo docker run -d --net host --name oms-config-tool work.oceanbase-dev.com/obartifact-store/oms:feature_4.0.0-ce bash && sudo docker cp oms-config-tool:/root/docker_remote_deploy.sh . && sudo docker rm -f oms-config-tool通过部署脚本启动部署工具。
sh docker_remote_deploy.sh -o <OMS 社区版容器挂载目录> -i <本机 IP 地址> -d <OMS_IMAGE>根据工具提示完成部署,每次输入后,通过回车进入下一步。
请选择部署模式。
此处请选择 多地域 选项。
请选择您所需要进行的任务。
此处请选择 无配置文件,全新部署 OMS,从生成配置文件开始。
请输入下述 MetaDB 配置信息:
根据提示依次输入元信息数据库 URL、端口、用户名、密码配置。
请为 OMS 元数据库设置前缀。
例如,当前缀设置为 oms 时,最终创建的元数据库名分别为 oms_rm、oms_cm 和 oms_cm_hb。
请确认配置信息。
此处输入 y,表示确认上述配置信息无误。输入 n,请重新输入配置信息。
如果出现 元数据库中对应数据库名已存在!这样可以吗? 提示,说明 MetaDB 中已存在您输入的数据库名称。该情况可能是由于重复部署或执行 OMS 升级导致,请您自行确认后,输入 y 继续部署,或输入 n 重新输入配置信息。
请输入 OMS 的集群配置信息。
请输入英文地域标识。例如,cn-hangzhou。
请输入中文地域标识。例如,杭州。
请输入 OMS 社区版集群管理服务的地址,即当前地域所有 CM 机器挂载的同一个 VIP 或域名,原配置项名称为
cm-url。请输入 VIP 域名,作为
cm-url地址。您可以依次输入 URL 中 IP 地址和端口号,也可以使用英文冒号(:)相连,一次性输入 <IP地址>:<端口号>。说明
地址前的
http://前缀为可选。请依次输入本地域中所有机器的 IP 地址,使用英文逗号(,)分隔。
请为当前地域(<中文地域标识>)设置一个地域编号,范围为 [0,127]。
该编号用于区分不同的地域。
多地域部署模式下,设置是否优先访问本地域。
多地域模式下,只能有一个地域需要设置该参数为
true。如果确认优先访问本地域,请输入 y。如果无需优先访问本地域,请输入 n。请确认展示的 OMS 社区版集群配置信息。
如果确认无误,请输入 y。如果需要修改,请输入 n。
请确认是否需要对 OMS 社区版历史数据进行监控。
如果在 (可选)部署时序数据库 步骤选择部署时序数据库,请在该步输入 y,并跳转至 配置时序数据库 步骤,开启对 OMS 社区版历史数据的监控。
如果在 (可选)部署时序数据库 步骤未选择部署时序数据库,请在该步输入 n,则跳转至 是否开启审计日志功能,并配置相关 SLS 参数 步骤。此时,部署后的 OMS 社区版不具备监控历史数据的功能。
配置时序数据库。
请输入下述时序数据库的配置信息:
是否有已部署好的时序数据库服务?
请根据实际情况填写。如果有,请输入 y。如果没有,则输入 n。
请选择时序数据库的类型:选择 “INFLUXDB”。
注意
目前仅支持时序数据库 INFLUXDB。
请输入时序数据库 URL、用户名、密码等信息。
请确认展示的所有配置项信息。
如果确认无误,请输入 y。如果需要修改,请输入 n。
是否需要开启 OMS 社区版审计日志功能,并将审计日志写入 SLS 服务?
如果输入 y,表示开启审计日志功能。此时,跳转至 输入 SLS 参数信息 步骤。
如果输入 n,则正式开始部署。此时,部署后的 OMS 社区版不具备审计日志功能。
输入 SLS 参数信息。
根据提示信息输入 SLS 的各项参数配置。
请确认展示的所有配置项信息。
如果确认无误,请输入 y。如果需要修改,请输入 n。
如果配置文件检查通过,会为您展示所有的配置信息。如果确认无误,请输入 n。如果需要修改,请输入 y。
如果配置文件未检查通过,请根据提示修改配置信息。
开始依次对每个节点进行部署。
请输入节点 <节点 IP> 上预备部署 OMS 社区版容器的挂载目录:
请输入一个有较大容量的目录作为 OMS 社区版容器的挂载目录。
如果该节点是远程节点,此时会提示输入远程节点登录的用户名和密码。需要对应用户具有远程节点上 sudo 权限。
请确认部署 OMS 社区版的镜像名为 <OMS_IMAGE> 是否可以。
如果确认无误,请输入 y。如果需要修改,请输入 n。
请确认是否需要在 OMS 社区版容器中挂载 HTTPS 证书。
如果需要,请输入 y,并根据提示输入 https_key、https_crt 目录。如果不需要,请输入 n。
请确认是否需要对新的地域进行部署。
完成部署后,会进行提示:已完成地域 [<英文地域标识 1>,<英文地域标识 2>……] 的部署,需要在新的地域上进行部署吗?
如果需要部署,请输入 y,继续进行部署。如果无需部署,请输入 n,结束部署流程。
请输入 OMS 社区版的集群配置信息。
请输入英文地域标识。例如,cn-hangzhou。
请输入中文地域标识。例如,杭州。
请为当前地域(<中文地域标识>)设置一个地域编号,范围为 [0,127]。
该编号用于区分不同的地域。
显示提示信息,包含已有的地域名和地域码,确保后续输入不重复。
重复对该地域上每个节点进行部署的步骤。
如果部署失败,您可以登录至运行的 OMS 社区版容器中,查看
/home/admin/logs目录下以docker_init为前缀的.log文件,获取日志信息。如果 OMS 容器未成功启动,则无法获取日志。
部署流程(有配置文件)
登录 OMS 社区版部署服务器。
(可选)部署时序数据库。
如果您需要 OMS 社区版能够收集和展示监控数据,请部署时序数据库。如果无需展示监控数据,请跳过本步骤。操作详情请参见 部署时序数据库。
执行下述命令,从加载的镜像中获取部署脚本。
sudo docker run -d --name oms-config-tool <OMS_IMAGE> bash && sudo docker cp oms-config-tool:/root/docker_remote_deploy.sh . && sudo docker rm -f oms-config-tool通过部署脚本启动部署工具。
sh docker_remote_deploy.sh -o <OMS 社区版容器挂载目录> -c <已有 config.yaml 配置文件地址> -i <本机 IP 地址> -d <OMS_IMAGE>说明
config.yaml配置文件的设置请参见下文《配置文件的模板和示例》模块。根据工具提示完成部署,每次输入后,通过回车进入下一步。
请选择部署模式。
此处请选择 多地域 选项。
请选择您所需要进行的任务。
此处请选择 已通过脚本 [-c] 选项传入参考配置文件,基于参考配置文件开始配置。
如果出现 元数据库中对应数据库名已存在!这样可以吗? 提示,说明原配置文件的 MetaDB 中已存在您输入的数据库名称。该情况可能是由于重复部署或执行 OMS 社区版升级导致,请您自行确认后,输入 y 继续部署,或输入 n 重新输入配置信息。
如果配置文件检查通过,会为您展示所有的配置信息。如果确认无误,请输入 n。如果需要修改,请输入 y。
如果配置文件未检查通过,请根据提示修改配置信息。
开始依次对每个节点进行部署。
请输入节点 <节点 IP> 上预备部署 OMS 社区版容器的挂载目录:
请输入一个有较大容量的目录作为 OMS 社区版容器的挂载目录。
如果该节点是远程节点,此时会提示输入远程节点登录的用户名和密码。需要对应用户具有远程节点上 sudo 权限。
请确认部署 OMS 的镜像名为 <OMS_IMAGE> 是否可以。
如果确认无误,请输入 y。如果需要修改,请输入 n。
请确认是否需要在 OMS 社区版容器中挂载 HTTPS 证书。
如果需要,请输入 y,并根据提示输入 https_key、https_crt 目录。如果不需要,请输入 n。
请确认是否需要对新的地域进行部署。
完成部署后,会进行提示:已完成地域 [<英文地域标识 1>,<英文地域标识 2>……] 的部署,需要在新的地域上进行部署吗?
如果需要部署,请输入 y,继续进行部署。如果无需部署,请输入 n,结束部署流程。
请输入 OMS 社区版的集群配置信息。
请输入英文地域标识。例如,cn-hangzhou。
请输入中文地域标识。例如,杭州。
请为当前地域(<中文地域标识>)设置一个地域编号,范围为 [0,127]。
该编号用于区分不同的地域。
显示提示信息,包含已有的地域名和地域码,确保后续输入不重复。
重复对该地域上每个节点进行部署的步骤。
如果部署失败,您可以登录至运行的 OMS 容器中,查看
/home/admin/logs目录下以docker_init为前缀的.log文件,获取日志信息。如果 OMS 容器未成功启动,则无法获取日志。
部署完成后,如果您需要修改配置,请登录至运行的 OMS 社区版容器中进行以下操作:
注意
多地域多节点场景下,您需要对每个节点的配置都进行手动修改。
根据业务需求,修改
config.yaml文件。执行命令
python -m omsflow.scripts.units.oms_init_manager --init-config-file。执行命令
supervisorctl restart oms_console oms_drc_supervisor。
配置文件的模板和示例
配置文件模板
注意
对于
cm_is_default参数,多地域场景下,只能有一个地域的节点配置为true,其它地域均需要配置为false。且多节点场景下,需要依次执行命令。如果需要在杭州部署多个节点,请在
cm_nodes参数列出所有节点的 IP 地址。模板中的必填参数需要替换为您部署的目标环境的实际值。本文已将可选参数进行注释,您可以根据实际情况选择性修改。
config.yaml文件中的 Key: Value,冒号后面必须加一个空格。
本文以杭州和黑龙江地域各部署两个节点为例,为您介绍多地域多节点部署的 config.yaml 配置文件模板和示例。
在杭州部署 OMS 社区版,
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} # 填写杭州的 OMS 社区版集群配置 # 多地域多节点部署时,cm_url 需要配置为当前地域所有 CM 隶属的一个 VIP 或域名下 cm_url: ${cm_url} cm_location: ${cm_location} cm_region: ${cm_region} cm_region_cn: ${cm_region_cn} cm_is_default: true cm_nodes: - ${host_ip1} - ${host_ip2} # 时序数据库配置 # 默认值为 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 租户。 必选 oms_meta_port 元信息库的端口号。 必选 oms_meta_user 元信息库的用户名称。 必选 oms_meta_password 元信息库的用户密码。 必选 drc_rm_db 管理控制台的数据库名称。 必选 drc_cm_db 集群管理服务的数据库名称。 必选 drc_cm_heartbeat_db 集群管理服务心跳库的名称。 必选 cm_url OMS 社区版集群管理服务的地址。例如, http://VIP:8088。
说明:
多地域多节点部署时,cm_url需要配置为当前地域所有 CM 隶属的一个 VIP 或域名下。不建议您使用http://127.0.0.1:8088。
OMS 社区版控制台的访问地址为:部署 OMS 社区版的宿主机的 IP 地址:8089。例如,http(https)://xxx.xxx.xxx.1:8089。 8088 是负责调度的程序端口,8089 是网页地址的端口,此处必须使用 8088 端口。必选 cm_location 地域码,取值范围为 [0,127]。每个地域一个数字,用户自动选择。 必选 cm_region 地域,例如 cn-hangzhou。
注意:
如果是和阿里云 MSHA 产品在容灾双活场景下使用,需要使用阿里云的 Region 信息作为cm_region。必选 cm_region_cn 地域的中文标识。例如,杭州。 必选 cm_nodes OMS 社区版集群管理服务的机器 IP 列表。多节点场景下,该参数需要指定多个 IP。 必选 cm_is_default 标识是否默认 OMS 社区版集群管理服务。 可选,默认值为 truetsdb_service 表示时序数据库的类型,包括 INFLUXDB和CERESDB。可选,默认值为 CERESDBtsdb_enabled 表示是否开启指标汇报的功能(监控能力),包括 true或false。可选,默认值为 falsetsdb_url 部署 InfluxDB 的机器地址,根据实际环境修改。当 tsdb_enabled为true时,请根据实际环境修改该参数。 部署 TSDB 服务后,一套 OMS 社区版仅对应一个 TSDB 服务。多个地域部署时,需要指向同一个 TSDB 服务。可选 tsdb_username 时序数据库的用户名。当 tsdb_enabled为true时,请根据实际环境修改该参数。 部署时序数据库后,需要您手动创建时序数据库用户,并填写用户名和密码。可选 tsdb_password 时序数据库的密码。当 tsdb_enabled为true时,请根据实际环境修改该参数。可选 在黑龙江部署 OMS 社区版,
config.yaml配置文件模板如下:在黑龙江和杭州部署 OMS 的操作一致,您只需要修改
config.yaml文件,不同的配置项是drc_cm_heartbeat_db、cm_url、cm_location、cm_region、cm_region_cn、cm_is_default和cm_nodes。注意
对于
cm_is_default参数,多地域场景下,只能有一个地域的节点配置为true,其它地域均需要配置为false。如果需要在黑龙江部署多个节点,请在
cm_nodes参数处列出所有节点的 IP 地址。每个地域至少需要在一个节点上执行
docker_init.sh。
# OMS 社区版元数据库信息 oms_meta_host: ${meta_ip} oms_meta_port: ${meta_port} oms_meta_user: ${meta_user} oms_meta_password: ${meta_password} # 用户可以自定义以下三个数据库的名称,OMS 社区版部署时会在元信息库中创建出这三个数据库 drc_rm_db: ${drc_rm_db} drc_cm_db: ${drc_cm_db} drc_cm_heartbeat_db: ${drc_cm_heartbeat_db} # 填写黑龙江的 OMS 社区版集群配置 # 多地域多节点部署时,cm_url 需要配置为当前地域所有 CM 隶属的一个 VIP 或域名下 cm_url: ${cm_url} cm_location: ${cm_location} cm_region: ${cm_region} cm_region_cn: ${cm_region_cn} cm_is_default: false cm_nodes: - ${host_ip1} - ${host_ip2} # 时序数据库配置 # tsdb_service: 'INFLUXDB' # 默认值为 false,请根据实际情况填写 # tsdb_enabled: false # 部署 InfluxDB 的机器地址 # 当 tsdb_enabled 为 true 时,请根据实际环境修改下述参数 # tsdb_url: ${tsdb_url} # tsdb_username: ${tsdb_user} # tsdb_password: ${tsdb_password}
配置文件示例
在杭州部署 OMS 社区版,
config.yaml配置文件示例如下:oms_meta_host: xxx.xxx.xxx.1 oms_meta_port: 2883 oms_meta_user: oms_meta_user oms_meta_password: ******* drc_rm_db: oms_rm drc_cm_db: oms_cm drc_cm_heartbeat_db: oms_cm_heartbeat cm_url: http://VIP:8088 cm_location: 1 cm_region: cn-hangzhou cm_region_cn: 杭州 cm_is_default: true cm_nodes: - xxx.xxx.xxx.2 - xxx.xxx.xxx.3 tsdb_service: 'INFLUXDB' tsdb_enabled: true tsdb_url: 'xxx.xxx.xxx.5:8086' tsdb_username: username tsdb_password: ********在黑龙江部署 OMS 社区版,
config.yaml配置文件示例如下:oms_meta_host: xxx.xxx.xxx.1 oms_meta_port: 2883 oms_meta_user: oms_meta_user oms_meta_password: ********* drc_rm_db: oms_rm drc_cm_db: oms_cm drc_cm_heartbeat_db: oms_cm_heartbeat_1 cm_url: http://xxx.xxx.xxx.6:8088 cm_location: 2 cm_region: cn-heilongjiang cm_region_cn: 黑龙江 cm_is_default: false cm_nodes: - xxx.xxx.xxx.6 - xxx.xxx.xxx.7 tsdb_service: 'INFLUXDB' tsdb_enabled: true tsdb_url: 'xxx.xxx.xxx.5:8086' tsdb_username: username tsdb_password: ********