概述

数据传输是 OceanBase 数据库提供的一种支持同构或异构数据源与 OceanBase 数据库之间进行数据交互的服务,具备在线迁移存量数据和实时同步增量数据的能力。

产品功能

数据传输提供可视化的集中管控平台,您只需要进行简单的配置即可实时迁移数据。数据传输旨在帮助您低风险、低成本、高效率地实现同构或异构数据库向 OceanBase 数据库进行实时数据迁移和数据同步。

  • 数据迁移:数据迁移属于一次性任务,迁移完成后即可释放任务资源。您可以通过数据迁移功能,实现同构或异构数据源之间的数据迁移,适用于数据库升级、跨实例数据迁移、数据库拆分、扩容等业务场景。

    数据迁移任务是数据迁移功能的基本单元。创建数据迁移任务时,您可以指定的最大迁移范围是数据库级别,最小迁移范围是表级别。详情请参见 数据迁移 模块的内容。

    说明

    目前数据迁移任务仅支持后付费模式,即按量付费计费模式。当前为限时免费阶段,具体收费时间另行通知。详情请参见 数据传输计费说明

  • 数据同步:数据同步属于持续性动作,任务创建后会一直同步数据,保持源端和目标端的数据一致性,实现关键业务的数据实时流动。您可以通过数据同步功能,实现数据源之间的数据实时同步,适用于数据异地多活、数据异地灾备、数据聚合和实时数据仓库等多种业务场景。详情请参见 数据同步 模块的内容。

    说明

    目前数据同步任务仅支持预付费模式,即包年包月计费模式。详情请参见 数据传输计费说明

支持的迁移类型

简称说明

实例类型

简称

RDS 实例

RDS

PolarDB MySQL 实例

PolarDB

VPC 内自建数据库

VPC

公网 IP 自建数据库

公网

OceanBase 数据库 MySQL 兼容模式

OB_MySQL

OceanBase 数据库 Oracle 兼容模式

OB_Oracle

OceanBase 数据库 MySQL 兼容模式 Serverless 实例

OB_MySQL Serverless 实例

OceanBase 数据库 Oracle 兼容模式 Serverless 实例

OB_Oracle Serverless 实例

数据迁移

说明
  • 暂不支持迁移 Oracle 数据库的数据至 OceanBase 数据库 MySQL 兼容模式,以及迁移 MySQL 数据库的数据至 OceanBase 数据库 Oracle 兼容模式。

  • 增量 DDL 支持范围请参见 同步 DDL 的支持范围和使用限制 模块的文档。

数据迁移任务

结构迁移

全量迁移

增量 DML

增量 DDL

全量校验

反向增量

无主键表

MySQL(RDS/PolarDB/VPC/公网)-> OB_MySQL(集群实例/Serverless 实例/租户实例)

支持

支持

支持

支持

支持

支持

支持

OB_MySQL(集群实例/Serverless 实例)-> MySQL(RDS/PolarDB/VPC/公网)

支持

支持

支持

支持

支持

支持

支持

OB_MySQL(集群实例/VPC/Serverless 实例)-> OB_MySQL(集群实例/Serverless 实例)

支持

支持

支持

支持

支持

支持

支持

OB_MySQL(集群实例/Serverless 实例)-> OB_MySQL(VPC)

支持

支持

支持

支持

支持

支持

支持

Oracle(公网/VPC)-> OB_Oracle(集群实例)

支持

支持

支持

支持

支持

支持

支持

OB_Oracle(集群实例)-> Oracle(VPC)

支持

支持

支持

支持

支持

支持

支持

OB_Oracle(集群实例/VPC)-> OB_Oracle(集群实例)

支持

支持

支持

支持

支持

支持

支持

OB_Oracle(集群实例)-> OB_Oracle(VPC)

支持

支持

支持

支持

支持

支持

支持

OB_Oracle(集群实例)-> MySQL(RDS/PolarDB/VPC/公网)

不支持

不支持

支持

