Olá galera o/

Vamos a mais uma postagem sobre o Azure SQL Database, se você não sabe o que é o Azure SQL Database segue algumas posts que fiz sobre o mesmo, os posts estão bem legais e detalhados.

  • Azure SQL Database: Criando um banco de dados no Azure >> LINK <<
  • Azure SQL Database: Aplicando o Dynamic Data Masking pelo Portal do Azure >> LINK <<

Este é o primeiro post de uma serie de postagens sobre como migrar uma database on-premise (máquina local) para o Azure SQL Database. O principal objetivo é mostrar quais ferramentas de migração possuímos e como podemos utiliza-las para realizar a migração de nossos dados on-premise para o Azure.

Primeiro vamos entender quais ferramentas de migração temos disponíveis.

  • Data Migration Assistant (DMA)
    • É uma ferramenta autônoma para detectar problemas de compatibilidade e migrar bancos de dados sql server on-premise para bancos de dados Azure SQL Database. Ele fornece uma interface gráfica do tipo assistente (wizard) e é bastante fácil de usar para avaliação e migração de compatibilidade. Além disso detecta e destaca problemas de compatibilidade. Uma vez que todos os problemas de compatibilidade são identificados e corrigidos, você pode migrar o banco de dados.
    • Download: https://www.microsoft.com/en-us/download/details.aspx?id=53595
  • SQL Server Data Tools (SSDT) for Visual Studio
    • O SSDT é a melhor ferramenta para o Azure SQL Database para encontrar e corrigir problemas de incompatibilidade. Tem as regras de compatibilidade mais recentes. Os problemas de compatibilidade podem ser corrigidos a partir do próprio SSDT, após o qual podemos migrar o banco de dados.
  • SQL Server Management Studio (SSMS)
    • O SSMS tem duas opções para detectar e migrar:
      • Export Data Tier Application: Exporta os dados e o esquema em um arquivo bacpac, e ao fazê-lo, lista qualquer uma das incompatibilidades encontradas.
      • Deploy Database to Microsoft Azure SQL Database: Implanta o banco de dados no Azure SQL Database, primeiro exportando o banco de dados em um arquivo bacpac e, em seguida, importando o arquivo bacpac em um Azure SQL Database. Ele lista incompatibilidades ao gerar o arquivo bacpac.
  • SQLPackage.exe
    • Esta é uma ferramenta de linha de comando que ajuda a automatizar tarefas de desenvolvimento de banco de dados, como importar, exportar e extrair arquivos bacpac ou dacpac. Seu uso real é ajudar a automatizar o gerenciamento do ciclo de vida do banco de dados; no entanto, pode ser usado para detectar e obter um relatório das incompatibilidades encontradas. Está incluído no SSDT.
    • Download: https://docs.microsoft.com/pt-br/sql/tools/sqlpackage/sqlpackage?view=sql-server-ver15
  • SQL Azure Migration Wizard
    • Esta é uma ferramenta apoiada pela comunidade que fornece uma interface de usuário gráfica orientada por assistente para detectar problemas de compatibilidade e migrar o banco de dados. A ferramenta não é totalmente atualizada para funcionar nas versões mais novas do Azure SQL Database.
    • Obs.: Foi descontinuada e substituída pelo Data Migration Assistant (DMA)
    • Download: https://github.com/adragoset/SQLAzureMigration
    • Você pode encontrar o código no GITHUB, porém é necessário realizar alguns ajustes.
  • Azure Database Migration Services
    • É um serviço Azure totalmente gerenciado que permite migrações perfeitas de múltiplas fontes de dados para bancos de dados do Azure. Baixo seguem alguns exemplos de migrações que o DMS pode fazer:
      • Migrar um SQL Server on-premise para Azure SQL Database ou Azure SQL Managed Instance. Suporta migrações on-line e off-line.
      • Migrar o Azure SQL Database para instâncias do Azure SQL Managed Instance.
      • Migrar uma instância AWS SQL Server RDS para o Azure SQL Database ou Azure SQL Managed Instance.
      • Migrar MySQL para o Azure Database for MySQL.
      • Migrar postgreSQL para o Azure Database for PostgreSQL.
      • Migrar o MongoDB para o Azure Cosmos DB Mongo API.

Agora que entendemos quais ferramentas possuímos, vamos realizar nosso lab com o método Export Data Tier Application do SQL Server Management Studio (SSMS).

Criando Arquivo Bacpac na máquina local

1 – Primeiro iremos acessar nossa instância local do SQL Server e analisar nossa database. Estaremos realizando a migração da database ProjectData. Esta database possui 7 tabelas. Após analisar a database vamos realizar os seguintes passos:

1.1 – Selecionar a database, clicar no botão direito do mouse. Uma lista de opções é listada.
1.2 – Selecionar a opção TASK. Uma lista de atividades é listada.
1.3 – Selecionar a opção Export Data-tier Application…

