首批通过分布式安全可靠测评,为关键业务系统打造
单节点升级
更新时间:2026-04-14 15:40:37
本文为您介绍如何单节点升级 OceanBase 迁移服务(OceanBase Migration Service,OMS)社区版至 V4.2.5-CE。
注意
目前仅支持 OMS 社区版 V4.2.4-CE 升级至 V4.2.5-CE,不支持 V4.2.4-CE 之前版本升级至 V4.2.5-CE。
升级步骤
备份数据库。
暂停 OMS 社区版 V4.2.4-CE 旧容器,记录时间 T1。
sudo docker stop ${CONTAINER_NAME}说明
CONTAINER_NAME为创建容器的名称。登录配置文件中的 CM 心跳库,删除数据库中部分无用记录,节省备份时间。
# 登录配置文件中的 CM 心跳库 mysql -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> -Dcm_hb_424 # 删除无用的记录 # heatbeat_sequence 用于汇报心跳,获取自增 ID delete from heatbeat_sequence where id < (select max(id) from heatbeat_sequence);执行下述命令,手工备份 rm、cm 和 cm_hb 库为 SQL 文件,并确认三个文件的大小不为 0。
mysqldump -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> --triggers=false rm_424 > /home/admin/rm_424.sql mysqldump -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> --triggers=false cm_424 > /home/admin/cm_424.sql mysqldump -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> --triggers=false cm_hb_424 > /home/admin/cm_hb_424.sql参数 描述 -h 需要导出的主机信息。 -P 连接数据库的端口号。 -u 指定连接的用户名。 -p 连接数据库的密码。 --triggers 导出触发器,默认为 false(不导出)。 rm_424、cm_424、cm_hb_424 此处为备份 rm、cm 和 cm_hb 库为 SQL 文件,格式为 库名 > 存储 SQL 文件的路径.sql,请替换为实际环境中的值。
加载下载的 OMS 社区版安装包至 Docker 容器的本地镜像仓库。
docker load -i <OMS 社区版安装包>启动 OMS 社区版 V4.2.5-CE 新容器。
OMS 社区版支持通过 HTTP 协议和 HTTPS 协议访问 OMS 社区版控制台。如果您想要安全访问 OMS 社区版,可以提供 HTTPS 证书,并将其挂载至容器内的指定目录。如果使用 HTTP 协议访问 OMS 社区版,则无需配置。
注意
启动 OMS 社区版 V4.2.5-CE 新容器时,OMS 社区版三个挂载盘的路径需要与升级前保持完全一致。
您可以执行sudo docker inspect ${CONTAINER_NAME} | grep -A5 'Binds'命令,查看之前旧 OMS 社区版容器的挂载盘路径。OMS 社区版 V3.3.1-CE 及之后版本新增参数
-e IS_UPGRADE=true。该参数仅适用于升级场景,且升级场景下必须添加该参数。请替换
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} \ -e IS_UPGRADE=true \ --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 使用 Docker 加载 OMS 社区版安装包后,通过 docker images命令获取到加载的相应镜像的 [IMAGE ID] 或 [REPOSITORY:TAG],即为相应加载后镜像的唯一标识符<OMS_IMAGE>。/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 社区版的控制台服务。 IS_UPGRADE 升级场景下,必须设置 IS_UPGRADE=true。请注意IS_UPGRADE需要为大写。privileged 为容器授予扩展权限。 pids-limit 配置容器的进程数限制,-1 表示不限制。 ulimit nproc 配置用户进程数的上限。 进入新容器。
docker exec -it ${CONTAINER_NAME} bash说明
CONTAINER_NAME为创建容器的名称。在
root目录下,执行元数据初始化操作。sleep 300 bash /root/docker_init.sh执行上述命令后,脚本会自动将 OMS 社区版三个数据库的 Schema 变更执行到数据库中。
如果执行上述命令报错
Version before 4.1.1 is not allowed to upgrade.,请进行以下操作。确认升级的 OMS 社区版不是 V4.1.1-CE 之前的版本。
在
rm库中执行下述 SQL 语句。CREATE TABLE IF NOT EXISTS `oms_version` ( `version` varchar(64) NOT NULL COMMENT '版本', `gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`version`) ) DEFAULT CHARSET = utf8mb4 COMMENT = '版本表'; REPLACE INTO `oms_version`(`version`) VALUES('x.x.x-CE'); --此处填写实际升级之前的 OMS 社区版版本号再次执行初始化命令。
docker_init.sh脚本执行完成后,请确认机器列表是否正常,且机器均处于 在线 状态。登录 OMS 社区版控制台。
在左侧导航栏,单击 运维监控 > 机器。
在 机器列表 页面,查看机器列表是否正常。同时,请确认机器的状态均为 在线。
(可选)如果您需要进行回滚操作,请执行以下步骤。
暂停升级后的新容器,记录时间 T3。
sudo docker stop ${CONTAINER_NAME}连接元数据库,执行下述命令。
drop database rm_424; drop database cm_424; drop database cm_hb_424; create database rm_424; create database cm_424; create database cm_hb_424;将第 2 步中备份的数据库 SQL 文件,还原为原数据库。
mysql -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> -e "source /home/admin/rm_424.sql" -Drm_424 mysql -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> -e "source /home/admin/cm_424.sql" -Dcm_424 mysql -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> -e "source /home/admin/cm_hb_424.sql" -Dcm_hb_424重启 OMS 社区版 V4.2.4-CE 旧容器。
sudo docker restart ${CONTAINER_NAME}
升级完成后,请先删除浏览器缓存,再进行登录。