在使用控制台进行数据迁移时,如果出现迁移方案选择错误、在线迁移源Redis没有放通SYNC和PSYNC命令、源Redis和目标Redis网络不连通等问题,都会导致迁移失败。
排查步骤
步骤 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 如果无法解决,请联系技术支持。