在SSIS包中使用 Checkpoint从失败处重新启动包[转]

时间:2021-11-03 00:41:33

使用SSIS做ETL的过程中会遇到各种各样的错误,对于一些大数据量的Job失败以后我们不希望重新运行,因为重新运行的时间开销是非常大的,我们只希望从失败的部分开始运行,这样可以省去很多的时间。

SSIS提供了Checkpoints的功能,可以捕获检查点文件中的重新启动点。失败的容器类型以及功能(例如事务)的实现都会影响在检查点文件中所记录的重新启动点。检查点文件中还捕获变量的当前值。

创建SSIS的时候需要制定 checkpoint文件目录,checkpoint的信息会被保存到这个xml文件。当package运行的时候,SSIS执行下面的步骤执行checkpoints:

1.     创建xml文件

2.     记录当前用户定义的变量

3.     记录每一个成功的步骤

4.     根据情况选择执行下面的一个选项

A.     当package由于错误停止,保存checkpoint文件

B.     当整个Package执行成功时删除checkpoint文件

创建SSIS包如下:

在SSIS包中使用 Checkpoint从失败处重新启动包[转]

1.  配置Checkpoints,有三个选项需要配置CheckpointFileName,CheckpointUsage,SaveCheckpoints

SSIS 包属性:

在SSIS包中使用 Checkpoint从失败处重新启动包[转]

CheckpointFileName: D:\BAC_SSIS_Processing\BOA Reports-Excel\SSIS_CheckPoint.txt
CheckpointUsage:       IfExists
SaveCheckpoints:        True

2.  将使用Checkpoints的每个Task属性FailPackageOnFailure设置为设置为True

在SSIS包中使用 Checkpoint从失败处重新启动包[转]

3. 测试失败的状况,可以更改其中一个Task的ForceExecutionResults选项为Failure,这样可以模拟Task失败。

在SSIS包中使用 Checkpoint从失败处重新启动包[转]

4. 执行一次,失败,在目录下面可以找到自动创建的checkpoint的文件。

在SSIS包中使用 Checkpoint从失败处重新启动包[转]

在SSIS包中使用 Checkpoint从失败处重新启动包[转]

5. 修改后重新执行,只从出错task开始执行,checkpoint的文件会被删除。

在SSIS包中使用 Checkpoint从失败处重新启动包[转]

在SSIS包中使用 Checkpoint从失败处重新启动包[转]