使用数据迁移工具ossimport发生迁移失败的问题,什么原因?
如果迁移文件失败,建议您先查看迁移失败日志,确认失败的原因。您可以在解决这些问题后使用retry命令进行重试。迁移失败日志的路径为master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log。
解决方案:使用stat命令查看迁移任务状态,如果JobState为failed,则迁移任务失败。迁移完成后请使用retry命令进行重试。
解决方案:
a.查看迁移失败文件列表master/jobs/${JobName}/failed_tasks/${TaskName}/error.list,获取失败文件的相对路径。
b.确认是否有这部分文件的权限访问、文件是否被删除、是否是软链接文件、文件名是否存在乱码等。
c.解决以上问题后,使用retry命令进行重试。
Exception:com.aliyun.oss.OSSException: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
<Error>
<Code>AccessDenied</Code>
<Message>The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.</Message>
<RequestId>56EA98DE815804**21B23EE6</RequestId>
<HostId>my-oss-bucket.oss-cn-qingdao.aliyuncs.com</HostId>
<Bucket>my-oss-bucket</Bucket>
<Endpoint>oss-cn-hangzhou.aliyuncs.com</Endpoint>
</Error>
问题分析:srcDomain或destDomain填写错误,请按照域名列表填写正确的Endpoint。
Exception:com.aliyun.oss.OSSException: The request signature we calculated does not match the signature you provided. Check your key and signing method.
[ErrorCode]: SignatureDoesNotMatch
[RequestId]: xxxxxxx
[HostId]: xxx.oss-cn-shanghai.aliyuncs.com
问题分析:destAccessKey和destSecretKey有误,请填写正确的AK信息。
java.lang.IllegalArgumentException: The bucket name "xxx/xx" is invalid. A bucket name must: 1) be comprised of lower-case characters, numbers or dash(-); 2) start with lower case or numbers; 3) be between 3-63 characters long.
问题分析:检查配置项destBucket是否填写正确,Bucket名称是不带正斜线(/)以及路径的。
Unable to execute HTTP request: Connect to xxx.oss-cn-beijing-internal.aliyuncs.com:80 timed out
[ErrorCode]: ConnectionTimeout
[RequestId]: Unknown
问题分析:这个是连接超时的报错,通常原因是迁移用的设备非ECS实例或不是与OSS同地域的ECS实例,但是配置文件使用了OSS的内网域名。OSS内网域名仅支持同地域ECS实例访问。
解决方案:
a.修改配置文件中域名为外网Endpoint,清除任务后重新提交任务。
b.使用与OSS同地域的ECS实例运行迁移任务。
com.aliyun.oss.OSSException: The specified bucket is not valid.
[ErrorCode]: InvalidBucketName
[RequestId]: 57906B4DD0EBAB0FF553D661
[HostId]: you-bucket.you-bucketoss-cn-hangzhou-internal.aliyuncs.com
问题分析:配置文件里的destDomian配置的域名是Bucket所在地域的Endpoint地址,而不是带Bucket名称的二级域名。例如Bucket在华北2(北京),应填写oss-cn-beijing.aliyuncs.com。详情请参见配置文件示例。
Unable to execute HTTP request: The Difference between the request time and the current time is too large.
[ErrorCode]: RequestTimeTooSkewed
[RequestId]: xxxxxxx
问题分析:该报错可能是以下情况导致。
a.本地机器时间不对,与OSS服务器时间相差15分钟以上,该情况居多。
b.可能是并发太高,尤其是CPU占用率很高,导致并发上传慢。
解决方案:
a.修改本地时间,与OSS服务器一致。
b.如果是并发问题,可以调整并发。您可以将sys.properties文件的workerTaskThreadNum参数值改小。
问题分析:这种情况一般是本地防火墙或者iptables等原因导致网络不通。
解决方案:通过ping命令测试迁移服务器到源端和目的端网络是否正常。
a.若网络正常,可检查电脑防火墙和本地的防火墙设备是否有限制,可尝试关闭防火墙测试。
b.若网络异常,排查原因并处理后重试。
问题分析:该问题是因为指定的http列表文件格式不对或内容不符合规范。
解决方案:
a.如果是从其它操作系统上拷过来的文件,Linux系统可以用mac2unix、dos2unix等相关命令转换文件格式;Windows系统可以使用notepad等工具转换格式。
b.如果是列表文件内容的格式不正确,请修改为正确的格式。列表文件内容的格式请参见列表文件。
Exception:java.lang.IllegalArgumentException: The object key "/xxxxx.jpg" is invalid. An object name should be between 1 - 1023 bytes long when encoded as UTF-8 and cannot contain LF or CR os unsupported chars in XML1.0, and cannot begin with "/" or "\".
解决方案:
a.检查srcPrefix是否是作为目录但没有以正斜线(/)结尾。如果是目录,请以正斜线(/)结尾。
b.检查destPrefix是否以正斜线(/)或者反斜线(\)开头。如果是,请删除正斜线(/)或反斜线(\),destPrefix不能以正斜线(/)或反斜线(\)开头。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。