---
title: "单节点升级 | OceanBase 文档中心"
description: 单节点升级 本文为您介绍如何单节点升级 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。 升级…
---
切换语言

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

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

# 单节点升级

更新时间：2026-04-14 15:40:37

[编辑](https://github.com/oceanbase/oms-doc/edit/V4.2.5/zh-CN/1300.upgrade-guide/200.single-node-upgrade.md)  

本文为您介绍如何单节点升级 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。

## 升级步骤

1. 备份数据库。

      1. 暂停 OMS 社区版 V4.2.4-CE 旧容器，记录时间 T1。

        ```shell
        sudo docker stop ${CONTAINER_NAME}

        ```

        #### 说明

        `CONTAINER_NAME` 为创建容器的名称。
      2. 登录配置文件中的 CM 心跳库，删除数据库中部分无用记录，节省备份时间。

        ```shell
        # 登录配置文件中的 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);

        ```
      3. 执行下述命令，手工备份 rm、cm 和 cm_hb 库为 SQL 文件，并确认三个文件的大小不为 0。

        ```shell
        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`，请替换为实际环境中的值。 |
 2. 加载下载的 OMS 社区版安装包至 Docker 容器的本地镜像仓库。

   ```shell
   docker load -i <OMS 社区版安装包>

   ```
 3. 启动 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` 命令实际导入的镜像名称。  

   ```shell
   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 | 配置用户进程数的上限。 |
 4. 进入新容器。

   ```shell
   docker exec -it ${CONTAINER_NAME} bash  

   ```

   #### 说明

   `CONTAINER_NAME` 为创建容器的名称。
 5. 在 `root` 目录下，执行元数据初始化操作。

   ```shell
   sleep 300
   bash /root/docker_init.sh

   ```

   执行上述命令后，脚本会自动将 OMS 社区版三个数据库的 Schema 变更执行到数据库中。

   如果执行上述命令报错 `Version before 4.1.1 is not allowed to upgrade.`，请进行以下操作。

      1. 确认升级的 OMS 社区版不是 V4.1.1-CE 之前的版本。
      2. 在 `rm` 库中执行下述 SQL 语句。

        ```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 社区版版本号

        ```
      3. 再次执行初始化命令。
 6. `docker_init.sh` 脚本执行完成后，请确认机器列表是否正常，且机器均处于 **在线** 状态。

      1. 登录 OMS 社区版控制台。
      2. 在左侧导航栏，单击 **运维监控** > **机器**。
      3. 在 **机器列表** 页面，查看机器列表是否正常。同时，请确认机器的状态均为 **在线**。
 7. （可选）如果您需要进行回滚操作，请执行以下步骤。

      1. 暂停升级后的新容器，记录时间 T3。

        ```
      2. 连接元数据库，执行下述命令。

        ```shell
        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;

        ```
      3. 将第 2 步中备份的数据库 SQL 文件，还原为原数据库。

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

        ```
      4. 重启 OMS 社区版 V4.2.4-CE 旧容器。

        ```shell
        sudo docker restart ${CONTAINER_NAME}

        ```
 8. 升级完成后，请先删除浏览器缓存，再进行登录。

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