SlideShare une entreprise Scribd logo
1  sur  17
Confiabilidade de pacotes
no SSIS
Luciano Caixeta Moreira
luciano.moreira@srnimbus.com.br
www.srnimbus.com.br
http://luticm.blogspot.com
@luticm
Agenda

Transações
Checkpoints
Database Snapshots
Conclusão
Transações

Permite que as tarefas se “alistem” para participar de uma
transação
Cada tarefa possui sua TransactionOption:
•   Required: exige a existência de uma transação. Se não houver uma
    transação aberta uma nova é criada.
•   Supported: participa ou não de uma transação, mas não cria uma
    nova transação.
•   NotSupported: não participa da transação, mas não gera uma
    exceção caso uma transação esteja em curso.
Não são todas as tarefas que suportam transações
Transações

Isolation Level: define o nível de isolamento da
transação
•   READ UNCOMMITTED
•   READ COMMITTED
•   REPEATABLE READ
•   SERIALIZABLE
•   SNAPSHOT

Configura o pacote para trabalhar com transação
e...
Transações

Error: The SSIS Runtime has failed to start the
distributed transaction due to error 0x8004D01B
"The Transaction Manager is not available.“
MSDTC = Microsoft Distributed Transaction
Coordinator
Toda transação no SSIS é tratada como uma
transação distribuída e se alinha com o 2PC (two
phase commit)
NET START MSDTC
Transações explícitas (sem o DTC)

Como conseguir que duas tarefas diferentes
participem da mesma transação?
Propriedade da conexão RetainSameConnection
BEGIN TRAN e COMMIT são explícitos
Cuidado para evitar que uma mesma transação
seja utilizada em lugares indevidos
Manter duas conexões pode ser uma boa prática
•   ConexaoSemTransacao
•   ConexaoComTransacao
Demo
Transações
Checkpoints

Recurso do SSIS que permite um pacote reiniciar
do ponto onde ele parou
Armazena em arquivo XML informações sobre o
ponto onde o pacote falhou
SaveCheckpoints
CheckpointUsage
•   IfExists
•   Always
•   Never

CheckpointFileName
Checkpoints

Para uma tarefa que falha alterar os dados de
checkpoint é necessário FailPackageOnFailure =
TRUE
Lógica para garantir o reinício correto do pacote
nem sempre é simples
Pode ser utilizado em conjunto com tarefas e suas
transações
Não é permitido transações no nível do pacote e
checkpoints ao mesmo tempo
E nem faz sentido...
Checkpoints

Somente funciona para Control Flow
Data flow deve ser garantido por outros
  mecanismos
Checkpoint somente é mantido somente se o
pacote falhar
Cuidado com falhas de tarefas e precedência de
  falha
Checkpoints sempre reiniciam os loops!
Não trabalham com variáveis do tipo object
Demo
Checkpoints
Database snapshot

Novidade do SQL Server 2005.
Cria uma imagem do banco de dados consistente
no tempo e somente leitura.
Trabalha com o conceito de sparse files, recurso
do sistema de arquivos NTFS.
•   Somente contém as páginas que foram alteradas a partir da criação do
    snapshot.

Trabalha com o conceito de copy-on-write (figura a
seguir).
Vários snapshots podem ser criados.
•   Somente um pode existir para um restore.
Database snapshot
   Escrita de uma   Leitura da
   página           tabela
Demo
Database Snapshots
Dificuldades

Transações
•   Bloqueios em excesso podem impactar o ambiente em cargas em
    tempo real
•   Bulk load trabalhar com um tipo diferente de bloqueio
•   MSDTC pode ser um problema

Checkpoints
•   Cargas parciais de dados pelos buffers não são garantidas pelo
    checkpoint
•   É necessário proteger o arquivo XML, caso contrário podemos
    introduzir inconsistências
Dificuldades

Database snapshot
•   O mecanismo mais simples de ser implementado
•   Pode não ser factível em um ambiente onde transações
    concorrentes estão acontecendo, pois o Revert (restore do
    snapshot) causaria perda de dados
•   Criação de um ambiente paralelo somente para carga de dados
    pode resolver o problema
Conclusão

Buscar uma maior confiabilidade do pacote é dever
do programador SSIS
É melhor a ausência do dado ou dados
inconsistentes ou parcialmente carregados?
•   É o negócio que deve dizer isso!
Entender os trade-offs é importante para a solução
Não resolve o erro do arquivo, somente visa a
consistência dos dados

Contenu connexe

En vedette

FÁRMACOS ANTISÉPTICOS LOCALES.
FÁRMACOS ANTISÉPTICOS LOCALES.FÁRMACOS ANTISÉPTICOS LOCALES.
FÁRMACOS ANTISÉPTICOS LOCALES.Teniente Fantasma
 
