OceanBase logo

OceanBase

A unified distributed database ready for your transactional, analytical, and AI workloads.

DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Resources

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS

OceanBase Cloud

OceanBase Database

Tools

Connectors and Middleware

QUICK START

OceanBase Cloud

OceanBase Database

BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Company

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

International - English
中国站 - 简体中文
日本 - 日本語
Sign In
Start on Cloud

A unified distributed database ready for your transactional, analytical, and AI workloads.

DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS
OceanBase CloudOceanBase Database
ToolsConnectors and Middleware
QUICK START
OceanBase CloudOceanBase Database
BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

Start on Cloud
编组
All Products
    • Databases
    • iconOceanBase Database
    • iconOceanBase Cloud
    • iconOceanBase Tugraph
    • iconInteractive Tutorials
    • iconOceanBase Best Practices
    • Tools
    • iconOceanBase Cloud Platform
    • iconOceanBase Migration Service
    • iconOceanBase Developer Center
    • iconOceanBase Migration Assessment
    • iconOceanBase Admin Tool
    • iconOceanBase Loader and Dumper
    • iconOceanBase Deployer
    • iconKubernetes operator for OceanBase
    • iconOceanBase Diagnostic Tool
    • iconOceanBase Binlog Service
    • Connectors and Middleware
    • iconOceanBase Database Proxy
    • iconEmbedded SQL in C for OceanBase
    • iconOceanBase Call Interface
    • iconOceanBase Connector/C
    • iconOceanBase Connector/J
    • iconOceanBase Connector/ODBC
    • iconOceanBase Connector/NET
icon

OceanBase Migration Service

