Categorias
Azure SQL Database Virtual PASS BR

Azure SQL Database – Before you migrate

[bing_translator]

A migração para o Azure SQL Database exige um grande preparo e testes devem ser feitos para que se tenha êxito no resulto final. Esse preparo se deve ao fato de que o Azure SQL Database é um serviço na nuvem e existem limitações ou a forma que você está acostumado a utilizar um recurso muda.

Para se ter sucesso nessa migração devemos levar em conta alguns fatores:

  • Identificar os benefícios: Temos que identificar todos os benefícios e melhorias que iremos tirar proveito. Enumerar um por um e criar um roadmap para implementação de cada um deles é sempre uma boa estratégia. Nunca migre para a nuvem apenas para ser “fancy”.
  • Identificar bloqueios: O Data Migration Assistant ajuda nesse requisito. Identificar cada um deles e criar uma lista com prioridades de cada item auxiliará o processo de migração, porem existem bloqueios que impedem a migração como por exemplo SQL CLR que nesse momento ainda não é suportado.

 

  • Identificar o modelo de serviço: Se você pretende migrar um único database então Single Mode é perfeito para sua solução porem se pretende migrar mais de um database Elastic Pool deve ser avaliado.
  • Identificar o nível de serviço (service tier): Nesse ponto você irá verificar a capacidade de CPU/IO/Storage entre outros requisitos que seu database pode utilizar e lembre que quanto maior a capacidade maior será o valor pago pelo serviço.

 

 

  • Identificar Azure Region: Muitas pessoas esquecem de verificar qual a melhor região do Azure Datacenter para alocar seu database e principalmente qual a melhor região para alocar seu disaster recovey.
    Cada região tem serviços disponibilizados individualmente que outras regiões podem não contem e para saber melhor sobre o que cada região disponibiliza acesse o link.
  • Identificar a melhor ferramenta de migração: Existem algumas ferramentas que podemos utilizar para migrar um database e identificar qual é a melhor para o seu cenário pode ajudar a ter sucesso.

Algumas ferramentas de migração:

Obs.: Irei escrever sobre cada uma delas.

Cada uma delas tem suas particularidades e seus benefícios, entretanto a escolha da ferramenta é apenas mais uma etapa para ter sucesso na migração. Posso citar outros fatores como:

  • SLA – Garantir que o Service Level Agreement seja cumprido é um fato chave para o negócio e a escolha da ferramenta de migração vem de encontro com esse critério uma vez que podemos ter um downtime curto ou longo e cada uma das ferramentas proporciona um tempo necessário para completar a migração.
  • Aplicação – Garantir que sua aplicação não tem incompatibilidades, erros ou problemas com o Azure SQL Database é fundamental e isso é um fator que não podemos controlar pois dependemos dos desenvolvedores ou fornecedores.
  • Performance – Os usuários finais sempre esperam que a aplicação continue com a performance atual ou que tenham uma experiencia melhor na performance depois da migração. Nesse critério o nível de serviço escolhido é um grande potenciador ou impedidor de performance. Outro fator que deve ser revisto são as queries que consomem mais recursos e começar um trabalho otimizar seu código.
  • Documentação – Documentar cada etapa da migração é fundamental para o sucesso pois dessa forma você terá controle do que está acontecendo e principalmente estime o tempo gasto em cada etapa.
  • Testes – Antes de migrar seu database para o ambiente de produção realize testes de migração para um ambiente de teste onde você é capaz de documentar cada etapa, marcar o tempo gasto em cada etapa e verificar se a aplicação está funcionando com a performance aceitável e sem erros. Repita esse passo quantas vezes achar necessário para não ter surpresas no momento da migração para produção.

Para concluir eu acredito que o preparo é a chave fundamental para obter sucesso na migração para o Azure SQL Database. Estude, crie laboratórios, faça testes, simule erros para todas as alternativas e principalmente esteja confiante  em você mesmo!

Referencia:

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-migrate-your-sql-server-database

Pluralsight – Azure SQL Database for the SQL Server DBA

Categorias
Azure SQL Database How To SQL Server Virtual PASS BR

Data Migration Assistant – Migration

[bing_translator]

A ferramenta DMA v3.3 nesse momento tem duas opções de projetos: Assessment e Migration.
No post anterior Data Migration Assistant – Assessment falei um pouco sobre a funcionalidade de Assessment para assessorar e minimizar o impacto da migração de databases. Esse é o primeiro passo que você deve tomar para realizar uma migração e após verificar todos os itens dos relatórios você está “pronto” para iniciar a migração, pelo menos por parte do database não esqueça de verificar se a aplicação está preparada para a migração.

Ao iniciar a ferramenta DMA crie um projeto do tipo Migration onde iremos definir qual tipo de servidor de origem e destino.

Nesse momento temos que indicar qual o escopo da migração, que pode ser:

  • Schema and data
  • Schema only
  • Data only

A partir dessas opções podemos criar vários cenários para migração de um database como por exemplo:

  • Criar um servidor de teste e um database apenas com os metadados (schema); realizar o apontamento da aplicação para esse servidor fazendo assim um teste também com a aplicação.
  • Se precisar de poucos dados, aquelas famosas tabelas de configurações, você pode importar apenas o que precisa.

Desse ponto de vista temos uma flexibilidade enorme para trabalhar e eu escolhi o escopo: Schema and data para demonstrar do início ao fim o processo.

De forma simples o wizard irá te ajudar e nesse processo teremos 6 etapas sendo a primeira escolher a instancia e database de origem.