2 – Uma tela de Wizard será exibida. Devemos clicar no botão NEXT.

3 – Na tela de Export Settings vamos realizar os seguintes passos:

3.1 – Selecionar a opção Save to local disk, clique no botão Browse, escolha uma pasta na máquina local e informe o nome do arquivo. Para o exemplo, decidi salvar o arquivo na unidade E e coloquei seu nome de bacpac_projectData.bacpac.

BACPAC: É um arquivo que contém os dados e a estrutura física do banco de dados (DDL)
DACPAC: É um arquivo que contém apenas a estrutura física do banco de dados (DDL)

3.2 – Após configurar o diretório de destino e o nome do arquivo, clicamos na aba Advanced.

4 – Na aba Advanced podemos selecionar quais objetos queremos importar para o bacpac. Vamos realizar os seguintes passos:

4.1 – Selecionar os objetos do nosso banco de dados. Para o exemplo, possuímos apenas tabelas para importar.
4.2 – Clicamos no botão NEXT.

5 – Na tela do Summary podemos ver um resumo do processo que realizamos. Clicamos no Botão Finish.

6 – Ao clicar em Finish é iniciado o processo de exportação da database para o bacpac. Uma vez o processo finalizado, clicamos no botão Close.

7 – Vejam que o arquivo foi gerado no diretório que configuramos na etapa 3.

Criando Arquivo Bacpac no Azure Blob Storage

1 – Primeiro iremos acessar nossa instância local do SQL Server e analisar nossa database. Após analisar a database vamos realizar os seguintes passos:

1.1 – Selecionar a database, clicar no botão direito do mouse. Uma lista de opções é listada.
1.2 – Selecionar a opção TASK. Uma lista de atividades é listada.
1.3 – Selecionar a opção Export Data-tier Application…

2 – Uma tela de Wizard será exibida. Devemos clicar no botão NEXT.

3 – Na tela de Export Settings vamos realizar os seguintes passos:

3.1 – Selecionar a opção Save to Microsoft Azure
3.2 – Clique no botão Connect. Uma tela será exibida., escolha uma pasta na máquina local e informe o nome do arquivo. Para o exemplo, decidi salvar

3.2 – Na tela Connect to a Microsoft Subscription, clicar no botão Sign In.

4 – Na tela de Sign in to your account vamos realizar os seguintes passos:

4.1 – Informe seu e-mail. Clique no botão NEXT.
4.2 – Informe sua senha. Clique para realizar o login.

5 – Ao realizar o login, você retornará para a tela do Connect to a Microsoft Subscription, realize os seguintes passos:

5.1 – Selecione alguma subscription vinculada a sua conta. Para o exemplo, utilizei minha subscription de MCT da Microsoft. Também possuo uma subscription de estudante e uma pay-as-you-go.
5.2 – Selecione o Blob Storage que você deseja salvar o arquivo bacpac.
5.3 – Selecione o Container que o arquivo será armazenado.
5.4 – Clique no botão OK.

Se quiser saber como criar um Blob Storage clicar a primeira parte da postagem abaixo: Azure Data Factory: Criando seu primeiro pipeline de dados >> LINK <<

6 – Na tela Export Settings, realize os seguintes passos:

6.1 – Selecione o container que o arquivo ficará armazenado.
6.2 – Informe o nome do arquivo bacpac.
6.3 – Clique no botão NEXT.

7 – Na tela Summary, clique no botão Finish.

8 – Aguardar o processo ser finalizado. Após finalizar clicar no botão CLOSE.

9 – Após o processo de geração finalizar, vá ao Blob Storage e verifique se o arquivo foi criado no container definido na etapa 6.

Importando o arquivo BACPAC para o Azure SQL Database

1 – Com o portal Azure aberto, acessar o seu servidor do SQL Server. Lembrando que, no inicio da postagem tem um link sobre como criar um Azure SQL Database >> Azure SQL Database: Criando um banco de dados no Azure >> LINK << <<

1.1 – Na tela do Servidor clicar em Import Database. Uma nova tela será exibida.

2 – Na tela de Import, vamos realizar os seguintes passos:

2.1 – Selecionar o Blob Storage que contém o arquivo. Clicar em Select backup.

3 – Na tela de Storage Accounts, vamos realizar os seguintes passos:

3.1 – Selecionar o Blob Storage que criamos para o arquivo. Selecionei para o exemplo o storage storagepostagem.
3.2 – A tela de Containers do storage selecionado será exibida, clicar em cima do container criado para o lab. Para este exemplo, selecionei o containermigracao.
3.3 – A tela do container selecionado é exibida. Devemos selecionar o arquivo bacpac contido dentro do container.
3.4 – Clicar no botão SELECT.

4 – Após selecionar o arquivo, retornaremos para a tela do Import Database, vamos realizar os seguintes passos:

