先介绍下故事背景,假如现在要做一个Migration Project,要建立比较多的Plan (比如50个),在Project中你需要完成下面的任务:
1st round, 要把所有的PLAN都先跑一遍FULL MIGRATION
2nd round, 然后把所有的PLAN都做若干次incremental migration直到cut off time
具体要求:
Job需要串行运行,涉及到人去手工操作的地方要尽量少(比如,不想用每个PLAN里设置SCHEDULE的方式,首先一点是每个PLAN都设置上SCHEDULE这就需要不少时间,之后中途发现某些JOB有些问题,想先暂停所有JOB还得去把它们都DISABLE一遍)。
现在想到两个方案:
Plan Group和CLI。但是目前缺少测试数据,所以不清楚哪个方式更实用?具体要怎么操作?等等一些问题。
昨天做了一些测试,限于篇幅就不把整个测试过程都贴出来了,详细请看下面的文档,这里只是把二者的对比总结一下。
Plan Group | CLI | |
是否可以串行运行Job |
是。 所有Job的Start Time几乎一样,无法准确计算每个Job的运行时间。 |
是。 需要加-WaitforJobComplete参数 |
是否可以并行运行Job |
是。 可以在页面上自由控制并发的Job数。 |
否。 如果不加-WaitforJobComplete参数,就会使脚本中所有的Job都起来。 |
中间有Job Failed/Skipped |
后面的Job都停止运行 (6.3的逻辑,6.4会加Option,可以控制是都停止还是继续Run) |
后面的Job继续运行,如果想停止,把脚本退出即可。 |
是否可以设置Schedule | 是 | 否 |
可以运行的Job类型 |
6.3以前只支持Full 6.3以后也支持了Incremental |
Full和Incremental |
结论:
Full Job:建议选择Plan Group,GUI上操作比较简单,而且Schedule也容易控制。
Incremental Job:6.3以前由于Plan Group不支持,所以只能选择CLI;6.3以后可以选择Plan Group。