Uma tarefa que o wizard não faz é criar o database no Azure e por isso você deve criar um database vazio através do portal, powershell ou CLI antes de continuar. Basta seguir os passos desse link.

Eu criei um database chamado AdventureWorksDMA através do portal e o próximo passo é escolher quais objetos serão migrados.

Uma vez que tenha escolhido os objetos que serão migrados o passo a seguir é gerar os scripts desses objetos.

Aqui você tem a opção de salvar o script para analisar posteriormente, copiar para qualquer editor de texto ou realizar o deploy diretamente através do DMA que irá fazer o deploy para o Azure SQL Database.

Uma janela com informações dos resultados irá mostrar o progresso do deploy e os comandos executados. Ao finalizar existe a opção de redeploy ou iniciar a migração dos dados e como nosso objetivo é ter uma migração completa vamos seguir com a migração dos dados.

Selecione as tabelas desejadas ou todas e inicie o seu processo de migração.

O tempo que a migração depende de alguns fatores dentre eles posso citar: quantidade de tabelas e registros em cada uma delas e a performance do seu Azure SQL Database (DTU), no meu caso utilizei S0 (10 DTU).

Uma vez que a migração dos dados terminou com sucesso você pode se conectar no Azure SQL database através do SSMS (Azure SQL Database – SQL Authentication) para verificar que sua migração está finalizada com sucesso.

Categorias
Azure SQL Database How To SQL Server Virtual PASS BR

Data Migration Assistant – Assessment

[bing_translator]

Migração de um database é uma rotina comum na vida de um DBA e essa atividade pode ser para uma versão mais atual do SQL Server ou para o Azure SQL Database. A Microsoft sempre tentou auxiliar essas migrações com ferramentas como por exemplo o Upgrade Advisor. Por muito tempo utilizei essa ferramenta para as migrações que realizei pois ela gerava um relatório com todos os possíveis “problemas” que poderia ter.

Recentemente precisei migrar um database on-premise para cloud e ao verificar a versão mais atual do Upgrade Advisor descobri que a Microsoft decidiu descontinuar essa ferramenta. Você ainda pode baixar a ferramenta atrás desse link porem eu aconselho a utilizar a nova ferramenta o Data Migration Assistant (DMA). Essa ferramenta trouxe novas capacidades e facilidades onde uma delas é centralizar na mesma ferramenta as opções de realizar a migração ou apenas realizar a validação do database para uma futura migração.

É sobre essa nova ferramenta DMA que irei falar um pouco hoje.

Após fazer o download através do link acima e instalar a ferramenta, você pode notar na tela iniciar uma facilidade que é a criação de projetos. Estou utilizando a versao 3.3

Nesse momento existem dois tipos de projetos:

  • Assessment
  • Migration

O Assessment é a funcionalidade que iremos utilizar para verificar os possíveis problemas e incompatibilidades que temos ao migrar um database.

Depois de dar um nome ao seu projeto você deve escolher o tipo de servidor de origem que no meu caso só tenho a opção de SQL Server.

Nesse momento você deve selecionar qual o seu objetivo final, ou seja, qual o tipo de servidor que o seu database será hospedado. No meu caso 3 opções são apresentadas: Azure SQL Database, SQL Server e SQL Server on Azure Virtual Machines.

Como tenho trabalho com Azure SQL Databases vou utilizar essa opção para demonstração.

Agora que você escolheu as opções e criou o projeto uma nova janela irá apresentar quais os tipos de relatórios você gostaria de gerar.

Nesse momento é possível optar por gerar relatórios separados, o que pode ser útil quando existe uma lista grande de itens que estão sendo tratados aos poucos e você pode medir quanto esforço foi realizado ou falta a ser feito.

  • Check database compatilibity – verificará problemas que podem ser bloqueadores para a migração assim como features descontinuadas.
  • Check feature parity – verificará por features que não são suportadas ou são parcialmente suportadas.

Um terceiro tipo de relatório está por vim e parece ser bem interessante uma vez que ele informará quais são as possíveis features que podem ser utilizadas no seu database uma vez que você realizar a migração e isso é um benefício que pode ser traduzido em performance, tamanho, segurança entre outros (essa é a minha opinião sobre o que esperar desse relatório)

Próximo passo é escolher a instancia SQL Server e o(s) database(s) que fará parte do projeto de migração.

 

Uma lista com os databases selecionados será apresentada e você pode adicionar ou remover servidores de origem dentro do seu projeto, ou seja, pense que uma aplicação tem mais de um database em mais de uma instancia e com isso é possível criar um projeto com múltiplas instancias SQL Server e múltiplos databases.

Após iniciar o Assessment e a ferramenta terminar de analisar, você terá seus relatórios prontos e sua análise desses é extremamente fácil uma vez que está divido em seções.

Relatório: SQL Server features parity

  1. Recomendações e informações sobre features
  2. Detalhes sobre uma das recomendações selecionadas.
  3. Nível de aplicabilidade da recomendação. (Não se aplica a todas as recomendações)

Relatório: Compatility issues

  1. Issue (problema) agrupado por categorias
  2. Detalhes sobre o issue
  3. Objetos dentro database que são impactados pelo issue.

Dessa forma fica fácil visualizar o que devemos fazer para corrigir cada um dos issues antes de migrar o database.

No campo superior direito existem duas opções: Restart Assessment e Delete Assessment. Uma forma rápida para regerar o relatório ou excluir!

Para concluir é possível exportar o relatório para dois formatos: CSV e JSON. Particularmente o formato CSV não me agradou e o JSON é a nova onda do momento de transferia de dados de forma leve!