
# 迁移故障处理
本章节介绍了在迁移过程中不同迁移故障的处理建议。
#### 重新启动数据同步失败
重新启动数据同步失败的处理建议：
1. [分析源Redis是否存在大Key](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-190808001.html)，如果源Redis存在大key，建议将大key打散成多个小key后再迁移。
2. 检查目标Redis的规格是否小于迁移数据大小、是否有其他任务在执行。
   - 如果目标Redis的实例规格小于迁移数据大小，迁移过程中，内存被占满，会导致迁移失败。
   
   - 如果目标Redis存在正在执行的主备倒换，建议联系客服停止主备倒换后，重新执行数据迁移。待迁移完成后，重新开启主备倒换。
    
3. 提供错误信息，联系客服。
 
#### Redis服务地址不通
Redis服务地址不通，建议从以下几个方面做排查 ：
- [Redis和ECS之间的连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section1334143794418)
- [公网连接Redis](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section699624715508)
- [密码问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37899963912)
- [实例配置问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37691913237)
- [客户端连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section541942617434)
- [带宽超限导致连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section16381185735011)
- [性能问题导致连接超时](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section15743184115112)
 
#### Redis认证鉴权失败
redis认证鉴权失败的处理建议：
确保源Redis和目标Redis密码输入正确，且迁移过程中密码未被修改。
如果忘记了密码，[重置缓存实例密码](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-0312039.html)后，需重新配置迁移任务。
#### 解析RDB失败
解析RDB失败的处理建议：
请检查源端Redis日志，通常是全量同步过久或者增量过大，导致output buffer打满。通常解决办法有如下几种:
- 修改增大源端output buffer的大小，通过[修改output-buffer-limit参数](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-0312024.html)，建议采用这种方式。
- 增大shake全量同步的并发度，调高parallel。
- 在业务低峰期再进行同步。
 
#### 从断点恢复失败
从断点恢复失败，建议从以下几个方面做排查 ：
- [Redis和ECS之间的连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section1334143794418)
- [公网连接Redis](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section699624715508)
- [密码问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37899963912)
- [实例配置问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37691913237)
- [客户端连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section541942617434)
- [带宽超限导致连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section16381185735011)
- [性能问题导致连接超时](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section15743184115112)
 
