#MySQL迁移至YashanDB

本章节介绍从MySQL到YashanDB的数据评估+迁移+校验最佳实践。

# 迁移前准备

  • 评估源端数据库:对现有MySQL系统进行评估,了解数据库的架构、访问模式和业务需求,并保持静态离线状态。

  • 确认迁移范围:明确需要迁移的DATABASE,包括对象范围和数据量等信息。

  • 目标数据库准备:

  • 迁移平台准备:请确保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使用情况。
  • 错误日志:实时监控错误日志,及时处理异常情况。

如出现迁移速度异常缓慢,可检查:

  1. 网络带宽是否受限。
  2. 源库或目标库是否存在资源瓶颈。
  3. 是否存在大事务或大表迁移导致的延迟。
  4. YMP部署环境的资源是否充足:CPU、内存、磁盘I/O等。

# 步骤七:校验初始化

默认校验迁移成功的表,其他表不校验。

校验任务配置:

  • 完整比对(默认):对源端数据库和目标端数据库的表进行全量数据的一致性校验。

  • 统计比对:统计源端数据库和目标端数据库的表的行数进行对比。

# 校验策略建议

根据数据量和业务重要性,可采用不同的校验策略:

数据量 业务重要性 推荐校验策略
小(<100GB) 完整比对
小(<100GB) 完整比对
中(100GB-1TB) 完整比对
中(100GB-1TB) 统计比对
大(>1TB) 完整比对
大(>1TB) 统计比对

# 步骤八:一致性校验

校验完成之后,单击每行表【查看结果】可查看源端与目标端校验结果。

若您想获取更多信息,可查看任务运行日志和校验报告。

# 数据不一致处理

当发现数据不一致时,建议按以下步骤处理:

  1. 分析不一致原因:检查是否为数据类型转换、字符集编码或时区设置导致。
  2. 重点关注关键业务表:优先解决核心业务表的不一致问题。
  3. 选择性修复:对于关键数据不一致,可通过手动SQL或重新迁移特定表解决。
  4. 记录并评估影响:对于非关键数据差异,记录并评估对业务的影响。

# 完成迁移

迁移完成之后建议对于重要的业务系统,配置备份和灾备方案,以防止突发故障带来的影响。

# 迁移后检查清单

数据一致性验证:确认所有关键表数据一致。

功能测试:在目标库执行核心业务SQL,验证功能正常。

性能测试:对比源库和目标库的查询性能,确保性能不降低。

应用连接测试:测试应用与新数据库的连接和交互。

监控和告警配置:为新数据库设置适当的监控和告警机制。

# 迁移后优化建议

迁移完成后,建议对YashanDB进行以下优化:

  1. 索引优化:根据业务查询模式,优化或添加必要的索引。
  2. 参数调优:根据业务特点,调整数据库参数配置。
  3. 表结构优化:考虑使用YashanDB特有功能优化表结构,如分区表。
  4. 定期维护计划:制定定期维护计划,包括统计信息更新、空间回收等。

# 故障恢复策略

建议配置以下备份和恢复策略:

  1. 定期全量备份:根据业务重要性设置合理的备份周期。
  2. 增量备份:在全量备份基础上配置增量备份。
  3. 点击时间恢复测试:定期测试备份恢复功能。
  4. 灾备方案:考虑配置主备或灾备集群,确保高可用性。

从MySQL到YashanDB的迁移是一个系统性工程,需要充分的准备和严谨的执行。通过本文档提供的最佳实践和详细步骤,您可以确保迁移过程顺利完成,并充分利用YashanDB的优势提升您的数据库性能和可靠性。在迁移过程中如遇到问题,请及时联系技术支持获取帮助。

edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流