MySQL迁移到达梦怎么做?信创数据库低停机迁移实战
把MySQL迁移到达梦,如果只是迁移一批静态数据,可以停机后导出再导入。但在生产环境中,MySQL通常还在持续产生订单、用户、库存等业务数据,几百GB甚至更大的数据库也很难在短时间内完成迁移。
更稳妥的方法是先迁移表结构和历史数据,再通过MySQL Binlog持续同步INSERT、UPDATE、DELETE等增量变更。等达梦中的数据追平MySQL并通过校验后,只需要在最后切换阶段暂停写入一小段时间。
这套方案可以概括为:
迁移评估 → 结构迁移 → 全量初始化 → Binlog增量同步 → 数据校验 → 应用切换

本文以CloudCanal为例,介绍MySQL迁移到达梦的准备工作、配置过程、常见兼容性问题和低停机切换步骤。如果已经完成前期评估,只想看工具配置,可以直接跳到“使用CloudCanal迁移MySQL到达梦”一节。
MySQL迁移到达梦,具体要迁移什么?
一次完整的数据库迁移通常包含四部分。
1. 表结构
包括表、字段、主键、索引、默认值和字段注释等。MySQL和达梦的SQL语法、字段类型及数据库对象并不完全相同,不能简单地把MySQL的SHOW CREATE TABLE结果直接拿到达梦执行。
2. 历史数据
也就是迁移开始前已经存在于MySQL中的数据。这部分通常通过全量扫描读取,再分批写入达梦。
3. 增量数据
全量迁移可能需要运行数小时甚至数天。在此期间,MySQL仍然会产生新的INSERT、UPDATE和DELETE操作。这些变化需要通过Binlog捕获并继续写入达梦,否则全量迁移结束时,两边的数据仍然不一致。
4. 应用兼容性
应用中的SQL、数据库驱动、分页语法、函数、存储过程和大小写规则也可能需要修改。
数据迁移工具可以帮助迁移表结构和数据,但不能默认解决所有应用兼容问题。尤其是存储过程、触发器、复杂函数和MySQL特有SQL,需要单独梳理和测试。
迁移前先检查MySQL
正式创建迁移任务前,先确认MySQL的版本、数据规模、Binlog配置、表结构和账号权限。
