更新时间:2024-07-29 GMT+08:00

数据迁移失败问题排查

在使用控制台进行数据迁移时,如果出现迁移方案选择错误、在线迁移源Redis没有放通SYNC和PSYNC命令、源Redis和目标Redis网络不连通等问题,都会导致迁移失败。

本章节主要介绍使用DCS控制台进行数据迁移时迁移失败的问题排查和解决。

排查步骤

  1. 查看迁移日志。

    • 出现如下错误,表示迁移任务底层资源不足,需要联系技术支持处理。
      create migration ecs failed, flavor
    • 出现如下错误,表示在线迁移时,源Redis没有放通SYNC和PSYNC命令,需要联系技术支持放通命令。
      source redis unsupported command: psync

  2. 检查迁移方案。Redis实例间迁移,高版本不支持迁移到低版本。
  3. 检查源Redis是否放通SYNC和PSYNC命令,迁移任务底层资源与源Redis、目标Redis网络是否连通。

    如果是在线迁移,才涉及该操作。

    在线迁移,必须满足源Redis和目标Redis的网络相通、源Redis已放通SYNC和PSYNC命令这两个前提,否则,会迁移失败。

    • 网络

      检查DCS的源Redis、目标Redis、迁移任务所需虚拟机是否在同一个VPC,如果不在同一个VPC,则需要建立VPC对等连接,打通网络。关于创建和使用VPC对等连接,请参考《虚拟私有云用户指南》的“对等连接”文档说明。

      如果是同一个VPC,则检查安全组(Redis 3.0实例)或白名单(Redis 4.0/5.0/6.0实例)是否放通端口和IP,确保网络是连通的;

      源Redis和目标Redis必须允许迁移任务底层虚拟机访问。实例安全组或白名单配置,请参考安全组配置和选择管理实例白名单

      源Redis和目标Redis属于不同的云厂商时,需使用云专线服务打通网络。

    • 命令
      默认情况下,一般云厂商都是禁用了SYNC和PSYNC命令,如果要放通,需要联系云厂商运维人员放通命令。
      • DCS内部进行迁移:
        • 自建Redis迁移至DCS,默认没有禁用SYNC和PSYNC命令;
        • DCS服务之间进行迁移,如果是同一账号相同Region进行在线迁移,在执行迁移时,会自动放通SYNC和PSYNC命令;
        • 如果是不同Region或相同Region不同账号进行在线迁移,不会自动放通SYNC和PSYNC命令,无法使用控制台上的在线迁移功能。推荐使用备份文件导入方式迁移。
      • 其他云厂商迁移到DCS服务:
        • 一般云厂商都是禁用了SYNC和PSYNC命令,如果使用在线迁移功能,需要联系源端的云厂商运维人员放通此命令。如果使用离线迁移,推荐使用备份文件导入的方式。
        • 如果不需要增量迁移,可以参考使用Redis-shake工具在线全量迁移其他云厂商Redis进行全量迁移,该方式不依赖于SYNC和PSYNC。

  4. 检查源Redis是否存在大Key。

    如果源Redis存在大key,建议将大key打散成多个小key后再迁移。

  5. 检查目标Redis的规格是否大于迁移数据大小、是否有其他任务在执行。

    如果目标Redis的实例规格小于迁移数据大小,迁移过程中,内存被占满,会导致迁移失败。

    如果目标Redis存在正在执行的主备切换,建议联系技术支持关闭主备切换后,重新执行数据迁移。待迁移完成后,重新开启主备切换。

  6. 检查迁移操作是否正确。

    检查填写的IP地址、实例密码是否正确。

  7. 排查白名单。
  8. 如果无法解决,请联系技术支持。