V4.0.0Community Edition

  • OMS Documentation
  • What's new
  • OMS Community Edition Introduction
    • What is OMS Community Edition?
    • Limits
    • Architecture
      • Overview
      • Hierarchical functional system
      • Basic components
    • Terms
  • Quick Start
    • Data migration process
    • Data synchronization process
  • Deploy OMS Community Edition
    • Deployment type
    • System and network requirements
    • Memory and disk requirements
    • Prepare the environment
    • Deploy OMS Community Edition on a single node
    • Deploy OMS Community Edition on multiple nodes in a single region
    • Deploy OMS Community Edition on multiple nodes in multiple regions
    • Scale-out and deployment
    • Check the deployment
    • Deploy a time-series database (Optional)
  • OMS Community Edition console
    • Log on to the OMS console
    • Overview
    • User center
      • Configure user information
      • Change your logon password
      • Log off
  • Data migration
    • Data migration overview
    • Migrate data from a MySQL database to OceanBase Community Edition
    • Migrate data from OceanBase Community Edition to a MySQL database
    • Migrate data within OceanBase Community Edition
    • Migrate data within OceanBase Community Edition in active-active disaster recovery scenarios
    • Migrate data from a TiDB database to OceanBase Community Edition
    • Migrate data from a PostgreSQL database to OceanBase Community Edition
    • Manage data migration projects
      • View details of a data migration project
      • View and modify migration objects
      • Use tags to manage data migration projects
      • Download and import the settings of migration objects
      • Start, pause, and resume a data migration project
      • Release and delete a data migration project
    • Schema migration mechanisms
    • Supported DDL operations in incremental migration and limits
      • Supported DDL operations in incremental migration from a MySQL database to OceanBase Community Edition and limits
      • Supported DDL operations in incremental migration from OceanBase Community Edition to a MySQL database and limits
      • Supported DDL operations in incremental migration between MySQL tenants of OceanBase Database
    • Configure matching rules for migration objects
  • Data synchronization
    • Data synchronization overview
    • Create a project to synchronize data from OceanBase Database Community Edition to a Kafka instance
    • Create a project to synchronize data from OceanBase Database Community Edition to a RocketMQ instance
    • Manage data synchronization projects
      • View details of a data synchronization project
      • View and modify synchronization objects
      • Use tags to manage data synchronization projects
      • Download and import the settings of synchronization objects
      • Start, pause, and resume a data synchronization project
      • Release and delete a data synchronization project
    • Data formats
  • Create and manage data sources
    • Create data sources
      • Create an OceanBase-CE data source
      • Create a MySQL data source
      • Create a TiDB data source
      • Create a Kafka data source
      • Create a RocketMQ data source
      • Create a PostgreSQL data source
    • Manage data sources
      • View data source information
      • Copy a data source
      • Edit a data source
      • Delete a data source
    • Create a database user
    • User privileges
    • Enable binlogs for the MySQL database
  • OPS & Monitoring
    • O&M overview
    • Go to the overview page
    • Server
      • View server information
      • Update quotas
      • View server logs
    • Components
      • Store
        • Create a store
        • View details of a store
        • Update the configurations of a store
        • Start and pause a store
        • Destroy a store
      • Connector
        • View details of a connector
        • Start and pause a connector
        • Migrate a connector
        • Update the configurations of a connector
        • Batch O\&M
        • Delete a connector
      • JDBCWriter
        • View details of a JDBCWriter
        • Start and pause a JDBCWriter
        • Migrate a JDBCWriter
        • Update the configurations of a JDBCWriter
        • Batch O\&M
        • Delete a JDBCWriter
      • Checker
        • View the information about a checker
        • Start and pause a checker
        • Rerun and reverify a checker
        • Update the configurations of a checker
        • Delete a checker
    • O&M tickets
      • View details of an O\&M ticket
      • Skip a ticket or sub-ticket
      • Retry a ticket or sub-ticket
  • System management
    • Permission Management
      • Overview
      • Manage users
      • Manage departments
    • Alert center
      • View project alerts
      • View system alerts
      • Manage alert settings
    • Associate with OCP
    • System parameters
      • Modify system parameters
      • Modify HA configurations
  • OMS Community Edition O&M
    • Manage OMS services
    • OMS logs
    • O&M operations for the Store component
    • Store parameters
      • Parameters of a MySQL store
      • Parameters of an OceanBase store
    • O&M operations for the Supervisor component
    • Parameters of the Supervisor component
    • O&M operations for the Connector component
    • Connector parameters
      • Parameters of a destination RocketMQ instance
      • Parameters of a DataflowSink instance
      • Parameters in the destination Kafka instance
      • Parameters of the source database in full migration
      • Parameters of the source database in incremental data synchronization
      • Parameters for intermediate-layer synchronization
    • Checker parameters
    • JDBCWriter parameters
    • Parameters of the CM component
  • Reference Guide
    • API Reference
      • Obtain the status of a migration project
      • Obtain the status of a synchronization project
    • OMS error codes
    • Alert Reference
      • oms_host_down
      • oms_host_down_migrate_resource
      • oms_host_threshold
      • oms_migration_failed
      • oms_migration_delay
      • oms_sync_failed
      • oms_sync_status_inconsistent
      • oms_sync_delay
  • Upgrade Guide
    • Overview
    • Upgrade OMS in single-node deployment mode
    • Upgrade OMS in multi-node deployment mode
    • FAQ
  • FAQ
    • General O&M
      • How do I modify the resource quotas of an OMS container?
      • How do I troubleshoot the OMS server down issue?
    • Project diagnostics
      • What do I do when a store does not have data of the timestamp requested by the downstream?
      • What do I do when OceanBase Store failed to access an OceanBase cluster through RPC?
    • OPS & monitoring
      • What are the alert rules?
    • Data synchronization
      • FAQ about synchronization to a message queue
        • What are the strategies for ensuring the message order in incremental data synchronization to Kafka
    • Data migration
      • Full migration
        • FAQ about full migration
          • How do I query the ID of a checker?
          • How do I query log files of the Checker component of OMS?
          • How do I query the verification result files of the Checker component of OMS?
          • What do I do if the destination table does not exist?
      • Incremental synchronization
        • How do I skip DDL statements?
        • How do I update the configurations of a JDBCWriter?
        • How do I start or stop a JDBCWriter?
        • How do I update whitelists and blacklists?
        • What are the application scope and limits of ETL?
    • Installation and deployment
      • How do I download an image?
      • How do I upgrade Store?

Download PDF

