#MySQL迁移至YashanDB
本章节介绍从MySQL到YashanDB的数据评估+迁移+校验最佳实践。
# 迁移前准备
评估源端数据库:对现有MySQL系统进行评估,了解数据库的架构、访问模式和业务需求,并保持静态离线状态。
确认迁移范围:明确需要迁移的DATABASE,包括对象范围和数据量等信息。
目标数据库准备:
- 请确保目标端数据库已安装且运行状态正常。若未安装,请参考YashanDB安装部署 (opens new window)。
- 请确保目标端预留源端数据量120%空间。
迁移平台准备:请确保YMP已安装且运行状态正常。若未安装,请参考YMP安装部署,本章节默认使用内置库安装YMP。
网络带宽(建议):>= 100Mbps。
# 注意事项
评估、迁移中时源端数据库连接变多,会争抢连接资源和内存,您可按需调节可用连接数。
源端和目标端支持的版本为:
数据库端 数据库类型 说明 源端 MySQL 支持 5.6,5.7,8.0所有版本。 目标端 YashanDB 适配YashanDB数据库v23.2及以上版本,形态支持单机、共享集群,并兼容YashanDB数据库v22.2版本。
# 环境说明
MySQL、YashanDB示例环境说明:
| 数据库端 | 数据库类型 | 版本号 | 地址 | 数据库用户名 |
|---|---|---|---|---|
| 源端 | MySQL | 8.0.23 | 172.16.90.118 | root |
| 目标端 | YashanDB | 23.4.1.102 | 172.16.90.58 | SYS |
YMP示例环境说明:
| 迁移工具 | 版本号 | 地址 |
|---|---|---|
| YMP | 23.4.4.1 | 172.16.90.81 |
# 迁移流程图

# 开始迁移
数据库迁移的过程中,分为多个阶段,包括创建任务,数据评估,离线迁移,数据校验等。
若您想获取更高的迁移性能,请查看性能调优章节,按需进行配置。
# 步骤一:添加数据源
在YMP数据源管理中添加好源端和目标端数据库的数据源连接信息,并按需给连接用户进行赋权。

# 源端MySQL权限要求
为保证迁移顺利进行,请确保源端MySQL用户具备以下权限:
| 权限名称 | 功能说明 |
|---|---|
| SHOW DATABASES | 允许查看服务器上所有数据库列表 |
| SELECT | 允许查询所有数据库中的表数据 |
| PROCESS | 查看当前执行的查询/连接信息(全量校验终止功能必需) |
| SHOW VIEW | 允许查看视图定义 |
| TRIGGER | 允许查看和操作触发器 |
| EVENT | 允许查看和操作事件调度器 |
| SHOW_ROUTINE | 允许查看存储过程和函数定义(MySQL8.0 需额外赋权) |
示例SQL:
GRANT
SHOW DATABASES,
SELECT,
PROCESS,
SHOW VIEW,
TRIGGER,
EVENT,
SHOW_ROUTINE
ON *.* TO 'yourUser'@'IP';
# 目标端YashanDB权限要求
目标端YashanDB用户需要具备DBA权限,若YashanDB为三权分立模式,请参考数据源管理进行授权。
示例SQL:
GRANT DBA TO username;
# 步骤二:创建任务

填写完任务配置信息之后,单击【下一步:继续配置】。
# 步骤三:评估配置
评估需要在某个崖山数据库进行对象的回放执行,验证兼容性,Install指令部署好的YMP自带一个YashanDB数据库,可选内置的,如果不满足要求,可选择其他用户自行部署好的数据库版本。

选择需要评估的对象及评估范围之后,单击【下一步:开始迁移评估】。
# 步骤四:迁移评估

若评估结果不达100%,此时您可单击【对象详情】,查看不兼容的对象,按需选择批量修改或忽略,然后单击【全量刷新】。
若不处理不兼容对象,离线迁移时可能会报错,建议您评估时保证100%兼容。
# 步骤五:迁移配置
确认迁移对象,并完成迁移初始化配置之后,单击【下一步:离线迁移】,在任务启动之前会进行预检查,检查通过后即可进行离线迁移。