不支持

不支持

不支持

支持

TiDB -> OB_MySQL(集群实例/Serverless 实例)

支持

支持

支持

不支持

支持

支持

支持

PolarDB-X 1.0 -> OB_MySQL(集群实例/Serverless 实例)

不支持

支持

支持

不支持

支持

不支持

支持

PolarDB-X 2.0 -> OB_MySQL(集群实例/Serverless 实例)

支持

支持

支持

不支持

支持

支持

支持

PolarDB-O(阿里云实例) -> OB_Oracle(集群实例/Serverless 实例)

支持

支持

支持

支持

支持

支持

支持

ADB -> OB_MySQL(集群实例/VPC)

不支持

支持

不支持

不支持

不支持

不支持

不支持

PostgreSQL(RDS 实例)-> OB_Oracle(集群实例/VPC)

支持

支持

支持

不支持

支持

支持

支持

HBase 增强版 V2.0 -> OBKV

支持

支持

支持

不支持

支持

支持

不涉及

Lindorm -> OBKV

支持

支持

支持

不支持

支持

支持

不涉及

迁移类型介绍

迁移类型

描述

结构迁移

负责迁移源库中的数据对象定义(表、索引、约束、注释和视图等)至目标库中,会自动过滤临时表。当源端数据库非 OceanBase 数据库时,会依据目标 OceanBase 租户类型的语法定义标准进行数据类型和 SQL 语法的自动转换和拼装,然后复制至目标库中。

全量迁移

迁移源库表的存量数据至目标库对应的表中。您可以在 全量迁移 页面,根据源库和目标库进行筛选,或勾选 查看有问题的对象,筛选阻碍整体迁移进度的对象。您还可以查看 表对象表索引 全量迁移性能。只有表对象和表索引均迁移完成,全量迁移的状态才会显示已完成。

增量同步

增量同步任务开始后,会同步源库发生变化的数据(新增、修改或删除)至目标端数据库对应的表中。当源库不断有业务写入时,数据传输会在全量数据迁移启动前,启动增量拉取模块,以拉取源实例中的增量更新数据,对其进行解析、封装,并存储至数据传输中。

当全量数据迁移完成后,数据传输会启动增量数据回放模块,从增量数据拉取模块中获取增量数据。增量数据经过过滤、映射和转换后,再同步至目标实例中。

全量校验

在全量数据迁移完成,增量数据迁移至目标端并与源端基本追平后,数据传输会自动发起一轮针对源库配置的数据表和目标表的全量数据校验任务。增量数据同步过程中,您也可以发起自定义的数据校验。

您可以在 全量校验 页面查看全量校验的整体状态、启动时间、结束时间、总计耗时、预估总行数、已完成迁移行数、实时流量和 RPS 等信息。

正向切换

正向切换(传统意义上的系统割接流程的抽象化、标准化)不会操作业务应用连接的切换,是数据迁移任务配合应用切换需要执行的任务流。您需要保证在应用连接切换至目标端前完成正向切换的全部流程。

正向切换是数据迁移必不可少的一个流程,通过正向切换,数据传输可以确保完成了数据正向迁移的相关工作,并且您可以根据业务需求启动反向增量组件。正向切换主要涉及的工作如下:

  1. 您需要自行确认已完成数据迁移,并等待正向同步延迟被追平。

  2. 数据传输将会自动补充目标端为 Oracle 数据库和 OceanBase 数据库 Oracle 兼容模式时,结构迁移阶段忽略的检查类约束、外键约束等对象。

  3. 数据传输将会自动删除迁移依赖的附加隐藏列及唯一索引。

    该操作仅在 Oracle 数据库和 OceanBase 数据库之间,以及 OceanBase 数据库之间的数据迁移任务存在,详情请参见 数据迁移服务隐藏列机制说明

  4. 您需要自行补充迁移源端触发器、函数、存储过程等其它数据传输不支持的数据库对象至目标端。

  5. 数据迁移任务存在反向增量时,您需要自行禁用源端的触发器,以及删除外键约束。

