SSIS(SQL Server Integration Services)執行長時間資料同步任務時,若中途失敗,重跑整個流程耗時且可能造成資料重複。Checkpoint 正是內建的斷點續傳機制,僅需設定幾個屬性即可實現「失敗點續跑」,大幅降低維運風險。
CheckpointFileName:指定檢查點檔案路徑(如 D:\SSIS\Checkpoints\pkg.checkpoint),記錄執行快照。CheckpointUsage:IfExists(預設):檔案存在才啟用續跑。Always:每次執行都嘗試續跑。Never:停用。SaveCheckpoints:必須設為 True,才會寫入檢查點檔案。FailPackageOnFailure = True:該任務失敗時,標記套件失敗,下次從該任務重新開始。FailParentOnFailure = True:該任務失敗時,標記父容器失敗,下次從父容器重新開始(適用於需整批重跑的序列/迴圈容器)。首次執行:任務 1→2→3,任務 2 失敗。

第二次執行:任務 1 顯示綠色(已完成略過),直接從任務 2 重跑。

序列容器內含任務 A、B、C,設定容器 FailParentOnFailure=True。
首次執行:任務 B 失敗。

第二次執行:整個容器(A、B、C)全數重跑。

CheckpointFileName 放在非系統盤,避免空間不足。CheckpointUsage=IfExists,配合作業排程自動清理舊檢查點檔。善用 Checkpoint,讓 SSIS 封裝具備企業級的容錯與可恢復能力。