OceanBase 的生态工具链现状与迁移经验

从 MySQL 迁移到 OceanBase 的“踩坑”与“避坑”指南。

核心内容框架:

  1. 迁移背景: 随着国产化趋势,很多传统 MySQL 用户开始考虑迁移到 OceanBase(MySQL 兼容模式)。
  2. 兼容性细节: 虽然 OceanBase 宣称高度兼容 MySQL,但在实际迁移中,一定会有细微的“不兼容”或“表现不一致”的地方。
  3. 具体提问:
  • 欢迎大家分享在使用 OMS(数据迁移服务)进行增量同步时,遇到过哪些 DDL 语句是无法同步或需要手动改造的?
  • 关于分区表:MySQL 的分区功能相对较弱,迁移到 OceanBase 后,如何利用 OceanBase 强大的分区裁剪能力进行 SQL 改写以获得性能提升?
  • 关于自增列和唯一约束:在分布式架构下,高并发插入时的自增列性能衰减问题是否有解决方案?如何避免自增列成为写入瓶颈?
4 个赞

在使用 OMS(数据迁移服务)进行增量同步时,部分 DDL 语句无法自动同步,需要手动改造或干预:

  • ALTER TABLE ADD COLUMN:必须携带默认值,否则可能导致同步失败。
  • ALTER TABLE MODIFY COLUMN:从 NULL 改为 NOT NULL 时,若源端存在 NULL 数据,目标端会因约束冲突失败,需先在目标端临时放宽约束,再同步数据。
  • 分区表 DDL:如 ALTER TABLE ... PARTITION BY ...,OMS 对部分高级分区策略支持有限,需提前在目标端手动创建分区结构。
  • 外键 / 触发器:OMS 通常会忽略外键约束定义,迁移后需手动重建;反向增量同步时需禁用源端触发器,避免数据不一致。
2 个赞

打卡

谢谢分享,学习了!

使用datax进行数据迁移(不包含表的定义)