4.1 – Selecionar o Pricing tier que desejamos para esta database. Clicar em Configure database. A tela de configuração dos tiers é exibida.

5 – Com a tela de configuração do Tier exibida, vamos realizar os seguintes passos:

5.1 – Clicar em Looking for basic, standard or premium?
5.2 – Serão exibidos os Tiers Basic, Standard e Premium. Devemos escolher o Tier Basic, isso significa que, você pagará 24,45 reais por mês para manter essa database no azure. Essa database contém 5 DTUs e 2 GB de armazenamento.
5.3 – Após selecionar o Tier Basic, clicar no botão Apply.

6 – Uma vez que selecionamos o Tier, retornaremos para a tela de Import Database, vamos realizar os seguintes passos:

6.1 – Informaremos o login do servidor. Este usuário é gerado na criação do Servidor do SQL no Azure.
6.2 – Informar a senha do servidor. Esta senha é gerada na criação do Servidor do SQL no Azure.
6.3 – Clicar no botão OK.

7 – Ao clicar em OK na tela do Import Database, o processo de importação da database é iniciado. O processo dura cerca de 5 minutos para importar a nova database no servidor. Ficar atento as notificações.

8 – Na tela do servidor do Azure SQL, devemos realizar os seguintes passos:

8.1 – No menu da esquerda > Sessão Setting (configurações) > selecionar SQL databases
8.2 – Todas as databases deste servidor serão exibidas. Note que a database importada agora esta disponível, a mesma possui o nome bacpacFile_ProjectData.

9 – Vamos acessar o servidor SQL com o SQL Server Management Studio.

9.1 – Notem que a nova database tem a mesma estrutura que a database tinha no SQL Server on-premise.
9.2 – Realizei um SELECT na tabela Customers para mostrar que, além de importar a estrutura das tabelas, também foram importados os dados.

Com esse teste garantimos que todo o processo foi realizado com sucesso.

Apagando a nova database – Objetivo: Não gerar custos

1 – Vamos apagar a nova database criada para não ficar gerando custos extras na minha assinatura. Na tela do servidor do Azure SQL, devemos realizar os seguintes passos:

1.1 – No menu da esquerda > Sessão Setting (configurações) > selecionar SQL databases
1.2 – Todas as databases deste servidor serão exibidas. Clique em cima da nova database criada.

2 – A tela com as informações da nova database é exibida. Vamos realizar os seguintes passos:

2.1 – No menu principal há uns ícones com sua descrição, devemos clicar no ícone da lixeira com a descrição Delete.
2.2 – Uma tela será exibida no lado direito perguntando se você deseja realmente apagar o banco de dados. Para confirmar, devemos informar o nome do banco de dados no textbox TYPE THE DATABASE NAME. Informamos o nome do nosso banco que é bacpacFile_ProjectData.
2.3 – Após informar o nome do banco, clicar no botão DELETE.

3 – O processo de apagar o database será iniciado. Aguardar o processo finalizar.

4 – Na tela do servidor do Azure SQL, devemos realizar os seguintes passos:

4.1 – No menu da esquerda > Sessão Setting (configurações) > selecionar SQL databases
4.2 – Todas as databases deste servidor serão exibidas. Note que a database que importamos por um arquivo BACPAC foi excluída.

Com esse processo de deletar o banco, finalizamos nosso post de hoje.

Atenção: Se você esta com uma conta gratuita, pay-as-you-go ou de estudante, não esquecer de apagar os recursos criados nesta postagem. Para contas de estudante e gratuita a exclusão dos recursos evita o consumo dos créditos disponíveis, além disso, evita que aconteça cobrança indevida em sua subscription (assinatura). Para a conta pay-as-you-go é cobrado do cartão de crédito conforme o uso dos serviços, então, recomendo apagar para não gerar cobrança no seu cartão de crédito. Lembrar que o Azure SQL Database fica sempre ativo, então, sua cobrança acontecerá se não for deletado posteriormente.

Espero que tenham gostado desta postagem, vou fazer mais postagens técnicas sobre Azure SQL Database. Aguardem que 2021 vai ter muito conteúdo legal no blog.

Desejo a todos uma boa leitura, boa prática e bons estudos.

Para quem quer estudar:

  • Para a Certificação Microsoft MTA Database Fundamentals | Banco de Dados Relacional e Linguagem T-SQL.
    • Segue o link do curso na Udemy. >> LINK <<
  • Sobre Bancos da Dados no Azure
    • Segue o link do curso na Udemy. >> LINK <<

Não se esqueçam de avaliar esta postagem através da ESTRELAS abaixo das redes sociais, isso vai me ajudar muito a melhorar as postagens.

Quem quiser mandar comentários, sugestões, criticas e complementos, fiquem a vontade, pois feedbacks positivos ou negativos engradecem meu conhecimento para que possa melhorar as postagem para vocês.

Até a próxima o/

Acessem nossas Redes Sociais: