
# 数据迁移失败问题排查
在使用控制台进行数据迁移时，如果出现迁移方案选择错误、在线迁移源Redis没有放通SYNC和PSYNC命令、源Redis和目标Redis网络不连通等问题，都会导致迁移失败。
本章节主要介绍使用DCS控制台进行数据迁移时迁移失败的问题排查和解决。
#### 排查步骤
1. 单击已创建的迁移任务名称，进入迁移任务页面。
2. 查看迁移日志。参照[迁移故障处理](https://support.huaweicloud.com/dcs_faq/dcs-migration-022052301.html#dcs-migration-022052301)，根据对应的错误日志信息，做对应排查。
   
   图1查看迁移日志   
   ![](https://support.huaweicloud.com/dcs_faq/zh-cn_image_0000001455510865.png "点击放大")
   
   
3. 检查迁移方案是否选择正确。 
   根据自建Redis迁移至DCS、DCS实例间迁移、其他云厂商Redis服务迁移至DCS的不同场景，选择合适的迁移方案，例如，DCS实例间迁移，高版本不支持迁移到低版本。
   迁移方案选择不正确，会导致迁移失败，具体迁移方案，请查看[迁移方案介绍](https://support.huaweicloud.com/usermanual-dcs/dcs-migration-090626002.html)。
   
   
4. 检查源Redis是否放通SYNC和PSYNC命令，迁移任务底层资源与源Redis、目标Redis网络是否连通。 
   如果是在线迁移，才涉及该操作。
   在线迁移，必须满足源Redis和目标Redis的网络相通、源Redis已放通SYNC和PSYNC命令这两个前提，否则，会迁移失败。
   - 网络 检查源Redis、目标Redis、迁移任务所需虚拟机是否在同一个VPC，如果是同一个VPC，则检查安全组（Redis 3.0/Redis 6.0企业版实例）或白名单（Redis 4.0及以上基础版实例）是否放通端口和IP，确保网络是连通的；如果不在同一个VPC，则需要[建立VPC对等连接](https://support.huaweicloud.com/usermanual-vpc/vpc_peering_0000.html)，打通网络。
     源Redis和目标Redis必须允许迁移任务底层虚拟机访问。实例安全组或白名单配置，请参考[配置安全组](https://support.huaweicloud.com/dcs_faq/dcs-faq-0713002.html)、[配置白名单](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-190812001.html)。
     迁移任务的安全组"出方向规则"需放通端口和IP，确保迁移任务底层虚拟机可以访问源Redis和目标Redis，请参考[配置安全组](https://support.huaweicloud.com/dcs_faq/dcs-faq-0713002.html)。
     源Redis和目标Redis属于不同的云厂商，请参考[云专线](https://support.huaweicloud.com/productdesc-dc/zh-cn_topic_0032053183.html)打通网络。
     ![](https://support.huaweicloud.com/dcs_faq/public_sys-resources/note_3.0-zh-cn.png)
     Redis 4.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](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-190808001.html)。
   
   如果源Redis存在大key，建议将大key打散成多个小key后再迁移。
   
   
6. 检查目标Redis的规格是否大于迁移数据大小、是否有其他任务在执行。 
   如果目标Redis的实例规格小于迁移数据大小，迁移过程中，内存被占满，会导致迁移失败。
   如果目标Redis存在正在执行的主备倒换，建议联系客服停止主备倒换后，重新执行数据迁移。待迁移完成后，重新开启主备倒换。
   
   
7. 如果是单机/主备实例迁移到集群实例，请检查： 
   - 如果是单机/主备实例迁移到Proxy集群实例，Proxy集群默认不开启多DB，仅有一个DB0，请先确保单机/主备实例DB0以外的DB是否有数据，如果有，请先参考[开启多DB操作](https://support.huaweicloud.com/dcs_faq/dcs-faq-210804001.html#section0)开启Proxy集群多DB设置。
   
   - 如果是单机/主备实例迁移到Cluster集群实例，Cluster集群不支持多DB，仅有一个DB0，请先确保单机/主备实例DB0以外的DB是否有数据，如果有，请将数据转存到DB0，否则会出现迁移失败，将数据转存到DB0的操作请参考[使用Rump在线迁移](https://support.huaweicloud.com/usermanual-dcs/dcs-migration-090626001.html)。
   
   
   
   
8. 检查迁移操作是否正确。 
   检查填写的IP地址、实例密码是否正确。
   
   
9. 排查白名单。
10. 如果无法解决，请联系客服。
 
