任务进度恢复
更新时间:2021-12-29
从 status.log
里可以看到相应的文件列表具体的迁移进度,如果client崩溃了可以从日志中找到相应的断点恢复迁移,进度恢复是根据任务列表(list)的粒度来进行的。
示例:
client.properties文件配置:
taskList=/home/work/list/task_list
task_list文件内容:
/home/work/list/object_list1
/home/work/list/object_list2
# /home/work/list/object_list3
object_list1文件内容:
bucket1 obj1
bucket1 obj2
bucket1 obj3
#bucket1 obj4
bucket1 obj5
object_list2文件内容:
bucket1 obj21
#bucket1 obj22
bucket1 obj23
bucket1 obj24
bucket1 obj25
bucket1 obj26
status.log文件内容:
2015-12-31 17:13:42.013 /home/work/list/object_list1 2/-1
2015-12-31 17:13:45.014 /home/work/list/object_list2 3/-1
2015-12-31 17:13:48.014 /home/work/list/object_list2 4/6
2015-12-31 17:13:51.014 /home/work/list/object_list1 5/5 finished
2015-12-31 17:13:53.014 /home/work/list/object_list2 4/6
object_list1 2/-1
表示已经处理完了object_list1
这个列表的第2行,-1
表示这个文件还没有读完不知道有多少行,如果这个时候崩溃了,由于采用了并发,所以并不知道具体是完成了列表中的哪几个文件的迁移。- 如果需要从某个进度位置重新开始任务,需要建立新的list文件,使用新的配置重新启动client。首先要根据
status.log
文件内容找出还有哪些object_list
文件的数据没有迁移完,例如object_list2
还没有迁移完,就将其放到新的task_list_continue
文件里,并修改配置文件,示例如下:
修改client.properties
文件:
taskList=/home/work/list/task_list_continue
修改task_list_continue
文件:
/home/work/list/object_list2
redo重传
当所有需要迁移的列表处理完之后,需要对迁移失败或者迁移过程当中出现问题的文件进行重传。 从迁移日志中整理出重传的列表:redo和unsent日志文件中的文件可以使用KEEP_DESTITNATION
的迁移策略,但是对于failed的文件列表,需要考虑使用FORCE_OVERWRITE
策略进行迁移,因为可能是因为迁移出现了数据错误。