前言
越来越多企业把 MySQL 业务迁移到 OceanBase,享受分布式、高可用、线性扩展能力。我在实际项目中完成了多套 MySQL 库到 OB 的迁移,踩过不少坑,本文把完整流程、关键配置、兼容性问题整理成实战指南。
一、迁移前准备
- 版本评估
- 源:MySQL 5.7/8.0
- 目标:OceanBase 4.x 社区版 / 企业版
- 兼容性检查
- 函数、存储过程、视图、触发器
- 分区表、事务隔离级别、字符集
- 工具选择
- 逻辑迁移:mysqldump、OB DataX
- 物理迁移:OB 官方迁移工具
二、标准迁移流程
- 环境检查:OB 集群健康、资源充足
- 创建兼容 MySQL 的租户
- 库表结构导出与导入
- 全量数据迁移
- 增量同步(可选)
- 数据校验
- 业务割接
三、关键 SQL 与配置示例
– 创建MySQL模式租户
CREATE TENANT mysql_tenant
RESOURCE_POOL_LIST = (‘pool1’),
COMPATIBILITY_MODE = ‘MYSQL’,
DEFAULT CHARSET = utf8mb4;
mysqldump导出结构
mysqldump -h源IP -u用户 -p --no-data 库名 > struct.sql
导入OB
obclient -hOBIP -P2881 -uroot@mysql_tenant -p 库名 < struct.sql
四、高频踩坑与解决方案
- 事务隔离级别
- MySQL 默认 RR,OB 默认 RC
- 迁移后建议显式设置,避免业务异常
- 分页性能
- LIMIT OFFSET 大偏移性能差
- 改用游标 / 主键分页
- 自增主键
- OB 分布式自增 ID 与 MySQL 不同
- 业务无强依赖可直接使用
- 字符集
- 建议统一使用 utf8mb4
- 视图 / 存储过程
- 部分语法需微调,建议逐一验证
五、生产最佳实践
- 先在测试环境完整跑通迁移与回归
- 迁移前备份,准备回滚方案
- 上线后观察慢查询、连接数、负载
- 合理配置资源单元,避免节点负载不均
六、总结
MySQL 迁移到 OB 整体平滑,核心是提前做兼容性检查、做好测试、注意隔离级别与 SQL 写法。迁移完成后,高可用与扩展能力会显著提升业务稳定性。
欢迎交流迁移中的问题!