# 迁移配置优化建议
- 分批迁移:对于大型数据库,建议按业务模块或表大小分批迁移。
- 表结构优化:考虑在迁移过程中优化表结构,如添加必要索引或分区。
- 预估迁移时间:根据数据量和网络带宽,合理预估迁移时长,安排在业务低峰期。
# 步骤六:离线迁移
离线迁移完成之后,若您想获取更多信息,可查看任务日志和迁移报告。

# 监控迁移进度
迁移过程中,建议关注以下关键指标:
- 传输速率:实时数据传输速度,通常以行/秒或MB/秒计。
- 资源使用:源库和目标库的CPU、内存、IO使用情况。
- 错误日志:实时监控错误日志,及时处理异常情况。
如出现迁移速度异常缓慢,可检查:
- 网络带宽是否受限。
- 源库或目标库是否存在资源瓶颈。
- 是否存在大事务或大表迁移导致的延迟。
- YMP部署环境的资源是否充足:CPU、内存、磁盘I/O等。
# 步骤七:校验初始化
默认校验迁移成功的表,其他表不校验。
校验任务配置:
完整比对(默认):对源端数据库和目标端数据库的表进行全量数据的一致性校验。
统计比对:统计源端数据库和目标端数据库的表的行数进行对比。

# 校验策略建议
根据数据量和业务重要性,可采用不同的校验策略:
| 数据量 | 业务重要性 | 推荐校验策略 |
|---|---|---|
| 小(<100GB) | 高 | 完整比对 |
| 小(<100GB) | 低 | 完整比对 |
| 中(100GB-1TB) | 高 | 完整比对 |
| 中(100GB-1TB) | 低 | 统计比对 |
| 大(>1TB) | 高 | 完整比对 |
| 大(>1TB) | 低 | 统计比对 |
# 步骤八:一致性校验
校验完成之后,单击每行表【查看结果】可查看源端与目标端校验结果。
若您想获取更多信息,可查看任务运行日志和校验报告。

# 数据不一致处理
当发现数据不一致时,建议按以下步骤处理:
- 分析不一致原因:检查是否为数据类型转换、字符集编码或时区设置导致。
- 重点关注关键业务表:优先解决核心业务表的不一致问题。
- 选择性修复:对于关键数据不一致,可通过手动SQL或重新迁移特定表解决。
- 记录并评估影响:对于非关键数据差异,记录并评估对业务的影响。
# 完成迁移
迁移完成之后建议对于重要的业务系统,配置备份和灾备方案,以防止突发故障带来的影响。
# 迁移后检查清单
✅ 数据一致性验证:确认所有关键表数据一致。
✅ 功能测试:在目标库执行核心业务SQL,验证功能正常。
✅ 性能测试:对比源库和目标库的查询性能,确保性能不降低。
✅ 应用连接测试:测试应用与新数据库的连接和交互。
✅ 监控和告警配置:为新数据库设置适当的监控和告警机制。
# 迁移后优化建议
迁移完成后,建议对YashanDB进行以下优化:
- 索引优化:根据业务查询模式,优化或添加必要的索引。
- 参数调优:根据业务特点,调整数据库参数配置。
- 表结构优化:考虑使用YashanDB特有功能优化表结构,如分区表。
- 定期维护计划:制定定期维护计划,包括统计信息更新、空间回收等。
# 故障恢复策略
建议配置以下备份和恢复策略:
- 定期全量备份:根据业务重要性设置合理的备份周期。
- 增量备份:在全量备份基础上配置增量备份。
- 点击时间恢复测试:定期测试备份恢复功能。
- 灾备方案:考虑配置主备或灾备集群,确保高可用性。
从MySQL到YashanDB的迁移是一个系统性工程,需要充分的准备和严谨的执行。通过本文档提供的最佳实践和详细步骤,您可以确保迁移过程顺利完成,并充分利用YashanDB的优势提升您的数据库性能和可靠性。在迁移过程中如遇到问题,请及时联系技术支持获取帮助。