FÁRMACOS ANTISÉPTICOS LOCALES.
FÁRMACOS ANTISÉPTICOS LOCALES.FÁRMACOS ANTISÉPTICOS LOCALES.
FÁRMACOS ANTISÉPTICOS LOCALES.Teniente Fantasma
 
1ºeso unidad 4 pai introd schulen in deutschland
1ºeso unidad 4 pai introd schulen in deutschland1ºeso unidad 4 pai introd schulen in deutschland
1ºeso unidad 4 pai introd schulen in deutschlandamesstorff
 
1º ESO unidad 2 PAI introd Die Medien AG
1º ESO unidad 2 PAI introd  Die Medien AG1º ESO unidad 2 PAI introd  Die Medien AG
1º ESO unidad 2 PAI introd Die Medien AGamesstorff
 
Programación Semana Santa 2012
Programación Semana Santa 2012Programación Semana Santa 2012
Programación Semana Santa 2012compuslideshare
 
3º ESO Deutsch B U 5 PAI Wohn(t)räume
3º ESO Deutsch B U 5 PAI Wohn(t)räume3º ESO Deutsch B U 5 PAI Wohn(t)räume
3º ESO Deutsch B U 5 PAI Wohn(t)räumeamesstorff
 
Manejo de residuos peligrosos
Manejo de residuos peligrososManejo de residuos peligrosos
Manejo de residuos peligrososjesusvazquezalv
 
Clasificacion de residuos peligrosos
Clasificacion de residuos peligrososClasificacion de residuos peligrosos
Clasificacion de residuos peligrososjesusvazquezalv
 

En vedette (20)

Omeu diario
Omeu diarioOmeu diario
Omeu diario
 
FÁRMACOS ANTISÉPTICOS LOCALES.
FÁRMACOS ANTISÉPTICOS LOCALES.FÁRMACOS ANTISÉPTICOS LOCALES.
FÁRMACOS ANTISÉPTICOS LOCALES.
 
FÁRMACOS ANTISÉPTICOS LOCALES.
FÁRMACOS ANTISÉPTICOS LOCALES.FÁRMACOS ANTISÉPTICOS LOCALES.
FÁRMACOS ANTISÉPTICOS LOCALES.
 
Datacom Globe
Datacom GlobeDatacom Globe
Datacom Globe
 
1ºeso unidad 4 pai introd schulen in deutschland
1ºeso unidad 4 pai introd schulen in deutschland1ºeso unidad 4 pai introd schulen in deutschland
1ºeso unidad 4 pai introd schulen in deutschland
 
Partit futbol
Partit futbolPartit futbol
Partit futbol
 
Hoja de vida judi
Hoja de vida judiHoja de vida judi
Hoja de vida judi
 
1º ESO unidad 2 PAI introd Die Medien AG
1º ESO unidad 2 PAI introd  Die Medien AG1º ESO unidad 2 PAI introd  Die Medien AG
1º ESO unidad 2 PAI introd Die Medien AG
 
Profundista_Si has begut o consumit drogues, no agafis la moto
Profundista_Si has begut o consumit drogues, no agafis la motoProfundista_Si has begut o consumit drogues, no agafis la moto
Profundista_Si has begut o consumit drogues, no agafis la moto
 
20160509093753152
2016050909375315220160509093753152
20160509093753152
 
123
123123
123
 
Programación Semana Santa 2012
Programación Semana Santa 2012Programación Semana Santa 2012
Programación Semana Santa 2012
 
ANURADHA MISHRA
ANURADHA MISHRAANURADHA MISHRA
ANURADHA MISHRA
 
Emerson MTM Brochure
Emerson MTM BrochureEmerson MTM Brochure
Emerson MTM Brochure
 
3º ESO Deutsch B U 5 PAI Wohn(t)räume
3º ESO Deutsch B U 5 PAI Wohn(t)räume3º ESO Deutsch B U 5 PAI Wohn(t)räume
3º ESO Deutsch B U 5 PAI Wohn(t)räume
 
Cv 23092008
Cv 23092008Cv 23092008
Cv 23092008
 
Gaya belajar
Gaya belajarGaya belajar
Gaya belajar
 
Manejo de residuos peligrosos
Manejo de residuos peligrososManejo de residuos peligrosos
Manejo de residuos peligrosos
 
Clasificacion de residuos peligrosos
Clasificacion de residuos peligrososClasificacion de residuos peligrosos
Clasificacion de residuos peligrosos
 
Gaya belajar
Gaya belajarGaya belajar
Gaya belajar
 