#### Redis的IP和port参数非法
Redis的IP和port参数非法的处理建议：请提供错误信息，联系客服。
#### 任务失败
任务失败的处理建议：提供错误信息，联系客服。
#### 下载文件失败
下载文件失败的处理建议：
参见[下载对象失败](https://support.huaweicloud.com/obs_faq/obs_faq_0135.html)处理步骤。
#### 集群不支持AOF格式文件导入
集群不支持AOF格式文件导入的处理建议：
Cluster集群仅支持导入.rdb备份文件，不支持.aof备份文件。
#### 迁移AOF文件到目标Redis失败
迁移AOF文件到目标redis失败，建议从以下几个方面做排查 ：
- [Redis和ECS之间的连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section1334143794418)
- [公网连接Redis](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section699624715508)
- [密码问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37899963912)
- [实例配置问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37691913237)
- [客户端连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section541942617434)
- [带宽超限导致连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section16381185735011)
- [性能问题导致连接超时](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section15743184115112)
 
#### 迁移RDB文件到目标Redis失败
迁移RDB文件到目标redis失败，建议从以下几个方面做排查 ：
- [Redis和ECS之间的连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section1334143794418)
- [公网连接Redis](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section699624715508)
- [密码问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37899963912)
- [实例配置问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37691913237)
- [客户端连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section541942617434)
- [带宽超限导致连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section16381185735011)
- [性能问题导致连接超时](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section15743184115112)
 
#### 解压文件失败
解压文件失败的处理建议：
1. 确保文件未损坏，且文件格式正常。
2. 排查迁移机规格是否太小，磁盘是否已写满，此情况建议扩容迁移机规格。
 
#### 不支持该文件格式
不支持该文件格式的处理建议：
只支持.rdb、.aof、.zip、.tar.gz文件格式。
#### 迁移文件失败
迁移文件失败，建议从以下几个方面做排查 ：
- [Redis和ECS之间的连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section1334143794418)
- [公网连接Redis](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section699624715508)
- [密码问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37899963912)
- [实例配置问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37691913237)
- [客户端连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section541942617434)
- [带宽超限导致连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section16381185735011)
- [性能问题导致连接超时](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section15743184115112)
#### 文件或目录不存在
文件或目录不存在的处理建议：
1. 排查迁移机规格是否太小，磁盘是否已写满，此情况建议扩容迁移机规格。
2. 提供错误信息，联系客服。
 
#### 无法连接到源Redis
无法连接到源Redis的处理建议：
1. 参见[Redis连接失败问题排查和解决](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html)。
2. 排查源Redis规格和迁移机内存大小，迁移机的内存小，源Redis数据量过大，迁移速度过慢使数据堆积在迁移机上时，也会导致该类问题，此情况建议扩容迁移机规格。
3. 排查迁移机路由是否正常，迁移机上执行命令查看：**route - n**
4. 提供错误信息，联系客服。
 
#### 从源节点导出备份文件失败
从源节点导出备份文件失败，建议从以下几个方面做排查 ：
- [Redis和ECS之间的连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section1334143794418)
- [公网连接Redis](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section699624715508)
- [密码问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37899963912)
- [实例配置问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37691913237)
- [客户端连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section541942617434)
- [带宽超限导致连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section16381185735011)
- [性能问题导致连接超时](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section15743184115112)
 
#### 导入备份文件到目标Redis失败
导入备份文件到目标Redis失败，建议从以下几个方面做排查 ：
- [Redis和ECS之间的连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section1334143794418)
- [公网连接Redis](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section699624715508)
- [密码问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37899963912)
- [实例配置问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section37691913237)
- [客户端连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section541942617434)
- [带宽超限导致连接问题](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section16381185735011)
- [性能问题导致连接超时](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html#dcs-trouble-0715001__section15743184115112)
 
#### 修改redis-shake-conf配置文件失败，参数错误
修改redis-shake-conf配置文件失败的处理建议：
1. 排查迁移机规格是否太小，磁盘是否已写满，此情况建议扩容迁移机规格。
2. 提供错误信息，联系客服。
 
#### 同步数据失败，源节点：{0}，目标节点：{1}
同步数据失败的处理建议：
1. [分析源Redis是否存在大Key](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-190808001.html)，如果源Redis存在大key，建议将大key打散成多个小key后再迁移。
2. 确保目标Redis规格不小于源Redis。查看规格步骤参见[查看实例信息](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-0312016.html)；
3. 参见[Redis连接失败问题排查和解决](https://support.huaweicloud.com/trouble-dcs/dcs-trouble-0715001.html)。
4. 排查源Redis规格和迁移机内存大小，迁移机的内存小，源redis数据量过大，迁移速度过慢使数据堆积在迁移机上时，也会导致该类问题，此情况建议扩容迁移机规格。
 
#### 部署migration工具失败
部署migration工具失败的处理建议：
1. 排查数据面到OBS服务网络是否正常。
2. 提供错误信息，联系客服。
 
#### 在线迁移失败
在线迁移失败的处理建议：提供错误信息，联系客服。
#### 绑定port到ECS虚拟机失败
绑定port到ECS虚拟机失败的处理建议：
迁移任务底层资源可能不足，需要联系客服处理。
#### 创建迁移ECS虚拟机失败
创建迁移ECS虚拟机失败的处理建议：提供错误信息，联系客服。
#### 文件操作异常
文件操作异常的处理建议：
1. 排查源Redis规格和迁移机内存大小，迁移机的内存小，源Redis数据量过大，迁移速度过慢使数据堆积在迁移机上时，也会导致该类问题，此情况建议扩容迁移机规格。
2. 提供错误信息，联系客服。
 
#### 执行命令异常
执行命令异常的处理建议：
- 错误信息中包含"listening-port"和"REPLCONF"相关，请检查源Redis是否放通SYNC和PSYNC命令，迁移任务底层资源与源Redis、目标Redis网络是否连通。 在线迁移，必须满足源Redis和目标Redis的网络相通、源Redis已放通SYNC和PSYNC命令这两个前提，否则，会迁移失败。
  - 网络 检查源Redis、目标Redis、迁移任务所需虚拟机是否在同一个VPC，如果是同一个VPC，则检查安全组（Redis 3.0实例）或白名单（Redis 4.0/5.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)。
    源Redis和目标Redis属于不同的云厂商，请参考[云专线](https://support.huaweicloud.com/productdesc-dc/zh-cn_topic_0032053183.html)打通网络。
    
  
  - 命令 默认情况下，一般云厂商都是禁用了SYNC和PSYNC命令，如果要放通，需要联系云厂商运维人员放通命令。
    - 华为云内部进行迁移：
      - 自建Redis迁移至DCS，默认没有禁用SYNC和PSYNC命令；
      
      - 华为云DCS服务之间进行迁移，如果是同一账号相同Region进行在线迁移，在执行迁移时，会自动放通SYNC和PSYNC命令；
      
      - 如果是不同Region或相同Region不同账号进行在线迁移，不会自动放通SYNC和PSYNC命令，无法使用在线迁移。推荐使用备份文件导入方式迁移。
       
    
    - 其他云厂商迁移到华为云： 一般云厂商都是禁用了SYNC和PSYNC命令，如果使用在线迁移功能，需要联系源端的云厂商运维人员放通此命令，离线迁移，推荐使用备份文件导入方式。
      
     
   

- 错误信息包含"read error"，且为全量迁移过程中失败，数据量过大的情况下，建议开始迁移时不要选择"自动重连"模式，等到进入"增量迁移"后，再选择"自动重连"模式，且[调大repl-timeout的时间值](https://support.huaweicloud.com/dcs_faq/dcs-migration-211125001.html)；同时建议调整源端output buffer参数，buffer参数的大小需要根据源端内存大小来定，比如源端24G的内存大小，可以调整为2G的buffer，命令： **client-output-buffer-limit slave 2gb 2gb 600** 。
- 错误信息中包含"write: connection reset by peer"，可能原因目标Redis内存规格太小导致内存写满，无法同步数据，建议[扩大目标Redis实例规格](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-0713006.html)，至少与源端实例规格持平。
- 错误信息中包含"read: connection reset by peer"，源Redis为主备，且迁移过程中，频繁发生主备倒换，请[分析源Redis是否存在大Key](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-190808001.html)，如果源Redis存在大key，建议将大key打散成多个小key后再迁移。也可强行关闭主备倒换，等数据迁移完毕后再开启主备倒换，命令：**config set slave-priority 0** 。如果目标Redis为proxy集群，请排查pipeline阈值大小，建议调整proxy节点pipeline阈值为5W，命令： **proxy.config set client-max-pipeline 50000**。
- 提供错误信息，联系客服。
 
#### 解码或解析失败
解码或解析失败的处理建议：
1. 排查迁移机规格是否太小，磁盘是否已写满，此情况建议扩容迁移机规格。
2. 提供错误信息，联系客服。
 
#### 未知或未支持的命令
未知或未支持的命令的处理建议：
检查源Redis有没有放通相关命令，如SYNC和PSYNC，需要联系客服放通命令。
在线迁移，必须满足源Redis和目标Redis的网络相通、源Redis已放通SYNC和PSYNC命令这两个前提，否则，会迁移失败。
- 网络 检查源Redis、目标Redis、迁移任务所需虚拟机是否在同一个VPC，如果是同一个VPC，则检查安全组（Redis 3.0实例）或白名单（Redis 4.0/5.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)。
  源Redis和目标Redis属于不同的云厂商，请参考[云专线](https://support.huaweicloud.com/productdesc-dc/zh-cn_topic_0032053183.html)打通网络。
  
- 命令 默认情况下，一般云厂商都是禁用了SYNC和PSYNC命令，如果要放通，需要联系云厂商运维人员放通命令。
  - 华为云内部进行迁移：
    - 自建Redis迁移至DCS，默认没有禁用SYNC和PSYNC命令；
    
    - 华为云DCS服务之间进行迁移，如果是同一账号相同Region进行在线迁移，在执行迁移时，会自动放通SYNC和PSYNC命令；
    
    - 如果是不同Region或相同Region不同账号进行在线迁移，不会自动放通SYNC和PSYNC命令，无法使用在线迁移。推荐使用备份文件导入方式迁移。
     
  
  - 其他云厂商迁移到华为云： 一般云厂商都是禁用了SYNC和PSYNC命令，如果使用在线迁移功能，需要联系源端的云厂商运维人员放通此命令，离线迁移，推荐使用备份文件导入方式。
    
   
 
#### 同步数据失败
同步数据失败的处理建议：
1. 错误信息包含"key name is busy"，目标Redis对应的key已经存在，删除目标Redis报错的key。
2. 错误信息包含"not in the same slot"，建议进行业务改造，不要在多key命令里面用跨slot的key；也可以把目标Redis用主备实例代替proxy集群实例。
3. 错误信息中包含"read: connection reset by peer"，源Redis为主备，且迁移过程中，频繁发生主备倒换，请[分析源Redis是否存在大Key](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-190808001.html)，如果源Redis存在大key，建议将大key打散成多个小key后再迁移；也可强行关闭主备倒换，等数据迁移完毕后再开启主备倒换，命令：**config set slave-priority 0** 。如果目标Redis为proxy集群，请排查pipeline阈值大小，建议调整proxy节点pipeline阈值为5W，命令： **proxy.config set client-max-pipeline 50000**。
 
#### 导入备份文件失败
导入备份文件失败的处理建议：提供错误信息，联系客服。
