Checkpoint 和Breakpoint

时间:2021-05-21 06:39:59

参考:
http://www.cnblogs.com/qiangshu/p/5241699.html
http://www.cnblogs.com/biwork/p/3366724.html

1. CheckPoint 检查点
    使重新执行的包从原先的失败点开始执行; 比如有5个步骤,第三个错了,修复后重新执行的时候,前2个不必重复
    设置checkpoint,跳过上一次已经成功执行过一些步骤而直接从失败的地方重新开始执行
    当执行包失败时,Checkpoint可以将这个信息保存在checkpoint文档中,当下次执行就可以决定从那个位置开始继续执行
    只可以使用在ControlFlow
    失败的容器类型以及功能(例如事务)的实现都会影响在检查点文件中所记录的重新启动点

使用场景:

1. 执行时间长的任务,提高其出错后重新执行效率低的问题(疑问:是从失败的控件开始执行?还是能从失败的某一条记录开始执行?)

2. 把一些原子的、不可分割的任务组合在一起,要么一起执行失败,要么一起成功,容易控制 (疑问:这个怎么实现??)

使用方法:

启用checkPoint,空白处右键-属性,属性saveCheckPoint=true;
          checkPointUsage=IfExists; 如果检查文件不存在将从头开始执行 CheckpointUsage=Always检查文件将必须存在
      checkpointFileName=filepath; 一个包将只有一个检查文件
    最后在包的各种task上都设置checkPoint,并将FailPackageOnFailure设置为true
    Checkpoint只支持到Control Flow Task这一层,而不会支持Data Flow这一层; 循环组件,检查点不会记录循环中的状态
    如果设置TransactionOption = Required的话,将不允许使用 Checkpoints 这一机制

创建SSIS的时候需要制定 checkpoint文件目录,checkpoint的信息会被保存到这个xml文件。当package运行的时候,SSIS执行下面的步骤执行checkpoints:
  1.创建xml文件
  2.记录当前用户定义的变量
  3.记录每一个成功的步骤
  4.根据情况选择执行下面的一个选项
    A.当package由于错误停止,保存checkpoint文件
    B.当整个Package执行成功时删除checkpoint文件

2. BreakPoint 断点
      主要在ScriptTask和ScriptComponent里非常管用,类似C#开发在VS里的debug调试