反向增量

迁移完成后,针对业务割接场景,可以引导用户在业务数据库完成切换前在数据传输上启动目标库至源库(即反向)的增量同步任务,实时回流业务切换后在目标端数据库产生的变更数据至源业务数据库。

数据同步

说明

增量 DDL 支持范围请参见具体的创建数据同步任务文档。

数据同步任务

结构同步

全量同步

增量 DML

增量 DDL

无主键表

OB_MySQL(集群实例)-> OB_MySQL(集群实例/VPC/Serverless 实例)

支持

支持

支持

支持

支持

OB_MySQL(VPC)-> OB_MySQL(集群实例/Serverless 实例)

支持

支持

支持

支持

支持

OB_MySQL(集群实例/Serverless 实例)-> ADB(阿里云实例)

支持

支持

支持

支持

不支持

OB_Oracle(集群实例/VPC)-> OB_Oracle(Serverless 实例)

支持

支持

支持

支持

支持

OB_MySQL(集群实例/VPC)-> OB_Oracle(集群实例/VPC)

支持

支持

支持

支持

支持

OB_Oracle(集群实例/VPC)-> OB_MySQL(集群实例/VPC)

支持

支持

支持

支持

支持

PostgreSQL(RDS)-> OB_Oracle(集群实例)

支持

支持

支持

不支持

支持

OB_MySQL (集群实例/Serverless 实例)-> DataHub(公网/阿里云实例)

支持

支持

支持

支持

支持

OB_Oracle (集群实例)-> DataHub(公网/阿里云实例)

支持

支持

支持

支持

支持

OB_MySQL (集群实例/Serverless 实例)-> Kafka(公网/VPC/阿里云实例)

支持

支持

支持

支持

支持

OB_Oracle (集群实例)-> Kafka(公网/VPC/阿里云实例)

不支持

支持

支持

支持

支持

OB_MySQL (集群实例/Serverless 实例)-> RocketMQ (阿里云实例)

不支持

支持

支持

支持

支持

OB_Oracle (集群实例)-> RocketMQ (阿里云实例)

不支持

支持

支持

不支持

支持

支持的数据库版本

传输功能

OceanBase 数据库版本

其他数据终端版本

数据迁移

V1.4.79、V2.2.30、V2.2.52、V2.2.76、V2.2.77、V3.1.x、V3.2.x、V4.0.x、V4.1.x、V4.2.1.10、V4.2.2.1、V4.2.3.0、V4.2.4.0、V4.2.5.0、V4.3.0.1、V4.3.1.0、V4.3.2.1、V4.3.3.1、V4.3.4.1、V4.3.5.0

  • MySQL/RDS MySQL/Polar MySQL:V5.5、V5.6、V5.7、V8.0

  • Oracle:10GR2、11GR2、12C/18C/19C CDB/PDB

    说明

    12C 及之后版本包含 CDB 和 PDB。

  • PolarDB-X 1.0:V5.2.8、V5.4.2、V5.4.9、V5.4.12

  • PolarDB-X 2.0:V5.4.x

  • PolarDB-O:V1.x、V2.x

  • TiDB:V4.x、V5.x

  • PostgreSQL:V11.x、V12.x

  • Lindorm:宽表引擎

  • HBase 增强版:V2.0

数据同步

V1.4.79、V2.2.30、V2.2.52、V2.2.76、V2.2.77、V3.1.x、V3.2.x、V4.0.x、V4.1.x、V4.2.1.10、V4.2.2.1、V4.2.3.0、V4.2.4.0、V4.2.5.2、V4.3.0.1、V4.3.1.0、V4.3.2.1、V4.3.3.1、V4.3.4.1、V4.3.5.0

  • ADB:V3.0

  • Kafka:V0.9、V1.0、V2.x

  • RocketMQ:V4.x、V5.x(包含商业版和社区版)

  • PostgreSQL:V11.x、V12.x