数据传输概述
数据传输是 OceanBase 数据库提供的一种支持同构或异构数据源与 OceanBase 数据库之间进行数据交互的服务,具备在线迁移存量数据和实时同步增量数据的能力。
产品功能
数据传输提供可视化的集中管控平台,您只需要进行简单的配置即可实时迁移数据。数据传输旨在帮助您低风险、低成本、高效率地实现同构或异构数据库向 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(RDS)->OB_MySQL(租户实例) | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
MySQL(PolarDB)->OB_MySQL(集群实例) | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
MySQL(PolarDB)->OB_MySQL(租户实例) | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
MySQL(公网)->OB_MySQL(集群实例) | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
MySQL(公网)->OB_MySQL(租户实例) | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
MySQL(VPC)->OB_MySQL(集群实例) | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
MySQL(VPC)->OB_MySQL(租户实例) | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
MySQL(DG)->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(集群实例) | 支持 | 支持 | 支持 | 支持 | 不支持 | 支持 |
TiDB(公网)->OB_MySQL(集群实例) | 支持 | 支持 | 支持 | 支持 | 支持 | 不支持 |
TiDB(VPC)->OB_MySQL(集群实例) | 支持 | 支持 | 支持 | 支持 | 支持 | 不支持 |
PolarDB-X 1.0->OB_MySQL(集群实例) | 不支持 | 支持 | 支持 | 支持 | 不支持 | 支持 |
迁移类型介绍
迁移类型 | 描述 |
结构迁移 | 负责迁移源库中的数据对象定义(表、索引、约束、注释和视图等)至目标库中,会自动过滤临时表。当源端数据库非 OceanBase 数据库时,会依据目标 OceanBase 租户类型的语法定义标准进行数据类型和 SQL 语法的自动转换和拼装,然后复制至目标库中。 |
全量迁移 | 迁移源库表的存量数据至目标库对应的表中。您可以在 全量迁移 页面,根据源库和目标库进行筛选,或勾选 查看有问题的对象,筛选阻碍整体迁移进度的对象。您还可以查看 表对象、表索引 和 全量迁移性能。只有表对象和表索引均迁移完成,全量迁移的状态才会显示已完成。 |
增量同步 | 增量同步任务开始后,会同步源库发生变化的数据(新增、修改或删除)至目标端数据库对应的表中。当源库不断有业务写入时,数据传输会在全量数据迁移启动前,启动增量拉取模块,以拉取源实例中的增量更新数据,对其进行解析、封装,并存储至数据传输中。 当全量数据迁移完成后,数据传输会启动增量数据回放模块,从增量数据拉取模块中获取增量数据。增量数据经过过滤、映射和转换后,再同步至目标实例中。 |
全量校验 | 在全量数据迁移完成,增量数据迁移至目标端并与源端基本追平后,数据传输会自动发起一轮针对源库配置的数据表和目标表的全量数据校验任务。增量数据同步过程中,您也可以发起自定义的数据校验。 您可以在 全量校验 页面查看全量校验的整体状态、启动时间、结束时间、总计耗时、预估总行数、已完成迁移行数、实时流量和 RPS 等信息。 |
正向切换 | 正向切换(传统意义上的系统割接流程的抽象化、标准化)不会操作业务应用连接的切换,是数据传输的数据迁移项目配合应用切换需要执行的任务流。您需要保证在应用连接切换至目标端前完成正向切换的全部流程。 正向切换是选择数据迁移便会编排进来的一个流程,您需要终止正向增量同步,删除迁移依赖的附加列和唯一索引,补充在同步过程中被数据传输过滤掉 Check 约束,并激活目标端 Trigger/FK(迁移前该类对象需要被禁用,否则将引起数据不一致)等,保证新迁移出来的数据库完整、可用。 如果您配置了反向增量,切换会多编排进来启动反向增量以及禁用源端 Trigger/FK 的子任务,启动从目标端到源端的实时增量同步,保障业务数据回流至原源端数据库,提供随时切换应用的可能性。 |
反向增量 | 迁移完成后,针对于业务割接场景,可以引导用户在业务数据库完成切换前在数据传输上启动目标库至源库(即反向)的增量同步项目,实时回流业务切换后在目标端数据库产生的变更数据至源业务数据库。 |
数据同步
数据源 | 结构同步 | 全量同步 | 增量同步 | 数据校验 | 无主键表 |
OB_MySQL(集群实例)-> OB_MySQL(集群实例) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(集群实例)-> OB_MySQL(VPC) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(VPC)-> OB_MySQL(集群实例) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(集群实例)-> ADB | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(集群实例)->DataHub(阿里云实例) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(集群实例)->DataHub(VPC) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(集群实例)->DataHub(公网) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(VPC)->DataHub(阿里云实例) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(VPC)->DataHub(VPC) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(VPC)->DataHub(公网) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(集群实例)->DataHub(阿里云实例) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(集群实例)->DataHub(VPC) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(集群实例)->DataHub(公网) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(VPC)->DataHub(阿里云实例) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(VPC)->DataHub(VPC) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(VPC)->DataHub(公网) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(集群实例)-> Kafka(阿里云实例) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(集群实例)-> Kafka(VPC) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(集群实例)-> Kafka(公网) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(VPC)-> Kafka(阿里云实例) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(VPC)-> Kafka(VPC) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(VPC)-> Kafka(公网) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(集群实例)->Kafka(阿里云实例) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(集群实例)-> Kafka(VPC) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(集群实例)-> Kafka(公网) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(VPC)->Kafka(阿里云实例) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(VPC)-> Kafka(VPC) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(VPC)-> Kafka(公网) | 支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(集群实例)-> RocketMQ(阿里云实例) | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(集群实例)-> RocketMQ(VPC) | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(集群实例)-> RocketMQ(公网) | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(VPC)-> RocketMQ(阿里云实例) | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(VPC)-> RocketMQ(VPC) | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_MySQL(VPC)-> RocketMQ(公网) | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(集群实例)->RocketMQ(阿里云实例) | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(集群实例)-> RocketMQ(VPC) | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(集群实例)-> RocketMQ(公网) | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(VPC)->RocketMQ(阿里云实例) | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(VPC)-> RocketMQ(VPC) | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
OB_Oracle(VPC)-> 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.0、V4.1.0 重要
|
|
数据同步 | V2.2.30、V2.2.52、V2.2.76、V2.2.77、V3.1.x、V3.2.x |
|