Similaire à Confiabilidade de pacotes SSIS com transações, checkpoints e snapshots

Java memory model primary ref. - faq
Java memory model   primary ref. - faqJava memory model   primary ref. - faq
Java memory model primary ref. - faqPedro De Almeida
 
Isolamento e mvcc
Isolamento e mvccIsolamento e mvcc
Isolamento e mvccLocaweb
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Tiago Marchetti Dolphine
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Gerenciamento de configuração com puppet
Gerenciamento de configuração com puppetGerenciamento de configuração com puppet
Gerenciamento de configuração com puppetElton Simões
 
Novidades do Sql Server 2016
Novidades do Sql Server 2016Novidades do Sql Server 2016
Novidades do Sql Server 2016Roberto Fonseca
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveiselliando dias
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
Elastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreElastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreRafael Gomes
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemastaniamaciel
 
Gerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasGerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasWendel Moreira
 
Docker SP - Orquestrando docker via Marathon e Mesos na Konker
Docker SP - Orquestrando docker via Marathon e Mesos na KonkerDocker SP - Orquestrando docker via Marathon e Mesos na Konker
Docker SP - Orquestrando docker via Marathon e Mesos na KonkerAndré Rocha
 
Fazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da portaFazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da portaFabio Telles Rodriguez
 

Similaire à Confiabilidade de pacotes SSIS com transações, checkpoints e snapshots (20)

Jj08 otimizacao
Jj08 otimizacaoJj08 otimizacao
Jj08 otimizacao
 
Monolith - An epic journey
Monolith - An epic journeyMonolith - An epic journey
Monolith - An epic journey
 
Java memory model primary ref. - faq
Java memory model   primary ref. - faqJava memory model   primary ref. - faq
Java memory model primary ref. - faq
 
Isolamento e mvcc
Isolamento e mvccIsolamento e mvcc
Isolamento e mvcc
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
 
Conhecendo o Spring
Conhecendo o SpringConhecendo o Spring
Conhecendo o Spring
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Gerenciamento de configuração com puppet
Gerenciamento de configuração com puppetGerenciamento de configuração com puppet
Gerenciamento de configuração com puppet
 
Net - Threads
Net - ThreadsNet - Threads
Net - Threads
 
Novidades do Sql Server 2016
Novidades do Sql Server 2016Novidades do Sql Server 2016
Novidades do Sql Server 2016
 
DevTalk 08/2019
DevTalk 08/2019DevTalk 08/2019
DevTalk 08/2019
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
Elastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreElastic MeetUp Porto Alegre
Elastic MeetUp Porto Alegre
 
DB2 Express-C
DB2 Express-CDB2 Express-C
DB2 Express-C
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemas
 
Gerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasGerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de Consultas
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Docker SP - Orquestrando docker via Marathon e Mesos na Konker
Docker SP - Orquestrando docker via Marathon e Mesos na KonkerDocker SP - Orquestrando docker via Marathon e Mesos na Konker
Docker SP - Orquestrando docker via Marathon e Mesos na Konker
 
Fazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da portaFazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da porta
 

Plus de Luciano Moreira

Apresentando o Azure DocumentDB
Apresentando o Azure DocumentDBApresentando o Azure DocumentDB
Apresentando o Azure DocumentDBLuciano Moreira
 
Entendendo o paralelismo no SQL Server
Entendendo o paralelismo no SQL ServerEntendendo o paralelismo no SQL Server
Entendendo o paralelismo no SQL ServerLuciano Moreira
 
Do MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Do MTA ao MCM*, carreira SQL Server e DBA multiplataformaDo MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Do MTA ao MCM*, carreira SQL Server e DBA multiplataformaLuciano Moreira
 
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOMANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOLuciano Moreira
 
SQLServerDF XII - Wait Types
SQLServerDF XII - Wait TypesSQLServerDF XII - Wait Types
SQLServerDF XII - Wait TypesLuciano Moreira
 
SQLServerDF XIII - xEvents
SQLServerDF XIII - xEventsSQLServerDF XIII - xEvents
SQLServerDF XIII - xEventsLuciano Moreira
 

Plus de Luciano Moreira (7)

Apresentando o Azure DocumentDB
Apresentando o Azure DocumentDBApresentando o Azure DocumentDB
Apresentando o Azure DocumentDB
 
Entendendo o paralelismo no SQL Server
Entendendo o paralelismo no SQL ServerEntendendo o paralelismo no SQL Server
Entendendo o paralelismo no SQL Server
 
Do MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Do MTA ao MCM*, carreira SQL Server e DBA multiplataformaDo MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Do MTA ao MCM*, carreira SQL Server e DBA multiplataforma
 
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOMANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
 
