Brains Up AnalyticsBRAINSUPAnalytics
SSISCheckpointsSQL ServerETL

Checkpoints no SSIS: como retomar um pacote do ponto exato da falha

Como usar os Checkpoints do SSIS para retomar um pacote longo do ponto exato da falha — as 3 propriedades de configuração, as armadilhas com Data Flow e loops, e quando (ou não) usar em 2026.

Por Dione Fraga · Databricks Certified Professional03 de agosto de 20264 min de leitura

Toda equipe que ainda mantém ETL em SQL Server Integration Services conhece a cena: um pacote longo — extração pesada, algumas transformações, várias cargas — falha na penúltima task. A opção óbvia é reexecutar o pacote inteiro. O problema é que isso re-extrai dados que já estavam na staging, refaz trabalho que já tinha dado certo e, em cargas noturnas, ameaça estourar a janela de processamento.

Os Checkpoints do SSIS existem justamente para isso: gravar o progresso do pacote em disco e, na reexecução, retomar do ponto exato onde parou. É um recurso antigo, estável e subutilizado — e continua valendo muito nos portfólios legados que sustentam operações críticas.

Como funciona por baixo

Quando os checkpoints estão ativos, o SSIS grava um arquivo XML de checkpoint no início da execução. A cada task do Control Flow concluída com sucesso, ele registra esse progresso (e o valor corrente das variáveis) no arquivo. Se o pacote falha, o arquivo permanece em disco. Na próxima execução, o SSIS lê o arquivo, identifica o que já foi concluído e retoma a partir da primeira task que ainda não terminou com êxito. Quando o pacote roda inteiro sem falhas, o arquivo é apagado — e recriado na próxima execução.

Repare no escopo: o checkpoint opera no nível do Control Flow, não do Data Flow. Ou seja, a granularidade de reinício é a task, não a linha de dados.

Os 3 passos de configuração

1) Propriedades do pacote (Control Flow):

  • SaveCheckpoints = True — habilita a gravação do checkpoint.
  • CheckpointUsage = IfExists — usa o arquivo se ele existir; caso contrário, roda do começo. (As outras opções são Never e Always; Always exige que o arquivo exista e falha se não houver.)
  • CheckpointFileName = <caminho do arquivo> — o local do arquivo de checkpoint.

2) Caminho estável para o arquivo:

Em desenvolvimento, um caminho local resolve. Em produção, use um caminho UNC (\\servidor\share\pacote.chk) acessível pela conta que executa o pacote (normalmente o SQL Server Agent). Um caminho local no servidor de execução costuma quebrar quando o pacote é movido ou executado por outro nó.

3) Propriedade das tasks críticas:

  • FailPackageOnFailure = True em cada task que deve marcar um ponto de checkpoint. Sem isso, a falha da task não é registrada como ponto de retomada.

Armadilhas que valem ouro

Data Flow é atômico para o checkpoint. Se um Data Flow falha no meio, o reinício acontece no início daquele Data Flow — não na linha que falhou. Por isso, isole cargas caras em tasks próprias: assim uma falha lá na frente não obriga a repetir a extração pesada anterior.

Containers exigem cuidado extra. Dentro de um Sequence Container ou de loops (For Loop, Foreach Loop), configure FailParentOnFailure = True na task e FailPackageOnFailure = True no container. Importante: o SSIS não retoma no meio de um loop — ele reinicia a iteração corrente do começo. Não conte com checkpoint para retomar dentro de um Foreach no arquivo 7 de 10; ele voltará ao início do loop.

Transações e checkpoints são coisas diferentes. Checkpoint controla o que reexecutar; ele não desfaz o que já foi gravado. Se uma task já inseriu dados e você retoma depois dela, esses dados continuam lá. Combine checkpoint com idempotência (cargas que podem rodar duas vezes sem duplicar): staging truncada por execução, MERGE por chave, ou controle de watermark.

Alterou o pacote? Descarte o checkpoint antigo. Se você editou o Control Flow entre a falha e a reexecução, o arquivo de checkpoint pode não corresponder mais à estrutura do pacote. Apague-o e rode do zero.

Quando usar (e quando não)

Checkpoints brilham em pacotes longos, sequenciais e caros de reprocessar — o ETL noturno clássico, com uma extração demorada seguida de várias cargas. Para pacotes curtos, idempotentes e baratos de reexecutar, a complexidade extra raramente compensa: rerodar tudo é mais simples e mais robusto.

Vale lembrar o contexto de 2026: a Microsoft praticamente congelou novas features do SSIS, e a recomendação para novos fluxos é o Fabric Data Factory. Mas milhares de pacotes SSIS seguem em produção, e agora dá para orquestrá-los dentro do Fabric via a atividade Invoke SSIS Package (Preview), apontando para o mesmo SSISDB. Ou seja: dominar bem o SSIS — inclusive resiliência com checkpoints — continua sendo dinheiro no bolso enquanto o legado é modernizado no seu ritmo.

Resumo

Checkpoints transformam "o pacote falhou, roda tudo de novo" em "o pacote falhou, retoma de onde parou". Três propriedades no pacote, uma em cada task crítica, um caminho de arquivo estável — e você economiza janela de carga, reduz reprocessamento e ganha resiliência em pipelines que o negócio não pode perder.

Artigos relacionados

Gostou? Veja os e-books para conteúdo aprofundado.

E-books