更新时间:2024-10-30 GMT+08:00

数据迁移失败问题排查

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

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

排查步骤

  1. 单击已创建的迁移任务名称,进入迁移任务页面。
  2. 查看迁移日志。参照迁移故障处理,根据对应的错误日志信息,做对应排查。
  3. 检查迁移方案是否选择正确。

    根据自建Redis迁移至DCS、DCS实例间迁移、其他云厂商Redis服务迁移至DCS的不同场景,选择合适的迁移方案,例如,DCS实例间迁移,高版本不支持迁移到低版本。

    迁移方案选择不正确,会导致迁移失败,具体迁移方案,请查看迁移方案介绍

  4. 检查源Redis是否放通SYNC和PSYNC命令,迁移任务底层资源与源Redis、目标Redis网络是否连通。

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

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

    • 网络

      检查源Redis、目标Redis、迁移任务所需虚拟机是否在同一个VPC,如果是同一个VPC,则检查安全组(Redis 3.0/Redis 6.0企业版实例)或白名单(Redis 4.0/5.0/6.0基础版实例)是否放通端口和IP,确保网络是连通的;如果不在同一个VPC,则需要建立VPC对等连接,打通网络。

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

      迁移任务的安全组“出方向规则”需放通端口和IP,确保迁移任务底层虚拟机可以访问源Redis和目标Redis,请参考配置安全组

      源Redis和目标Redis属于不同的云厂商,请参考云专线打通网络。

      Redis 4.0/5.0/6.0基础版实例需要放通白名单的目的,是允许迁移任务底层虚拟机可以访问源Redis和目标Redis(迁移任务底层虚拟机会占用一个IP)。同样,如果是Redis 3.0/Redis 6.0企业版实例,需要配置实例安全组的入方向规则对迁移任务底层虚拟机放通。

    • 命令

      默认情况下,一般云厂商都是禁用了SYNC和PSYNC命令,如果要放通,需要联系云厂商运维人员放通命令。

      • 华为云内部进行迁移:
        • 自建Redis迁移至DCS,默认没有禁用SYNC和PSYNC命令;
        • 华为云DCS服务之间进行迁移,如果是同一账号相同Region进行在线迁移,在执行迁移时,会自动放通SYNC和PSYNC命令;
        • 如果是不同Region或相同Region不同账号进行在线迁移,不会自动放通SYNC和PSYNC命令,无法使用在线迁移。推荐使用备份文件导入方式迁移。
      • 其他云厂商迁移到华为云:

        一般云厂商都是禁用了SYNC和PSYNC命令,如果使用在线迁移功能,需要联系源端的云厂商运维人员放通此命令,离线迁移,推荐使用备份文件导入方式。

  5. 检查源Redis是否存在大Key。操作请参见分析源Redis是否存在大Key

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

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

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

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

  7. 如果是单机/主备实例迁移到集群实例,请检查:

    • 如果是单机/主备实例迁移到Proxy集群实例,Proxy集群默认不开启多DB,仅有一个DB0,请先确保单机/主备实例DB0以外的DB是否有数据,如果有,请先参考开启多DB操作开启Proxy集群多DB设置。
    • 如果是单机/主备实例迁移到Cluster集群实例,Cluster集群不支持多DB,仅有一个DB0,请先确保单机/主备实例DB0以外的DB是否有数据,如果有,请将数据转存到DB0,否则会出现迁移失败,将数据转存到DB0的操作请参考使用Rump在线迁移

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

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

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