首批通过分布式安全可靠测评,为关键业务系统打造
数据迁移概述
更新时间:2026-06-18 10:13:18
数据迁移指将数据从源系统搬迁至 OceanBase,用于库替换、版本升级、数仓集成等。
迁移阶段
数据迁移通常按“数据结构 → 全量数据 → 增量数据”的顺序规划(实际可部分重叠,以工具与窗口为准):
| 阶段 | 目标 | 常见方式 | 典型工具/方式 |
|---|---|---|---|
| 结构迁移 | 目标库具备与业务一致的 库表、索引、约束(及必要的分区策略) | DDL 转换、数据类型与字符集映射、不兼容语法改写 | OMS(对象同步)、DBCAT(表结构)、手工 DDL |
| 全量迁移 | 在约定时间点前完成 历史数据基线 | 批量导出导入、并行切分、旁路导入 | OMS、obloader + 旁路、DataX、MyDumper + 导入、LOAD DATA(MySQL 模式) / LOAD DATA(Oracle 模式) |
| 增量迁移 | 全量完成后 持续同步变更,直至割接或长期双活 | 日志解析(Binlog/Redo 等)、追延迟、冲突与回灌策略 | OMS、Canal、Flink CDC 等 |
说明:AP 侧若主要消费 文件/离线数仓,常见路径是 结构提前对齐 以及 全量文件入 OceanBase;是否单独跑增量取决于是否需要持续对齐,详见 数据订阅概述 与 数据同步概述。
异构数据库迁移
迁移场景
异构数据迁移主要适用于以下场景:
- 数据库升级或替换:将现有数据库系统迁移到 OceanBase,以获得更好的性能、扩展性或成本效益。
- 数据整合:将多个不同数据库系统的数据整合到统一的 OceanBase 平台。
- 架构升级:将传统数据库迁移到分布式数据库架构。
在这类数据迁移场景中,需要关注:
- Schema 与数据类型映射:需要精确定义源端和目标端(OceanBase)之间的数据结构和类型映射规则。
- 性能优化:针对海量数据的迁移,采用高效的迁移策略,如并行处理、分片迁移和批量加载,以缩短迁移窗口。
- 数据一致性校验:在迁移完成后,需通过哈希校验、抽样对比或全量对比等方法,确保数据的完整性和准确性。
MySQL 迁入 OceanBase
| 方式 | 参考文档 |
|---|---|
| OMS | 使用 OMS 迁移 MySQL 数据库到 OceanBase 数据库(MySQL 兼容模式租户) |
| MyDumper | 使用 MyDumper 迁移 MySQL 数据库到 OceanBase 数据库 |
| DBCAT(表结构) | 使用 DBCAT 迁移 MySQL 数据库表结构到 OceanBase 数据库 |
| DataX | 使用 DataX 迁移 MySQL 数据库到 OceanBase 数据库 |
| CloudCanal | 使用 CloudCanal 迁移 MySQL 数据库到 OceanBase 数据库 |
| Canal | 使用 Canal 迁移 MySQL 数据库到 OceanBase 数据库 |
| Flink CDC | 使用 Flink CDC 迁移 MySQL 数据库到 OceanBase 数据库 |
| ChunJun | 使用 ChunJun 迁移 MySQL 数据库到 OceanBase 数据库 |
Oracle 迁入 OceanBase
| 方式 | 参考文档 |
|---|---|
| OMS(MySQL 兼容模式租户) | 使用 OMS 迁移 Oracle 数据库到 OceanBase 数据库(MySQL 兼容模式租户) |
| OMS(Oracle 兼容模式租户) | 使用 OMS 迁移 Oracle 数据库到 OceanBase 数据库(Oracle 兼容模式租户) |
| DBCAT | 使用 DBCAT 迁移 Oracle 数据库到 OceanBase 数据库 |
| DataX | 使用 DataX 迁移 Oracle 数据库到 OceanBase 数据库 |
其它数据源 迁入 OceanBase
| 数据源 | 参考文档 |
|---|---|
| PostgreSQL | 使用 OMS 迁移 PostgreSQL 数据库到 OceanBase 数据库(MySQL 兼容模式租户) |
| DB2 LUW(MySQL 兼容模式租户) | 使用 OMS 迁移 DB2 LUW 数据库到 OceanBase 数据库(MySQL 兼容模式租户) |
| DB2 LUW(Oracle 兼容模式租户) | 使用 OMS 迁移 DB2 LUW 数据库到 OceanBase 数据库(Oracle 兼容模式租户) |
| DB2 LUW(表结构) | 使用 DBCAT 迁移 DB2 LUW 表结构到 OceanBase 数据库 |
| TiDB | 使用 OMS 迁移 TiDB 数据库到 OceanBase 数据库(MySQL 兼容模式租户) |
同构数据库迁移
迁移场景
同构数据迁移主要适用于以下场景:
- 版本升级:将数据从旧版本的 OceanBase 集群迁移至新版本,以获取新功能或提升性能。
- TP 数据库与 AP 数据库间迁移:将数据从 OceanBase 事务型(TP)数据库迁移至分析型(AP)数据库,以支持实时分析或 BI 应用等。
由于源端和目标端均为 OceanBase,此类迁移通常无需进行数据格式转换,但仍需关注:
- 迁移期间的数据一致性:通过事务日志或快照机制保证迁移过程中数据的一致性。
- 停机时间控制:根据业务对 RTO/RPO 的要求,选择合适的迁移方案以最小化或避免业务中断。
- 版本兼容性:在跨版本迁移时,需注意不同版本间 SQL 语法、系统参数或内部实现的细微差异。
OceanBase 租户间迁移
| 场景 | 参考文档 |
|---|---|
| MySQL 兼容模式租户到 MySQL 兼容模式租户 | |
| MySQL 兼容模式租户到 Oracle 兼容模式租户 | |
| Oracle 兼容模式租户到 Oracle 兼容模式租户 | |
| Oracle 兼容模式租户到 MySQL 兼容模式租户 |
大数据生态集成
迁移场景
- 离线数仓数据需要同步到实时分析系统:将 Hive、Spark 等离线数仓中的数据同步到实时数据处理平台(如 Flink、Kafka),以支持实时数据处理和流式分析。
- 离线数据需归档到长期存储:将离线数仓中的历史数据归档到长期存储(如云对象存储 S3、阿里云 OSS),以降低存储成本并满足数据保留策略。
- 离线数据需要导入 OceanBase 数据库:将 Hive 等离线数仓中的数据迁移或同步到 OceanBase,以支持统一分析、数据服务或与业务数据联动。
在这类数据迁移场景中,需要关注:
- 源数据格式与目标表适配:源文件格式(如 CSV、Parquet、ORC)与 OceanBase 目标表的列类型、精度、时间格式、分区字段等是否一致;必要时在建表或导入阶段完成字段映射与类型转换。
- 海量数据的高效传输:使用 DistCp 等分布式工具,通过并行处理和网络优化来提升传输效率。
- 元数据与表结构对齐:确保源端表定义、分区信息、Schema 等与 OceanBase AP 目标表(列名、类型、分区策略)一致,避免仅迁移数据而目标表结构不匹配。
| 数据源 | 文档 |
|---|---|
| Hive | 使用 OMS 社区版迁移 Hive、使用 obloader 迁移 Hive |
| HBase | 使用 OMS 社区版迁移 HBase |
| ORC/Parquet/CSV 文件 | 使用 obloader 进行 ORC/Parquet/CSV 文件迁移 |
| AnalyticDB MySQL(阿里云) | 迁移 AnalyticDB MySQL 的数据至 OceanBase 数据库 MySQL 租户 |