本文主要介绍在线迁移中,数据迁移失败的常见原因及解决方案。

如果迁移任务失败,您可以查看迁移失败文件列表,分析迁移失败的原因并排除问题。之后,在迁移任务列表中,单击失败任务的管理,然后单击重试,重新迁移失败的文件。

下面介绍一些常见的迁移失败问题分析及解决方案:

案例:出现“because downloader get inputstream failed”报错

问题现象:某客户 A,迁移百度云 BOS 的数据至 OSS,迁移失败文件列表产生如下报错:

查看百度云 BOS 的日志,发现如下报错信息:

问题分析:结合双方的错误提示,问题出在百度云 BOS。因请求数过多,百度云对源地址增加了流量限制,导致迁移文件失败。

解决方案:此问题可以联系百度云客服放开流量限制,或者给迁移任务添加限流后重试。
注意 目前已知的因限流问题导致失败的有:
  • 百度云 BOS:可联系百度云客服放开限流或在配置在线迁移时设置限速。
  • 七牛云:七牛云的融合 CDN 测试域名有流量和并发限制,建议分次迁移或使用融合 CDN 加速域名。
  • 又拍云:又拍云对于大流量数据下载有流量限制。若数据较大,建议联系又拍云客服放开限制,或配置 CDN 下载。

案例:出现“check size failed”报错

问题现象:某客户 B,迁移第三方数据至 OSS,迁移失败文件列表产生如下报错:

问题分析:源最后修改时间(source last modify)晚于目标最后修改时间(target last modify),这种情况通常是文件迁移到目标 Bucket 后,源文件又更新了,导致文件校验错误。

解决方案:通过重试重新迁移更新的文件。

案例:出现“premature end of content-length delimited message body”报错

问题现象:某客户 C,迁移第三方数据至 OSS,迁移失败文件列表产生如下报错:

问题分析:两次上传数据间隔时间超过1分钟,OSS会关闭超过1分钟没有发送或接收数据的连接。通常因网络延迟或其他网络问题导致。

解决方案:重试迁移任务。

案例:出现“check content-length failed”报错

问题现象:某客户 D,迁移第三方数据至 OSS,迁移失败文件列表产生如下报错:

问题分析:目标最后修改时间(target last modify)晚于源最后修改时间(source last modify),这种情况是目的地址存在和源地址同名的文件,且目的文件的最后修改时间晚于源地址的文件。在线迁移会在迁移时会忽略此类文件,但是迁移完成后的校验文件过程仍会校验该文件,可能会出现校验失败的情况。

解决方案:若您需要继续迁移该文件,则删除目的地址的文件或修改文件名后重试;若你不需要继续迁移该文件,则忽略此报错。

案例:出现“ http status code 403”报错

问题现象:某客户 E,迁移 OSS 数据至 OSS,迁移失败文件列表产生如下报错:

问题分析:403错误通常都是权限问题导致的。创建数据地址时需要有源地址的读取权限的账号和目的地址写入权限的账号。若迁移任务开始后,改变了任意一方的账号权限,或通过其他途径改变了存储空间的访问权限(如 OSS 的 Bucket Policy),导致迁移所用的账号无源地址或目的地址的访问权限,都会导致迁移失败。

解决方案:恢复迁移所用账号的权限后重试任务。

案例:出现“The operation is not valid for the object's state”报错

问题现象:某客户 F,迁移 OSS 数据至 OSS,迁移失败文件列表产生如下报错:

问题分析:在线迁移是无法迁移归档存储类型的文件的,若源地址内含有归档存储类型的文件,会报迁移该文件失败的报错。

解决方案:如需迁移该归档文件,需将修改文件类型为标准存储后重试;如不需迁移该文件,请忽略此报错。

案例:出现“check usermeta failed”报错

问题现象:某客户,迁移 BOS 数据至 OSS,出现“check usermeta failed”报错。

问题分析:这个问题是因为文件的 Http header 或 User meta 信息中包含了特殊字符,导致迁移时无法识别从而导致的数据迁移失败。

解决方案:需修改对应文件的 Http header 或 User meta 信息后重试;您也可以手动迁移失败的文件。