概述

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

简称说明

实例类型

简称

VPC 内自建数据库

VPC

数据库网关(Database Gateway)

DG

公网 IP 自建数据库

公网

OceanBase 数据库 MySQL 租户

OB_MySQL

OceanBase 数据库 Oracle 租户

OB_Oracle

数据迁移

说明

暂不支持迁移 Oracle 数据源至 OceanBase 数据库 MySQL 租户,以及迁移 MySQL 数据源至 OceanBase 数据库 Oracle 租户。

数据源

结构迁移

全量迁移

增量迁移

全量校验

反向增量

无主键表

MySQL(RDS)->OB_MySQL(阿里云实例)

支持

支持

支持

支持

支持

支持

MySQL(PolarDB)->OB_MySQL(阿里云实例)

支持

支持

支持

支持

支持

支持

MySQL(公网)->OB_MySQL(阿里云实例)

支持

支持

支持

支持

支持

支持

MySQL(VPC)->OB_MySQL(阿里云实例)

支持

支持

支持

支持

支持

支持

MySQL(DG)->OB_MySQL(阿里云实例)

支持

支持

支持

支持

支持

支持

Oracle(DG)->OB_Oracle(阿里云实例)

支持

支持

支持

支持

不支持

支持

Oracle(公网)->OB_Oracle(阿里云实例)

支持

支持

支持

支持

不支持

支持

Oracle(VPC)->OB_Oracle(阿里云实例)

支持

支持

支持

支持

不支持

支持

OB_MySQL(阿里云实例)->MySQL(RDS)

支持

支持

支持

支持

支持

支持

OB_MySQL(阿里云实例)->MySQL(PolarDB)

支持

支持

支持

支持

支持

不支持

OB_MySQL(阿里云实例)->MySQL(公网)

支持

支持

支持

支持

支持

不支持

OB_MySQL(阿里云实例)->MySQL(VPC)

支持

支持

支持

支持

支持

不支持

OB_MySQL(阿里云实例)->MySQL(DG)

支持

支持

支持

支持

支持

不支持

OB_MySQL(阿里云实例)->OB_MySQL(阿里云实例)

支持

支持

支持

支持

不支持

支持

OB_MySQL(VPC)->OB_MySQL(阿里云实例)

支持

支持

支持

支持

不支持

支持

OB_Oracle(阿里云实例)->OB_Oracle(阿里云实例)

支持

支持

支持

支持

不支持

支持

OB_Oracle(VPC)->OB_Oracle(阿里云实例)

支持

支持

支持

支持

不支持

支持

数据同步

数据源

结构同步

全量同步

增量同步

数据校验

无主键表

OB_MySQL(阿里云实例)-> OB_MySQL(阿里云实例)

支持

支持

支持

不支持

不支持

OB_MySQL(阿里云实例)-> OB_MySQL(VPC)

支持

支持

支持

不支持

不支持

OB_MySQL(阿里云实例)-> ADB(阿里云实例)

支持

支持

支持

不支持

不支持

OB_MySQL(阿里云实例)->DataHub(阿里云实例)

支持

支持

支持

不支持

不支持

OB_MySQL(阿里云实例)->DataHub(VPC)

支持

支持

支持

不支持

不支持

OB_MySQL(阿里云实例)->DataHub(公网)

支持

支持

支持

不支持

不支持

OB_Oracle(阿里云实例)->DataHub(阿里云实例)

支持

支持

支持

不支持

不支持

OB_Oracle(阿里云实例)->DataHub(VPC)

支持

支持

支持

不支持

不支持

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

支持

支持

支持

不支持

不支持

OB_MySQL(阿里云实例)-> Kafka(阿里云实例)

支持

支持

支持

不支持

不支持

OB_MySQL(阿里云实例)-> Kafka(VPC)

支持

支持

支持

不支持

不支持

OB_MySQL(阿里云实例)-> Kafka(公网)

支持

支持

支持

不支持

不支持

OB_Oracle(阿里云实例)-> Kafka(阿里云实例)

支持

支持

支持

不支持

不支持

OB_Oracle(阿里云实例)-> Kafka(VPC)

支持

支持

支持

不支持

不支持

OB_Oracle(阿里云实例)-> Kafka(公网)

支持

支持

支持

不支持

不支持

支持的数据库版本

传输功能

OBServer 版本

其它数据终端版本

数据迁移

V2.2.30、V2.2.52、V2.2.76、V2.2.77、V3.1.x、V3.2.x

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

  • Oracle:10G/11G/12C/18C/19C

    说明

    12C 及以上版本包含 CDB 和 PDB。

数据同步

V2.2.30、V2.2.52、V2.2.76、V2.2.77、V3.1.x、V3.2.x

  • ADB:V3.0

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

支持的迁移类型

迁移类型

描述

结构迁移

负责迁移源库中的数据对象定义(表、索引、约束、注释和视图等)至 OceanBase 目标库中,会自动过滤临时表。

当源端数据库非 OceanBase 数据库时,会依据目标 OceanBase 租户类型的语法定义标准进行数据类型和 SQL 语法的自动转换和拼装,然后复制至 OceanBase 目标库中。

MySQL 数据库仅支持迁移表,Oracle 数据库支持迁移表和视图。

全量迁移

迁移源库表的存量数据至 OceanBase 库对应的表中。当源库不断有业务写入时,OMS 会在全量数据迁移启动前,启动增量拉取模块,以拉取源实例中的增量更新数据,对其进行解析、封装,并存储至 OMS 中。

全量迁移加上增量迁移,可以确保目标端数据库与源端数据库的最终一致性。

增量同步

全量迁移任务开始后,会同步源库发生变化的数据(新增、修改或删除)至 OCeanBase 数据库对应的表中。

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

全量校验

在全量数据迁移完成,增量数据迁移至目标端并与源端基本追平后,OMS 会自动发起一轮针对源库配置的数据表和目标表的全量数据校检任务。

增量数据同步过程中,您也可以发起自定义的数据校检,OMS 会提供相应的接口。

针对校检出不一致的数据,OMS 会提供以源端为基准,在目标端进行订正操作的 SQL 脚本。

正向切换

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

正向切换是选择数据迁移便会编排进来的一个流程,您需要终止正向增量同步,删除迁移依赖的附加列和唯一索引,补充在同步过程中被 OMS 过滤掉 Check 约束,并激活目标端 Trigger/FK (迁移前该类对象需要被禁用,否则将引起数据不一致)等,保证新迁移出来的数据库完整、可用。

如果您配置了反向增量,切换会多编排进来启动反向增量以及禁用源端 Trigger/FK 的子任务,启动从目标端到源端的实时增量同步,保障业务数据回流至原源端数据库,提供随时切换应用的可能性。

反向增量

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

注意

迁移 Oracle 数据库的数据至 OceanBase 数据库 Oracle 租户时,不支持反向增量。

反向增量功能限时免费,收费时会提前通知您。

您可以在页面查看反向同步性能,包括:

  • 延迟时间:目标端增量变更被同步至源端的滞后时间,单位为秒。

  • 迁移流量:目标端增量变更数据被同步至源端的流量吞吐,单位为 KB/s。

阿里云首页 云数据库 OceanBase 相关技术圈