首批通过分布式安全可靠测评,为关键业务系统打造
扩容部署
更新时间:2026-04-14 15:36:11
本文为您介绍如何进行单地域和单节点扩容,以及单地域多节点扩容。
单节点扩容为多节点
单节点扩容为多节点包括两种场景:
初始节点配置的 cm_url 为 VIP
初始节点配置的 cm_url 为物理机 IP
初始环境配置的 cm_url 为 VIP
具体操作步骤,与您最初进行单节点部署时的各步骤保持一致即可。详情请参见 单节点部署。
注意
启动容器时,-e OMS_HOST_IP 的值需要配置为当前机器的 IP。
以初始节点的 cm_nodes 为 xxx.xxx.xxx.1,扩容节点的 cm_nodes 为 xxx.xxx.xxx.2 为例,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}
# 单节点扩容为多节点时,以下三个数据库的名称请与初始节点的配置保持一致
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。
配置好 VIP、SLB 或域名,绑定当前地域下所有的物理机 IP 地址。
例如,VIP 绑定的物理机 IP 地址为 xxx.xxx.xxx.1 和 xxx.xxx.xxx.2。
停止原容器内的进程,以 oms_330 容器为例。
sudo docker exec -it oms_330 bash supervisorctl stop all以数据库
drc_rm_db和表cluster_info为例。登录数据库,进行下述操作。查询
cluster_info中的数据作为备份。select * from cluster_info;删除
cluster_info中的数据。delete from cluster_info;
修改 oms_330 容器中的配置文件。
# /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重新进行初始化操作。
sudo sh /root/docker_init.sh初始化完成后,确认数据库中表
cluster_info的cm_url地址是否符合预期为 VIP 地址。复制一份相同的配置文件,在另外一台机器上启动 OMS 社区版容器。
注意
启动容器时,
-e OMS_HOST_IP的值需要配置为当前机器的 IP。请替换
work.oceanbase-dev.com/obartifact-store/oms:${IMAGE_TAG}为执行docker load -i命令实际导入的镜像名称。
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 等参数为新地域的配置。
登录 OMS 社区版部署服务器。
(可选)部署时序数据库。
如果您需要 OMS 社区版能够收集和展示监控数据,请部署时序数据库。如果无需展示监控数据,请跳过本步骤。操作详情请参见 部署时序数据库。
准备配置文件。
在适当的目录下编辑 OMS 社区版启动配置文件。例如,您可以将配置文件创建为
/root/config.yaml。请注意将必填参数替换为您部署的目标环境的实际值。以扩容机器 xxx.xxx.xxx.xx1,地域江苏为例,
config.yaml文件的配置如下。注意
config.yaml文件中的 Key: Value,冒号后面必须加一个空格。# 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 # 时序数据库配置 # 默认值为 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 集群管理服务的心跳库的名称。请使用新名称,以区别于初始节点的 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 社区版集群管理服务。可选,默认值为 truetsdb_enabled 表示是否开启指标汇报的功能(监控能力),包括 true或false。可选,默认值为 falsetsdb_service 表示时序数据库的类型,包括 INFLUXDB和CERESDB。可选,默认值为 INFLUXDBtsdb_url 部署 InfluxDB 的机器地址。当 tsdb_enabled为true时,请根据实际环境修改该参数。可选 tsdb_username 时序数据库的用户名。当 tsdb_enabled为true时,请根据实际环境修改该参数。 部署时序数据库后,需要您手动创建时序数据库用户,并填写用户名和密码。可选 tsdb_password 时序数据库的密码。当 tsdb_enabled为true时,请根据实际环境修改该参数。可选 加载下载的 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 创建容器的名称。格式为 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 配置用户进程数的上限。 进入新容器。
docker exec -it ${CONTAINER_NAME} bash注意
CONTAINER_NAME为创建容器的名称。在 root 目录下,执行元数据初始化操作。
bash /root/docker_init.sh执行命令后,初始化操作的流程如下:
在元数据库中初始化数据。
生成各组件的配置文件。
重启所有组件。
初始化 OMS 社区版资源标签和资源组。
在执行
docker_init.sh时,请关注执行时命令行的输出。待执行成功后,会提示您 【结束】全部初始化步骤执行成功。注意
执行过程需要耗时 2~4 分钟,请您耐心等待,切勿中断执行。
单地域多节点扩容
初始环境配置的是单地域两节点,cm_url 为 VIP
本文以 OMS 社区版 V4.2.7-CE 为例,为您介绍单地域多节点的扩容 docker_remote_deploy.sh。
拉取 OMS 社区版 V4.2.7-CE 镜像,从加载的镜像中获取部署脚本。
sudo docker pull <OMS_IMAGE> sudo docker run -d --net host --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 sh docker_remote_deploy.sh -o <OMS 容器挂载目录> -i <本机 IP 地址> -d <OMS_IMAGE>根据工具提示完成单地域两节点的部署。详情请参见 单地域多节点部署。
等待初始化步骤执行成功,登录 OMS 社区版控制台进行确认。
扩容步骤
以初始节点配置的 cm_url 为 VIP http://xxx.xxx.xxx.1:1188,扩容节点的 cm_nodes 为 xxx.xxx.xxx.2 为例,单地域多节点的扩容步骤如下。
配置好 VIP、SLB 或域名,绑定添加新扩容的节点。
复制一份相同的配置文件到扩容机器上,在复制的
config.yaml配置文件中的cm_nodes参数下添加需要扩容的节点 xxx.xxx.xxx.2。执行启动容器的命令。
OMS_HOST_IP=xxx.xxx.xxx.2 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 地址。该参数的值需要配置为当前扩容机器的 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 配置用户进程数的上限。 进入容器。
docker exec -it ${CONTAINER_NAME} bash在
root目录,执行元数据初始化操作。bash /root/docker_init.sh等待初始化步骤执行成功,登录 OMS 社区版控制台进行确认。