Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Confiabilidade de pacotes no SSIS

983 views

Published on

Apresentação feita para o grupo MCITPSC
Assunto: confiabilidade de pacotes no SSIS

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Confiabilidade de pacotes no SSIS

  1. 1. Confiabilidade de pacotesno SSISLuciano Caixeta Moreiraluciano.moreira@srnimbus.com.brwww.srnimbus.com.brhttp://luticm.blogspot.com@luticm
  2. 2. AgendaTransaçõesCheckpointsDatabase SnapshotsConclusão
  3. 3. TransaçõesPermite que as tarefas se “alistem” para participar de umatransaçãoCada 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. 4. TransaçõesIsolation Level: define o nível de isolamento datransação• READ UNCOMMITTED• READ COMMITTED• REPEATABLE READ• SERIALIZABLE• SNAPSHOTConfigura o pacote para trabalhar com transaçãoe...
  5. 5. TransaçõesError: The SSIS Runtime has failed to start thedistributed transaction due to error 0x8004D01B"The Transaction Manager is not available.“MSDTC = Microsoft Distributed TransactionCoordinatorToda transação no SSIS é tratada como umatransação distribuída e se alinha com o 2PC (twophase commit)NET START MSDTC
  6. 6. Transações explícitas (sem o DTC)Como conseguir que duas tarefas diferentesparticipem da mesma transação?Propriedade da conexão RetainSameConnectionBEGIN TRAN e COMMIT são explícitosCuidado para evitar que uma mesma transaçãoseja utilizada em lugares indevidosManter duas conexões pode ser uma boa prática• ConexaoSemTransacao• ConexaoComTransacao
  7. 7. DemoTransações
  8. 8. CheckpointsRecurso do SSIS que permite um pacote reiniciardo ponto onde ele parouArmazena em arquivo XML informações sobre oponto onde o pacote falhouSaveCheckpointsCheckpointUsage• IfExists• Always• NeverCheckpointFileName
  9. 9. CheckpointsPara uma tarefa que falha alterar os dados decheckpoint é necessário FailPackageOnFailure =TRUELógica para garantir o reinício correto do pacotenem sempre é simplesPode ser utilizado em conjunto com tarefas e suastransaçõesNão é permitido transações no nível do pacote echeckpoints ao mesmo tempoE nem faz sentido...
  10. 10. CheckpointsSomente funciona para Control FlowData flow deve ser garantido por outros mecanismosCheckpoint somente é mantido somente se opacote falharCuidado com falhas de tarefas e precedência de falhaCheckpoints sempre reiniciam os loops!Não trabalham com variáveis do tipo object
  11. 11. DemoCheckpoints
  12. 12. Database snapshotNovidade do SQL Server 2005.Cria uma imagem do banco de dados consistenteno tempo e somente leitura.Trabalha com o conceito de sparse files, recursodo 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 aseguir).Vários snapshots podem ser criados.• Somente um pode existir para um restore.
  13. 13. Database snapshot Escrita de uma Leitura da página tabela
  14. 14. DemoDatabase Snapshots
  15. 15. DificuldadesTransaçõ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 problemaCheckpoints• 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. 16. DificuldadesDatabase 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. 17. ConclusãoBuscar uma maior confiabilidade do pacote é deverdo programador SSISÉ melhor a ausência do dado ou dadosinconsistentes ou parcialmente carregados?• É o negócio que deve dizer isso!Entender os trade-offs é importante para a soluçãoNão resolve o erro do arquivo, somente visa aconsistência dos dados

×