SQLInternalOps - SQLOS
SQLInternalOps - SQLOSSQLInternalOps - SQLOS
SQLInternalOps - SQLOS
 
SQLServerDF XII - Wait Types
SQLServerDF XII - Wait TypesSQLServerDF XII - Wait Types
SQLServerDF XII - Wait Types
 
SQLServerDF XIII - xEvents
SQLServerDF XIII - xEventsSQLServerDF XIII - xEvents
SQLServerDF XIII - xEvents
 

Confiabilidade de pacotes SSIS com transações, checkpoints e snapshots

  • 1. Confiabilidade de pacotes no SSIS Luciano Caixeta Moreira luciano.moreira@srnimbus.com.br www.srnimbus.com.br http://luticm.blogspot.com @luticm
  • 3. Transações Permite que as tarefas se “alistem” para participar de uma transação Cada tarefa possui sua TransactionOption: • Required: exige a existência de uma transação. Se não houver uma transação aberta uma nova é criada. • Supported: participa ou não de uma transação, mas não cria uma nova transação. • NotSupported: não participa da transação, mas não gera uma exceção caso uma transação esteja em curso. Não são todas as tarefas que suportam transações
  • 4. Transações Isolation Level: define o nível de isolamento da transação • READ UNCOMMITTED • READ COMMITTED • REPEATABLE READ • SERIALIZABLE • SNAPSHOT Configura o pacote para trabalhar com transação e...
  • 5. Transações Error: The SSIS Runtime has failed to start the distributed transaction due to error 0x8004D01B "The Transaction Manager is not available.“ MSDTC = Microsoft Distributed Transaction Coordinator Toda transação no SSIS é tratada como uma transação distribuída e se alinha com o 2PC (two phase commit) NET START MSDTC
  • 6. Transações explícitas (sem o DTC) Como conseguir que duas tarefas diferentes participem da mesma transação? Propriedade da conexão RetainSameConnection BEGIN TRAN e COMMIT são explícitos Cuidado para evitar que uma mesma transação seja utilizada em lugares indevidos Manter duas conexões pode ser uma boa prática • ConexaoSemTransacao • ConexaoComTransacao
  • 8. Checkpoints Recurso do SSIS que permite um pacote reiniciar do ponto onde ele parou Armazena em arquivo XML informações sobre o ponto onde o pacote falhou SaveCheckpoints CheckpointUsage • IfExists • Always • Never CheckpointFileName
  • 9. Checkpoints Para uma tarefa que falha alterar os dados de checkpoint é necessário FailPackageOnFailure = TRUE Lógica para garantir o reinício correto do pacote nem sempre é simples Pode ser utilizado em conjunto com tarefas e suas transações Não é permitido transações no nível do pacote e checkpoints ao mesmo tempo E nem faz sentido...
  • 10. Checkpoints Somente funciona para Control Flow Data flow deve ser garantido por outros mecanismos Checkpoint somente é mantido somente se o pacote falhar Cuidado com falhas de tarefas e precedência de falha Checkpoints sempre reiniciam os loops! Não trabalham com variáveis do tipo object
  • 12. Database snapshot Novidade do SQL Server 2005. Cria uma imagem do banco de dados consistente no tempo e somente leitura. Trabalha com o conceito de sparse files, recurso do sistema de arquivos NTFS. • Somente contém as páginas que foram alteradas a partir da criação do snapshot. Trabalha com o conceito de copy-on-write (figura a seguir). Vários snapshots podem ser criados. • Somente um pode existir para um restore.
  • 13. Database snapshot Escrita de uma Leitura da página tabela
  • 15. Dificuldades Transações • Bloqueios em excesso podem impactar o ambiente em cargas em tempo real • Bulk load trabalhar com um tipo diferente de bloqueio • MSDTC pode ser um problema Checkpoints • Cargas parciais de dados pelos buffers não são garantidas pelo checkpoint • É necessário proteger o arquivo XML, caso contrário podemos introduzir inconsistências
  • 16. Dificuldades Database snapshot • O mecanismo mais simples de ser implementado • Pode não ser factível em um ambiente onde transações concorrentes estão acontecendo, pois o Revert (restore do snapshot) causaria perda de dados • Criação de um ambiente paralelo somente para carga de dados pode resolver o problema
  • 17. Conclusão Buscar uma maior confiabilidade do pacote é dever do programador SSIS É melhor a ausência do dado ou dados inconsistentes ou parcialmente carregados? • É o negócio que deve dizer isso! Entender os trade-offs é importante para a solução Não resolve o erro do arquivo, somente visa a consistência dos dados