OMS Documentation What's new What is OMS Community Edition? Limits Overview Hierarchical functional system Basic components Terms Data migration process Data synchronization process Deployment type System and network requirements Memory and disk requirements Prepare the environment Deploy OMS Community Edition on a single node Deploy OMS Community Edition on multiple nodes in a single region Deploy OMS Community Edition on multiple nodes in multiple regions Scale-out and deployment Check the deployment Deploy a time-series database (Optional) Log on to the OMS console Overview Configure user information Change your logon password Log off Data migration overview Migrate data from a MySQL database to OceanBase Community Edition Migrate data from OceanBase Community Edition to a MySQL database Migrate data within OceanBase Community Edition Migrate data within OceanBase Community Edition in active-active disaster recovery scenarios Migrate data from a TiDB database to OceanBase Community Edition Migrate data from a PostgreSQL database to OceanBase Community Edition View details of a data migration project View and modify migration objects Use tags to manage data migration projects Download and import the settings of migration objects Start, pause, and resume a data migration project Release and delete a data migration project Schema migration mechanisms Supported DDL operations in incremental migration from a MySQL database to OceanBase Community Edition and limits Supported DDL operations in incremental migration from OceanBase Community Edition to a MySQL database and limits Supported DDL operations in incremental migration between MySQL tenants of OceanBase Database Configure matching rules for migration objects Data synchronization overview Create a project to synchronize data from OceanBase Database Community Edition to a Kafka instance Create a project to synchronize data from OceanBase Database Community Edition to a RocketMQ instance View details of a data synchronization project View and modify synchronization objects Use tags to manage data synchronization projects Download and import the settings of synchronization objects Start, pause, and resume a data synchronization project Release and delete a data synchronization project Data formats Create an OceanBase-CE data source Create a MySQL data source Create a TiDB data source Create a Kafka data source Create a RocketMQ data source Create a PostgreSQL data source View data source information Copy a data source Edit a data source Delete a data source Create a database user User privileges Enable binlogs for the MySQL database O&M overview Go to the overview page View server information Update quotas View server logs View details of an O\&M ticket Skip a ticket or sub-ticket Retry a ticket or sub-ticket Overview Manage users Manage departments View project alerts View system alerts Manage alert settings Associate with OCP Modify system parameters Modify HA configurations Manage OMS services OMS logs O&M operations for the Store component Parameters of a MySQL store Parameters of an OceanBase store O&M operations for the Supervisor component Parameters of the Supervisor component O&M operations for the Connector component Parameters of a destination RocketMQ instance Parameters of a DataflowSink instance Parameters in the destination Kafka instance Parameters of the source database in full migration Parameters of the source database in incremental data synchronization Parameters for intermediate-layer synchronization Checker parameters JDBCWriter parameters Parameters of the CM component
OceanBase logo

The Unified Distributed Database for the AI Era.

Follow Us
Products
OceanBase CloudOceanBase EnterpriseOceanBase Community EditionOceanBase seekdb
Resources
DocsBlogLive DemosTraining & Certification
Company
About OceanBaseTrust CenterLegalPartnerContact Us
Follow Us

© OceanBase 2026. All rights reserved

Cloud Service AgreementPrivacy PolicySecurity
Contact Us
Document Feedback
  1. Documentation Center
  2. OceanBase Migration Service
  3. V4.0.0
iconOceanBase Migration Service
V 4.0.0Community Edition
Enterprise Edition
  • V 4.3.2
  • V 4.3.1
  • V 4.3.0
  • V 4.2.5
  • V 4.2.4
  • V 4.2.3
  • V 4.0.2
  • V 3.4.0
Community Edition
  • V 4.2.13
  • V 4.2.12
  • V 4.2.11
  • V 4.2.10
  • V 4.2.9
  • V 4.2.8
  • V 4.2.7
  • V 4.2.6
  • V 4.2.5
  • V 4.2.4
  • V 4.2.3
  • V 4.2.1
  • V 4.2.0
  • V 4.0.0
  • V 3.3.1

Upgrade OMS in multi-node deployment mode

Last Updated:2026-04-14 07:41:13  Updated
share
What is on this page
Procedure

folded

share

This topic describes how to upgrade OceanBase Migration Service (OMS) to V4.0.0-CE in multiple-node deployment mode.

