OceanBase provides the data transmission service to support data exchange between a homogeneous or heterogeneous relational database management system (RDBMS) and OceanBase Database. The data transmission service provides the capabilities for online migration of existing data and real-time synchronization of incremental data.
Features
The data transmission service provides a visualized and centralized management platform. You can migrate data in real time with simple configurations. The data transmission service aims to help you achieve real-time data migration and synchronization from homogeneous or heterogeneous databases to OceanBase Database at a low cost and low risk.
Data migration: A data migration project is a one-time task. After a data migration project is completed, resources occupied by the project are released. You can create a data migration project to migrate data between homogeneous or heterogeneous data sources in business scenarios such as database upgrades, cross-instance data migration, database splitting, and database scaling.
Data migration projects are the basic unit of the data migration feature. When you create a data migration project, you can specify the migration level, which ranges from table to database. For more information, see Data migration.
Data synchronization: Data synchronization is a continuous operation. After a data synchronization project is created, data will be synchronized continuously to ensure consistency between the source and destination databases as well as the real-time flow of data of key business systems. You can create a data synchronization project to synchronize data between data sources in real time in business scenarios, such as multi-site high availability, remote disaster recovery, data aggregation, and real-time data warehousing. For more information, see Data synchronization.
Supported migration types
Abbreviations
Instance type | Abbreviation |
Self-managed database in VPC | VPC |
Database Gateway | DG |
Self-managed database with public IP address | Public network |
MySQL tenant of OceanBase Database | OB_MySQL |
Oracle tenant of OceanBase Database | OB_Oracle |
Data migration
At present, migration from an Oracle database to a MySQL tenant of OceanBase Database and from a MySQL database to an Oracle tenant of OceanBase Database is not supported.
Direction | Schema migration | Full migration | Incremental synchronization | Full verification | Reverse incremental migration | Table without a primary key |
MySQL (RDS) -> OB_MySQL (cluster instance) | Supported | Supported | Supported | Supported | Supported | Supported |
MySQL (RDS) -> OB_MySQL (tenant instance) | Supported | Supported | Supported | Supported | Supported | Supported |
MySQL (PolarDB) -> OB_MySQL (cluster instance) | Supported | Supported | Supported | Supported | Supported | Supported |
MySQL (PolarDB) -> OB_MySQL (tenant instance) | Supported | Supported | Supported | Supported | Supported | Supported |
MySQL (public network) -> OB_MySQL (cluster instance) | Supported | Supported | Supported | Supported | Supported | Supported |
MySQL (public network) -> OB_MySQL (tenant instance) | Supported | Supported | Supported | Supported | Supported | Supported |
MySQL (VPC) -> OB_MySQL (cluster instance) | Supported | Supported | Supported | Supported | Supported | Supported |
MySQL (VPC) -> OB_MySQL (tenant instance) | Supported | Supported | Supported | Supported | Supported | Supported |
MySQL (DG) -> OB_MySQL (cluster instance) | Supported | Supported | Supported | Supported | Supported | Supported |
MySQL (DG) -> OB_MySQL (tenant instance) | Supported | Supported | Supported | Supported | Supported | Supported |
Oracle (DG) -> OB_Oracle (cluster instance) | Supported | Supported | Supported | Supported | Not supported | Supported |
Oracle (public network) -> OB_Oracle (cluster instance) | Supported | Supported | Supported | Supported | Not supported | Supported |
Oracle (VPC) -> OB_Oracle (cluster instance) | Supported | Supported | Supported | Supported | Not supported | Supported |
OB_MySQL (cluster instance) -> MySQL (RDS) | Supported | Supported | Supported | Supported | Supported | Not supported |
OB_MySQL (cluster instance) -> MySQL (PolarDB) | Supported | Supported | Supported | Supported | Supported | Not supported |
OB_MySQL (cluster instance) -> MySQL (public network) | Supported | Supported | Supported | Supported | Supported | Not supported |
OB_MySQL (cluster instance) -> MySQL (VPC) | Supported | Supported | Supported | Supported | Supported | Not supported |
OB_MySQL (cluster instance) -> MySQL (DG) | Supported | Supported | Supported | Supported | Supported | Not supported |
OB_Oracle (cluster instance) -> MySQL (RDS) | Not supported | Not supported | Supported | Not supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> MySQL (PolarDB) | Not supported | Not supported | Supported | Not supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> MySQL (public network) | Not supported | Not supported | Supported | Not supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> MySQL (VPC) | Not supported | Not supported | Supported | Not supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> MySQL (DG) | Not supported | Not supported | Supported | Not supported | Not supported | Not supported |
OB_MySQL (cluster instance) -> OB_MySQL (cluster instance) | Supported | Supported | Supported | Supported | Supported | Supported |
OB_MySQL (cluster instance) -> OB_MySQL (VPC) | Supported | Supported | Supported | Supported | Supported | Supported |
OB_MySQL (VPC) -> OB_MySQL (cluster instance) | Supported | Supported | Supported | Supported | Supported | Supported |
OB_Oracle (cluster instance) -> OB_Oracle (cluster instance) | Supported | Supported | Supported | Supported | Supported | Supported |
OB_Oracle (cluster instance) -> OB_Oracle (VPC) | Supported | Supported | Supported | Supported | Supported | Supported |
OB_Oracle (VPC) -> OB_Oracle (cluster instance) | Supported | Supported | Supported | Supported | Supported | Supported |
TiDB (public network) -> OB_MySQL (cluster instance) | Supported | Supported | Supported | Supported | Supported | Not supported |
TiDB (VPC) -> OB_MySQL (cluster instance) | Supported | Supported | Supported | Supported | Supported | Not supported |
PolarDB-X 1.0 -> OB_MySQL (cluster instance) | Not supported | Supported | Supported | Supported | Not supported | Supported |
PolarDB-X 2.0 -> OB_MySQL (cluster instance) | Supported | Supported | Supported | Supported | Supported | Supported |
Migration types
Migration type | Description |
Schema migration | The definitions of data objects, such as tables, indexes, constraints, comments, and views, are migrated from the source database to the destination database. Temporary tables are automatically filtered out. If the source database is not an OceanBase database, the data transmission service performs format conversion and encapsulation based on the syntax definition and standard of the type of the destination tenant of OceanBase Database and then replicates the data to the destination database. |
Full migration | The existing data is migrated from tables in the source database to the corresponding tables in the destination database. On the Full Migration page, you can filter objects by source and destination databases, or select View Objects with Errors to filter out objects that hinder the overall migration progress. You can view Tables, Table Indexes, and Full Load Performance. The status of the full migration task changes to Completed only after the table objects and table indexes are migrated. |
Incremental synchronization | Changed data in the source database is synchronized to the corresponding tables in the destination database after an incremental synchronization task starts. Data changes are data addition, modification, and deletion. When services continuously write data to the source database, the data transmission service starts the incremental data pull module to pull incremental data from the source instance, parses and encapsulates the incremental data, and then stores the data. After that, the data transmission service starts the full data migration. After the full data migration task is completed, the data transmission service starts the incremental data replay module to pull incremental data from the incremental data pull module. The incremental data is synchronized to the destination instance after being filtered, mapped, and converted. |
Full verification | After the full data migration and incremental data migration are completed, the data transmission service automatically initiates a full data verification task to verify the data tables in the source and destination data sources. You can also initiate custom data verification tasks in the incremental data synchronization process. On the Full Verification page, you can view the overall status, start time, end time, total consumed time, estimated total number of rows, number of migrated rows, real-time traffic, and RPS of the full verification task. |
Forward switchover | Forward switchover is an abstract and standard process of traditional system cutover and does not involve the switchover of application connections. This process includes a series of tasks that are performed for the application switchover in a data migration project. You need to make sure that the entire forward switchover process is completed before the application connections are switched over to the destination database. Forward switchover will be performed if you choose to perform data migration. During forward switchover, you need to terminate forward incremental synchronization, delete the additional columns and unique indexes that the migration depends on, add the CHECK constraint that was filtered out by the data transmission service during the synchronization, and activate the triggers and foreign keys in the destination database to ensure the data integrity and availability of the destination database. Objects such as triggers and foreign keys are disabled before the migration to avoid data inconsistency. If reverse incremental migration is configured, the subtasks for starting reverse incremental migration and disabling triggers and foreign keys in the source database are included in the forward switchover process. This enables you to start real-time incremental synchronization from the destination database to the source database. This ensures that the business data flows back to the source database and allows application switchover at any time. |
Reverse incremental migration | In business cutover scenarios, after the migration is completed, you can start an incremental synchronization project in a reverse direction. That is, you can synchronize the destination database to the source database before the business database switchover. In this way, you can apply data changes made after the switchover in the destination database to the source business database in real time. |
Data synchronization
Direction | Schema synchronization | Full synchronization | Incremental synchronization | Data verification | Table without a primary key |
OB_MySQL (cluster instance) -> OB_MySQL (cluster instance) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (cluster instance) -> OB_MySQL (VPC) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (VPC) -> OB_MySQL (cluster instance) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (cluster instance) -> ADB | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (cluster instance) -> DataHub (Alibaba Cloud instance) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (cluster instance) -> DataHub (VPC) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (cluster instance) -> DataHub (public network) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (VPC) -> DataHub (Alibaba Cloud instance) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (VPC) -> DataHub (VPC) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (VPC) -> DataHub (public network) | Supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> DataHub (Alibaba Cloud instance) | Supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> DataHub (VPC) | Supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> DataHub (public network) | Supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (VPC) -> DataHub (Alibaba Cloud instance) | Supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (VPC) -> DataHub (VPC) | Supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (VPC) -> DataHub (public network) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (cluster instance) -> Kafka (Alibaba Cloud instance) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (cluster instance) -> Kafka (VPC) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (cluster instance) -> Kafka (public network) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (VPC) -> Kafka (Alibaba Cloud instance) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (VPC) -> Kafka (VPC) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (VPC) -> Kafka (public network) | Supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> Kafka (Alibaba Cloud instance) | Supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> Kafka (VPC) | Supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> Kafka (public network) | Supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (VPC) -> Kafka (Alibaba Cloud instance) | Supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (VPC) -> Kafka (VPC) | Supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (VPC) -> Kafka (public network) | Supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (cluster instance) -> RocketMQ (Alibaba Cloud instance) | Not supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (cluster instance) -> RocketMQ (VPC) | Not supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (cluster instance) -> RocketMQ (public network) | Not supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (VPC) -> RocketMQ (Alibaba Cloud instance) | Not supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (VPC) -> RocketMQ (VPC) | Not supported | Supported | Supported | Not supported | Not supported |
OB_MySQL (VPC) -> RocketMQ (public network) | Not supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> RocketMQ (Alibaba Cloud instance) | Not supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> RocketMQ (VPC) | Not supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (cluster instance) -> RocketMQ (public network) | Not supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (VPC) -> RocketMQ (Alibaba Cloud instance) | Not supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (VPC) -> RocketMQ (VPC) | Not supported | Supported | Supported | Not supported | Not supported |
OB_Oracle (VPC) -> RocketMQ (public network) | Not supported | Supported | Supported | Not supported | Not supported |
Supported database versions
Feature | OceanBase Database version | Other database versions |
Data migration | V1.4.79, V2.2.30, V2.2.52, V2.2.76, V2.2.77, V3.1.x, V3.2.x, V4.0.0, and V4.1.0 |
|
Data synchronization | V2.2.30, V2.2.52, V2.2.76, V2.2.77, V3.1.x, V3.2.x, V4.0.0, and V4.1.0 |
|