SQL Database Migration

Olá galera, tudo bem?

Sobre “Cloud” muito tem se falado nos últimos dias principalmente devido ao acontecimento em relação à Amazon. Pois bem, tem surgido uma série de oportunidades para migração de servidores SQL Server para a nuvem em arquitetura PaaS, ou seja, usando o Azure SQL Database.

Quando falamos de PaaS, estamos falando de uma arquitetura onde o cliente não mais se preocupará com questões como atualização de patch do windows, antivírus, falta de espaço no disco, LUNs, log de transações estourando, backup, etc. Tudo isso, será automaticamente gerenciado pela Microsoft! A sua preocupação é apenas gerir os dados e quem pode acessá-lo. Não é incrível?

Modelos de Cloud

Esse discurso, tem caído muito bem em empresas que desenvolvem software, possibilitando que elas possam “revender” o serviço de hospedagem das suas aplicações e o mesmo tempo, prover uma infraestrutura melhor para seus bancos de dados.

Bem, feito uma introdução sobre o que é PaaS.

A Microsoft recentemente lançou oficialmente sua versão 3.0 de um assistente para migração de bancos de dados SQL Server para o Azure SQL Database que você pode encontrar aqui:

Data Migration Assistant (DMA) v3.0 is now available

Sobre o DMA da Microsoft o DBA Luan Moreno, tem falado em seus artigos como utilizá-lo, confira:

Então, sobre o DMA vai lendo os artigos do Luan que podem te ajudar.

Todavia, existe no site Codeplex.com uma outra aplicação que podemos utilizar como um assistente de migração para a nuvem que é o SQL Database Migration e que eu tenho utilizado bastante e me parece muito interessante.

A seguir, estarei demonstrando como fazer seu primeiro teste de migração.

Execute o aplicativo baixado SQLAzureMW.exe que exibirá a seguinte tela:

SQL Azure MW - 1

Informe as credenciais de acesso ao banco de dados e o servidor, que será realizada a migração:

SQL Azure MW - 2

Confirmado a conexão, clique em Next para prosseguir:

SQL Azure MW - 3

É possível selecionar previamente os objetos que serão migrados, não necessariamente tudo precisa ser migrado. Por exemplo, você pode já saber que determinada procedure não é compatível com o SQL Azure Database, então é aqui você deverá desmarcá-la para migração. No meu caso, farei a migração de todos os objetos:

SQL Azure MW - 4

Alguns parâmetros avançados é possível definir, basta clicar em Advanced na tela anterior.

Se tudo estiver correto, clique em Next para iniciar o processo de conversão:

SQL Azure MW - 6

Nesta etapa o SQLAzureMW estará analisando os objetos, extraindo a sintaxe e os dados para que posteriormente faça a carga no Azure SQL Database.

SQL Azure MW - 7

SQL Azure MW - 8

Concluída a análise e extração da estrutura do banco de dados a ser migrado, você poderá salvar o log para avaliação ou até mesmo cancelar a migração, caso algum objeto fundamental tenha falhado durante a análise. Caso contrário, se tudo transcorreu corretamente, então clique em Next para prosseguir com a migração.

Na tela a seguir, você deverá definir o servidor na nuvem que hospedará seu Azure SQL Database.

SQL Azure MW - 9

SQL Azure MW - 10

SQL Azure MW - 11

Ao clicar em Create Database ele automaticamente fará a criação de um banco de dados vazio, conforme o que for definido nos parâmetros. Feito isso, você pode clicar em Next para dar prosseguimento à migração.

Será exibido uma mensagem “Execute Script against destination Server?”, então você pode confirmar para dar inicio à migração.

Feito isso, basta aguardar e acompanhar a execução da migração pela tela a seguir:

SQL Azure MW - 12

Durante a migração, você também observará indicadores da migração como:
3/6/2017 2:41:08 PM
 –> Uploading data to CLIENTE
 –> BCP Command: bcp.exe “dbMigracao.dbo.CLIENTE” in “c:\SQLAzureMW\BCPData\dbo.CLIENTE.dat” -E -n -C RAW -b 1000 -a 4096 -q -S server.database.windows.net,1433 -U “user” -P “*******”
**********************************************************************************
BCP output file: c:\SQLAzureMW\BCPData\dbo.CLIENTE.dat.txt
3/6/2017 3:06:22 PM –> Copied 187087 of 187087 (100%)
Clock Time (ms.) Total     : 1514547 Average : (123.53 rows per sec.)

Nele podemos visualizar quantos registros foram copiados para a nuvem, duração e a taxa de transferência. Basicamente o que esta ferramenta faz é:

  • Gera o script de criação dos objetos;
  • Extrai os dados utilizando o BCP em arquivos para cada tabela;
  • Cria os objetos no banco de dados Azure SQL Database;
  • Faz a importação dos dados utilizado o BCP para cada tabela;

Ao final, você poderá visualizar a seguinte informação sinalizando a conclusão da migração:

Processing finished at 3/6/2017 3:16:26 PM — UTC -> 3/6/2017 6:16:26 PM
Total processing time: 0 hours, 35 minutes and 59 seconds

SQL Azure MW - 13

Feita a migração, podemos agora entrar no Portal do Azure para confirmar a criação e migração do banco de dados, conforme:

 

SQL Azure MW - 14

Você também agora poderá se conectar ao banco de dados, utilizando o SQL Server Management Studio e dar continuidade agora aos testes de migração ou configurações adicionais que sua aplicação exigir.

SQL Azure MW - 15

Espero que essa dica possa ajudar, mas é importante lembrar que DBA não faz essa migração sozinho, exige testes, validações e muito planejamento junto aos desenvolvedores. Agora, que a migração para o Azure SQL Database compensa financeiramente isso não tenha dúvidas, além de que você proporcionará uma arquitetura que pode crescer ou diminuir dinamicamente, sem downtime, além da parte de gerenciamento e auto tuning que esta solução oferece.
SQL AzureFuturamente, estarei falando mais em detalhes sobre o Azure SQL Database.Qualquer dúvida comente, mas não deixe de compartilhar esta informação.Valeu!
Vithor da Silva e Silva | Consultor SQL Server e PowerBI

Deixe uma resposta