Categorias
Azure SQL Database How To Virtual PASS BR

Azure SQL Database – Migration tools – part 3

[bing_translator]

Um outro metodo para migração de um database para o Azure SQL Database é através do uso de replicação. Não é o meu método favorito nem o tópico que eu mais gosto, na verdade eu evito o uso de replicação, porem esse tipo de migração pode ser útil em vários cenários.

Transactional Replication

Esse processo tem algumas particularidades como por exemplo:

  • Menor downtime
  • Perfeito para databases grandes
  • Suportado a partir do SQL Server 2012
  • Processo em múltiplos passos independentes
  • Requer chaves primarias em cada tabela presente no Publisher
  • Maior complexidade
  • Custos adicionais (setup distribution database, publisher e subscriber)
  • Exige mais conhecimento do DBA

Não esquece de validar se seu database está pronto para o Azure SQL Database através do Data Migration Assistant – Assessment

Configurar a replicação transacional para o Azure SQL Server não é nem um pouco diferente de configurar qualquer outro tipo de replicação para um servidor on-premise. Primeiro passo é criar um database vazio no Azure SQL Database pois é necessário que o database já exista para configurar a replicação.

Encontrei esse vídeo no channel9 explicando o passo a passo para utilizar a replicação transacional.
Para saber mais de como criar um Publisher utilizando replicação transacional acesse esse link.
Existem considerações que devemos ter e o time de suporte do Azure SQL Database descreve muito bem essas considerações nesse post.
O time do SQLCAT – SQL Server  Custumer Advisor Team também descreve como realizar esse procedimento nesse post.
Nesse outro link você pode ler sobre as restrições.

GO-NO-GO

Por ser um método que permite menor downtime existem alguns passos que devemos realizar:

  • Pare a aplicação e qualquer acesso que o database possa receber (Pacotes SSIS, integrações e etc.)
  • Monitore a replicação para que esteja completamente sincronizada
  • Reconfigure as connections strings (Aplicação, Pacotes SSIS, integrações e etc.)
  • Verifique se a aplicação está funcionando
  • Em caso de sucesso, exclua a replicação

 

Como eu disse, esse é um método extremamente complexo e trabalhoso, mas perfeitamente plausível para aplicações com downtime curtos.