Procedure

  1. If high availability (HA) is enabled, disable it first.

    1. Log on to the OMS console.

    2. In the left-side navigation pane, choose System Management > System Parameters.

    3. On the System Parameters page, find ha.config.

    4. Click the edit icon in the Value column of the parameter.

    5. In the Modify Value dialog box, set enable to false to disable HA.

  2. Back up the databases.

    1. Log on to the two hosts where the container of OMS V3.3.1-CE is deployed by using their respective IP addresses, and suspend the container.

      sudo docker stop ${CONTAINER_NAME}
      

      Notice:

      CONTAINER_NAME specifies the name of the container.

    2. Log on to the cluster management (CM) heartbeat database specified in the configuration file and delete some useless records to reduce the backup time.

      # Log on to the CM heartbeat database specified in the configuration file.
      mysql -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> -Dcm_hb_331
      
      # Delete useless records.
      # Obtain the auto-increment ID from heatbeat_sequence, which reports the heartbeat.
      delete from heatbeat_sequence where id < (select max(id) from heatbeat_sequence);
      
    3. Run the following commands to back up the rm, cm, and cm_hb databases as SQL files and make sure that the sizes of the files are not 0.

      If you have deployed databases in multiple regions, you must back up the cm_hb database in all regions. For example, if you have deployed databases in two regions, you must back up the following four databases: rm, cm, cm_hb1, and cm_hb2.

      mysqldump -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> --triggers=false rm_331 > /home/admin/rm_331.sql
      
      mysqldump -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> --triggers=false cm_331 > /home/admin/cm_331.sql
      
      mysqldump -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> --triggers=false cm_hb_331 > /home/admin/cm_hb_331.sql
      
      Parameter Description
      -h The IP address of the host from which the data is exported.
      -P The port number used to connect to the database.
      -u The username used to connect to the database.
      -p The password used to connect to the database.
      --triggers The data export trigger. The default value is false, which disables data export.
      rm_331, cm_331, and cm_hb_331 Specify to back up the rm, cm, and cm_hb databases to SQL files named in the format of database name > SQL file storage path.sql. You need to replace the values based on the actual environment.
  3. Load the downloaded OMS image file to the local image repository of the Docker container.

    docker load -i <Storage path of the OMS image>
    
  4. Start the new container of OMS V4.0.0-CE.

    You can access the OMS console by using an HTTP or HTTPS URL. To securely access the OMS console, install a self-signed SSL certificate and mount it to the specified directory in the container. The certificate is not required for HTTP access.

    Notice:

    • Before you start the container of OMS V4.0.0-CE, make sure that the three disk mounting paths of OMS are the same as those before the upgrade.
      You can run the sudo docker inspect ${CONTAINER_NAME} | grep -A5 'Binds' command to view the paths of disks mounted to the old OMS container.

    • The -e IS_UPGRADE=true parameter is provided in OMS V3.3.1-CE or later. This parameter is provided only to support OMS upgrades and must be specified when you upgrade 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 \
    # If you mount the SSL certificate in the OMS container, you must set the following two parameters.
    -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} \
    reg.docker.alibaba-inc.com/oboms/oms-all-in-one:${IMAGE_TAG}
    
    Parameter Description
    OMS_HOST_IP The IP address of the host.
    Notice:
    The value of OMS_HOST_IP is different for each node.
    CONTAINER_NAME The name of the container in the oms_xxx format.
    IMAGE_TAG The tag of the image in the feature_x.x.x-ce format. Specify x.x.x based on the actual OMS version. For example, if you use OMS V4.0.0-CE, the value is feature_4.0.0-ce.
    /data/oms/oms_logs
    /data/oms/oms_store
    /data/oms/oms_run
    You can replace /data/oms/oms_logs, /data/oms/oms_store, and /data/oms/oms_run with the mount directories created on the server where OMS is deployed. The mount directories store the logs generated during the operation of OMS and files generated by the store and synchronization components, respectively, to persistently retain the files on the server.
    Notice:
    The mount directories must remain unchanged during subsequent redeployment or upgrades.
    /home/admin/logs
    /home/ds/store
    /home/ds/run
    /home/admin/logs, /home/ds/store, and /home/ds/run are default directories in the container and cannot be modified.
    /data/oms/https_crt (optional)
    /data/oms/https_key (optional)
    The mount directory of the SSL certificate in the OMS container. If you mount an SSL certificate, the NGINX service in the OMS container runs in HTTPS mode. In this case, you can access the OMS console by using only the HTTPS URL.
    IS_UPGRADE To upgrade OMS, you must set the IS_UPGRADE parameter to true.
    privileged Specifies whether to grant extended privileges on the container.
    pids-limit Specifies whether to limit the number of container processes. The value -1 indicates that the number is unlimited.
    ulimit nproc The maximum number of user processes.
  5. Access the new container.

    docker exec -it ${CONTAINER_NAME} bash  
    

    Note:

    CONTAINER_NAME specifies the name of the container.

  6. Perform metadata initialization in the root directory.

    bash /root/docker_init.sh
    

    Note:

    • After you run the preceding command, the script automatically implements schema changes of the three OMS databases.

    • If the same configuration file is used for multiple cm_nodes in the same region, you need to execute the docker_init.sh script only once in a region.
      If different configuration files are used for multiple cm_nodes in the same region, you need to execute the docker_init.sh script once on each node.

  7. After the docker_init.sh script is executed, confirm whether the server list is normal and whether all servers are in the Online state.

    1. Log on to the OMS console.

    2. In the left-side navigation pane, choose OPS & Monitoring > Server.

    3. On the Servers page, check whether the server list is normal. Check whether all servers are in the Online state.

  8. After you upgrade OMS on two nodes, enable HA on the System Parameters page, and configure the parameters.

    1. Log on to the OMS console.

    2. In the left-side navigation pane, choose System Management > System Parameters.

    3. On the System Parameters page, find ha.config.

    4. Click the edit icon in the Value column of the parameter.

    5. In the Modify Value dialog box, set enable to true to enable HA, and record the time T2.

      You can also set the perceiveStoreClientCheckpoint parameter to true. After that, you do not need to record T1 and T2.

    6. If you set the perceiveStoreClientCheckpoint parameter to false, you need to modify the value of the refetchStoreIntervalMin parameter based on your business needs, which specifies the time interval, in minutes, for pulling data from the store component. The value must be greater than T2 minus T1.

      If you set the perceiveStoreClientCheckpoint parameter to true, you can use the default value of the refetchStoreIntervalMin parameter. HA is enabled, so the system starts the store component based on the earliest request time of downstream components minus the value of the refetchStoreIntervalMin parameter. For example, if the earliest request time of the downstream connector or JDBC-connector component is 12:00:00 and the refetchStoreIntervalMin parameter is set to 30 minutes, the system starts the store component at 11:30:00.

    The following table shows the changes in components after HA is enabled.

    Link type Link or component status before upgrade After upgrade (HA disabled) After upgrade (HA enabled)
    Migration The link and components run normally.
    • The link runs normally.
    • Exceptions occur in the Store and JDBCWriter components.
    JDBCWriter is automatically started.
    Migration The link fails.
    • The link fails.
    • Exceptions occur in the Store and JDBCWriter components.
    • JDBCWriter is automatically started.
    • You must manually recover the link.
    Synchronization The link and components run normally.
    • The link runs normally.
    • Exceptions occur in the Store and Connector components.
    • Data is pulled from the Store component at the interval specified by the refetchStoreIntervalMin parameter. The default interval is 30 minutes.
    • The Connector component is restarted.
    Synchronization
    • The link is suspended.
    • The Connector component is suspended.
    • The Store component runs normally.
    • The link is suspended.
    • The Connector component is suspended.
    • The Store component becomes abnormal.
    • Data is pulled from the Store component at the interval specified by the refetchStoreIntervalMin parameter.`` The default interval is 30 minutes.
    • The Connector component is restarted.
    • You must manually recover the link.
  9. Optional. To roll back, perform the following steps:

    1. Follow the instructions in Step 1 to disable HA.

    2. Suspend the new container and record the time T3.

      sudo docker stop ${CONTAINER_NAME}
      
    3. Connect to the MetaDB and run the following commands:

      drop database rm_331;
      drop database cm_331;
      drop database cm_hb_331;
      
      create database rm_331;
      create database cm_331;
      create database cm_hb_331;
      
    4. Recover the original databases based on the SQL files created in Step 2.

      mysql -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> -e "source /home/admin/rm_331.sql" -Drm_331
      
      mysql -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> -e "source /home/admin/cm_331.sql" -Dcm_331
      
      mysql -hxxx.xxx.xxx.1 -P<port> -u<username> -p<password> -e "source /home/admin/cm_hb_331.sql" -Dcm_hb_331
      
    5. Restart the container of OMS V3.3.1-CE.

      sudo docker restart ${CONTAINER_NAME}
      
    6. On the System Parameters page, enable HA and set the refetchStoreIntervalMin parameter.

    When you perform the rollback operation, the HA feature supports automatic disaster recovery. However, you may need to manually recover the JDBCWriter or connector component.

  10. After the upgrade is complete, clear the browser cache before you log on to OMS.

Previous topic

Upgrade OMS in single-node deployment mode
Last

Next topic

FAQ
Next
What is on this page
Procedure