Aprenda como VOCÊ pode migrar Base de Dados Local do SQL Server para Azure SQL Database
Tags: tutorial, azure, database, sql
Published: 2020-03-20 14:58:09

---
title: Aprenda como VOCÊ pode migrar Base de Dados Local do SQL Server para Azure SQL Database
published: true
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/05l3as7cuvgm9mjt8ecu.png
description: Nesse artigo vocês vão aprender passo a passo como podem realizar a migração de uma base de dados on-premises (local) para o Azure SQL Database de uma maneira simples para o Azure SQL Database.
tags: tutorial, azure, database, sql
---

Parece algo difícil quando se lê o título, não é mesmo? Mas, quero mostrar a todos vocês aqui que é bem mais fácil do que vocês imaginam!

Vamos entender os passos a serem feitos e verão que é extremamente fácil e uma migração bastante fácil. Vamos nessa?

## O que é o Azure SQL Database?

Antes de realizar a migração nesse tutorial, gostaria de explicar um pouco o que seria o Azure SQL Database.

O **[Azure SQL Database](https://docs.microsoft.com/azure/sql-database/sql-database-technical-overview?WT.mc_id=devto-blog-gllemos)** é um banco de dados relacional, fornecido como um serviço gerenciado. Através dele, vocês podem criar uma camada de armazenamento de dados altamente disponível e de alto desempenho para as aplicações e soluções no Azure. E ele acaba sendo uma escolha muito interessante uma vez que nos permite processar dados relacionais e **[estruturas não relacionais](https://docs.microsoft.com/azure/sql-database/sql-database-multi-model-features?WT.mc_id=devto-blog-gllemos)**, como por exemplo: Grafos, JSON, XML e espaciais. 

Além disso, o seu serviço é totalmente gerenciado que possui uma alta disponibilidade interna, backups e outras operações de manutenção comuns. Ou seja, a Microsoft trata de todas as correções e atualizações do código do sistema operacional e do SQL. Resumindo: você não precisa gerenciar a infraestrutura subjacente! E isso já é uma vantagem muito grande!

Outro ponto importante a mencionar sobre as opções de implantação para Azure SQL Database:

[![deployment-options.png](https://i.postimg.cc/mgfbs1Sx/deployment-options.png)](https://postimg.cc/ZCHkPRgj)

* **[Banco de dados Individual](https://docs.microsoft.com/azure/sql-database/sql-database-single-database?WT.mc_id=devto-blog-gllemos)**: representa um banco de dados isolado e totalmente gerenciado.
* **[Instância Gerenciada](https://docs.microsoft.com/azure/sql-database/sql-database-managed-instance?WT.mc_id=devto-blog-gllemos)**: é uma instância totalmente gerenciada do mecanismo de banco de dados do Microsoft SQL Server. O que facilita a realização da migração de banco de dados locais SQL Server para a nuvem do Azure.
* **[Pool Elástico](https://docs.microsoft.com/azure/sql-database/sql-database-elastic-pool?WT.mc_id=devto-blog-gllemos)**: é uma coleção de **[banco de dados individuais](https://docs.microsoft.com/azure/sql-database/sql-database-single-database?WT.mc_id=devto-blog-gllemos)** com um conjunto compartilhado de recursos, como CPU ou memória.

As explicações acima estão sintetizadas. Mas, se desejarem saber mais detalhes de cada opção de implantação disponível, podem saber mais **[AQUI](https://docs.microsoft.com/azure/sql-database/sql-database-technical-overview?WT.mc_id=devto-blog-gllemos#deployment-models)**.

Bom, vamos ao que interessa! A demo!

## Primeiros Passos!

Antes de mais nada, gostaria de falar com vocês que no meu caso, eu preferi criar uma **[VM do SQL Server 2017 no Azure](https://docs.microsoft.com/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-server-iaas-overview?WT.mc_id=devto-blog-gllemos)**. Para que não haja a necessidade de baixar o **[SQL Server Management Studio](https://docs.microsoft.com/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15&WT.mc_id=devto-blog-gllemos)** na minha máquina local, para fins de demo! Mas, se vocês desejarem, posso estar escrevendo um outro artigo, explicando passo a passo como criar uma VM do SQL Server 2017 no Azure e como conectar de maneira correta na sua máquina local – e melhor como habilitar e configurar de maneira muito simples o firewall da VM criada! Se desejarem esse artigo, deixem nos comentários abaixo! 😃

Abaixo vejam a VM do Azure SQL Server criada no Azure sendo executada na minha máquina local:

[![image-01.png](https://i.postimg.cc/0j0L1r5v/image-01.png)](https://postimg.cc/ct6DQx8k)

Lindo demais, não é mesmo?! Lembrando que você pode criar VMs do SQL Server no Azure tanto para Windows como para Linux também! #ficaadica

Outro ponto importante: se vocês tiverem o SQL Server Management Studio instalado localmente na sua máquina, não tem problema. Podem seguir esse tutorial que vai dar tudo certo!

Bom, abri na minha VM o Microsoft SQL Server Management Studio e criei, para fins de demo, uma base de dados super simples e básica. Se desejarem, podem copiar o script abaixo:

```sql
create database demosqlazuredb
use demosqlazuredb;

create table customer(id int, name varchar(50), contact bigint)
insert into customer values(1, 'Empresa XYZ', 87568844),
(2, 'Empresa Auto Peças', 79957755),
(3, 'Empresa Frutos do Mar', 65753311),
(3, 'Empresa Bebidas Geladas', 33554539)

create table employee(id int, name varchar(50), location varchar(50))
insert into employee values(123, 'Glaucia Lemos', 'Rio de Janeiro'),
(232, 'João Paulo', 'Minas Gerais'),
(398, 'Maria Nunes', 'São Paulo'),
(485, 'Fernando Ricardo', 'Brasília')

create table department(id int, name varchar(50))
insert into department values(1, 'Engenharia'),
(2, 'Inovação'),
(3, 'Financeiro'),
(4, 'Administração')
```
Como podem ver uma base de dados simples que possuem apenas 3 tabelas e alguns inserts! Vamos executar essa query no SQL Server Management Studio.

No final teremos 3 tabelas contidas dentro da base de dados: **demosqlazuredb**

[![image-2.png](https://i.postimg.cc/zG62MTwW/image-2.png)](https://postimg.cc/xXGPNJ4T)

Agora cliquem com o botão direito na base de dados: demosqlazuredb e vão até: **Tasks -> Deploy Database to Microsoft Azure SQL Database**:

[![image-3.png](https://i.postimg.cc/hjSL3GYT/image-3.png)](https://postimg.cc/kVpR27qg)

Depois de clicar aparecerá uma outra janela pedindo algumas informações importantes. Bastam clicar em: **Next**

[![image-3-1.png](https://i.postimg.cc/DyWqNHxj/image-3-1.png)](https://postimg.cc/nCJjjRbB)

Vamos agora especificar onde será migrada a nossa base de dados! Para isso, cliquem em: **Connect**.

[![image-4.png](https://i.postimg.cc/MTFnbKJW/image-4.png)](https://postimg.cc/tZFR9bgf)

Após clicar em Connect aparecerá uma nova janela para que você informe os dados da sua conexão, conforme a imagem abaixo:

[![image-5.png](https://i.postimg.cc/pd0f4vMS/image-5.png)](https://postimg.cc/f39SS6L7)

Talvez vocês estejam se perguntando, se estou migrando do local para nuvem então preciso criar uma instância lógica na nuvem para conectar com essa migração? Se essa pergunta passou na cabeça de vocês, estão pensando corretamente! Agora nesse momento precisamos criar essa instância lógica no Azure e é justamente o que vamos fazer agora!

## Criando SQL Database no Azure

Bom, minizem o SQL Server Management Studio e abram o **[Portal Azure](https://azure.microsoft.com/features/azure-portal/?WT.mc_id=devto-blog-gllemos)**.

### Conta – Azure for Students ⭐️

Caso você seja um(a) estudante de alguma Instituição de Ensino de Faculdade ou Universidade, poderá criar sua conta no **[Azure for Students](https://azure.microsoft.com/pt-br/free/students/?WT.mc_id=devto-blog-gllemos)**. Essa conta te dará o benefício em possuir crédito de USD 100,00 para usar os serviços de maneira gratuita, sem necessidade de possuir um cartão de crédito. Para ativar essa conta, bastam acessar o link ao lado: **[AQUI](https://azure.microsoft.com/pt-br/free/students/?WT.mc_id=devto-blog-gllemos)**

Depois de entrar no Portal Azure, vamos seguir os seguintes passos:

1. Clique no **Menu hamburger -> SQL databases**

[![image-6.png](https://i.postimg.cc/J4cPx90f/image-6.png)](https://postimg.cc/nCr4cSv2)

2. Clique em: **Add**

[![image-7.png](https://i.postimg.cc/xd7RqQpz/image-7.png)](https://postimg.cc/DWrsY9Tv)

3. Preencher todos os campos solicitados: **Subscription**(sua assinatura) e **Resource Group**. Se não tiver um, basta criar, clicando em: **'Create new'**. Depois informe o: **Database name**.

[![image-8.png](https://i.postimg.cc/3wPXYBWj/image-8.png)](https://postimg.cc/R3L6Tw7q)

4. Depois vocês precisarão criar um Server. Para isso, bastam clicar em: **'Create new'**. Ao clicar, aparecerá uma janela ao lado. Preencha todos os campos necessários e inclua um **login e password** que você não se esqueça. E depois cliquem em: **Ok**

>*Dica: procure anotar num bloco de notas, pois vamos precisar dessa senha e login mais tarde!*

[![image-10.png](https://i.postimg.cc/fR7nx2Qy/image-10.png)](https://postimg.cc/rDpPT9m2)

5. Agora cliquem em: **Compute + storage -> Configure database**.

[![image-11.png](https://i.postimg.cc/63mD9Fnj/image-11.png)](https://postimg.cc/BL2hpYhH)

6. Ao clicar, aparecerá uma outra janela. Como se trata de uma demo simples de migração, vamos escolher o plano mais básico. Cliquem em: **Basic -> Apply**.

[![image-12.png](https://i.postimg.cc/hGPDhWQc/image-12.png)](https://postimg.cc/v4kFSKvN)

7. Depois cliquem em: **Review + Create** e enfim em: **Create**

[![image-13.png](https://i.postimg.cc/NF8S1FZV/image-13.png)](https://postimg.cc/D4Zxhvvd)

8. Após finalizar cliquem em: **Go to Resource**

[![image-14.png](https://i.postimg.cc/HLJN6Bfb/image-14.png)](https://postimg.cc/p9HkTYVd)

9. Agora vai abrir o Dashboard do recurso recém criado. Porém, vamos fazer algo muito importante: configurar o firewall! Para isso, vão até: **Overview -> Set server firewall**. Vai abrir uma outra janela:

[![image-15.png](https://i.postimg.cc/mZ35pc6p/image-15.png)](https://postimg.cc/yWdjkNK0)

10. Agora que estamos no Firewall Settings, cliquem em: **Add client IP**, cliquem em: **OK (Allow Azure Services…)**, incluam o IP da máquina de vocês e depois cliquem em: **Save**.

>p.s.: se desejarem saber mais informações a respeito das regras de firewall de IP no Azure SQL Server, bastam acessar: **[AQUI](https://docs.microsoft.com/azure/sql-database/sql-database-firewall-configure?WT.mc_id=devto-blog-gllemos)**

[![image-16.png](https://i.postimg.cc/MZtYj1Lw/image-16.png)](https://postimg.cc/5jYzhQ1K)

11. Copiem o Server name. Pois precisaremos dele para o passo a seguir!

[![image-18.png](https://i.postimg.cc/VNy9cgJq/image-18.png)](https://postimg.cc/ts5n3htJ)

Bom! Agora a nossa instância está devidamente criada e configurada! Agora, vamos terminar de realizar a migração!

## Retornando ao SQL Server Management Studio localmente

Voltemos aquela janela de conexão que paramos e vamos realizar a devida conexão. E inclua as seguintes informações:

* **Server name**: você obterá essa informação no recurso criado no passo anterior, clicando em Overview no Portal Azure (passo anterior)
* **Authentication**: alteraer para SQL Server Authentication
* **Login**: criado no passo anterior
* **Password**: criado no passo anterior
E enfim, cliquem em: **Connect**.

>p.s.: login e password do recurso criado no Azure!!!

[![image-17.png](https://i.postimg.cc/bN9dvRV0/image-17.png)](https://postimg.cc/TphT7n6h)

Notem que podemos alterar o quanto precisaremos gastar nessa base dados. Podemos realizar essa alteração também nessa parte do processo. Isso dependerá da quantidade de dados que você irá migrar para a nuvem! Vocês podem usar a calculadora que está disponível **[AQUI](https://azure.microsoft.com/pricing/details/database-migration/?WT.mc_id=devto-blog-gllemos)**. No nosso caso, como estamos realizando uma demo, vamos usar o plano Basic e o size: 2.

Depois cliquem em: **Next**

[![image-19.png](https://i.postimg.cc/Hx01t6yB/image-19.png)](https://postimg.cc/G8pfLJzy)

E finalmente cliquem em: **Finish**

[![image-20.png](https://i.postimg.cc/13Lxhk0v/image-20.png)](https://postimg.cc/PCzV1FRD)

No ato que que você clicar em **Finish**, começará a migração que fará com que exporte todas as tarefas.

Quando aparecer a mensagem: **Operation Complete** é porque a migração foi realizada com sucesso. Observe que, o schema, as tabelas, tudo foi migrado com sucesso!

[![image-21.png](https://i.postimg.cc/DZ6YZHsk/image-21.png)](https://postimg.cc/gXwKtMNN)

Agora, podem fechar o SQL Server Management e vamos ver o que aconteceu, porém agora lá no Portal Azure!

Abram o Portal Azure e vão até: SQL Databases e vejam o que vai aparecer:

[![image-6-1.png](https://i.postimg.cc/bwf07LDQ/image-6-1.png)](https://postimg.cc/MvtjR7YT)

Vai aparecer justamente, a base de dados criada logicamente e a que migramos (que poderia representar a base de dados em produção – por exemplo). Clique na base recém migrada: **(demosqlazuredb)**

[![image-22.png](https://i.postimg.cc/XJPdQg6B/image-22.png)](https://postimg.cc/TLrKPgwT)

Agora clique em: **Query editor (preview)** e inclua a senha criada nesse recurso. Vamos fazer algumas queries de SQL nessa base de dados recém migrada!

[![image-23.png](https://i.postimg.cc/6Q3hcq4S/image-23.png)](https://postimg.cc/18k659Hc)

Agora observem no gif, como os dados que antes estavam contidos localmente no SQL Server Management Studio, agora estão disponíveis na nuvem!

[![postgresql-02.gif](https://s5.gifyu.com/images/sql-azure-01.gif)](https://gifyu.com/image/IKZt)

Sensacional, não é mesmo? Podemos: importar, exportar, criar Stored Procedures e muito mais! 😊

## Database Migration Assistant

Podemos realizar a migração dos nossos dados locais do SQL server usando uma ferramenta chamada: Database Migration Assistant. Essa ferramenta ela foi criada para automatizar a migração do banco de dados para SQL Server do Microsoft Access, DB2, MYSQL, Oracle e SAP ASE.

Se desejarem obter informações de como realizar a migração usando o Database Migration Assistent em nas bases de dados abaixo, deixo os recursos disponíveis abaixo:

* **[SQL Server Migration Assistant para Access](https://docs.microsoft.com/learn/browse/?term=server&products=sql-server&WT.mc_id=devto-blog-gllemos)**
* **[SQL Server Migration Assistant para DB2](https://docs.microsoft.com/learn/browse/?term=server&products=sql-server&WT.mc_id=devto-blog-gllemos)**
* **[SQL Server Migration Assistant para MySQL](https://docs.microsoft.com/azure/dms/tutorial-mysql-azure-mysql-online?WT.mc_id=devto-blog-gllemos)**
* **[SQL Server Migration Assistant para Oracle](https://docs.microsoft.com/azure/dms/tutorial-oracle-azure-postgresql-online?WT.mc_id=devto-blog-gllemos)**
* **[SQL Server Migration Assistant para SAP ASE](https://docs.microsoft.com/azure/dms/?WT.mc_id=devto-blog-gllemos)**

Há um tutorial que ensina, passo a passo como vocês podem usar essa ferramenta excelente que facilita e muito na hora de realizar a migração: **[AQUI](https://docs.microsoft.com/azure/dms/tutorial-sql-server-to-azure-sql?WT.mc_id=devto-blog-gllemos)**.

## Próximos Passos

Hoje aprendemos, que com poucos passos, o quão fácil é realizar a migração da nossa base local (on premises) para a nuvem. E que podemos fazer uso de uma outra ferramenta que nos auxilia para projetar e automatizar esse processo de migração em diferentes bases de dados!

Novamente, se desejarem uma parte 2 desse tutorial ensinando passo a passo como realizar a migração usando o Database Migration Assistant e também como criar uma VM do SQL Server 2016/2017 no Azure, bastam deixar aqui nos comentários abaixo!

E se desejarem saber mais sobre o Azure SQL Database, temos inúmeros recursos, tutoriais e links que podem ajudar a todos para estudos e aplicação no mundo real:

* **[Cursos grátis – SQL Server no Linux](https://docs.microsoft.com/learn/browse/?term=server&products=sql-server&WT.mc_id=devto-blog-gllemos)**
* **[Tutorial: Migrando SQL Server para dados Individual no Azure SQL Database online usando DMS](https://docs.microsoft.com/azure/dms/tutorial-sql-server-azure-sql-online?WT.mc_id=devto-blog-gllemos)**
* **[Tutorial: Migrando o MySQL para o Azure Database for MySQL online usando o DMS](https://docs.microsoft.com/azure/dms/tutorial-mysql-azure-mysql-online?WT.mc_id=devto-blog-gllemos)**
* **[Tutorial: Migrando o PostgreSQL para o Azure Database for PostgreSQL online usando o DMS](https://docs.microsoft.com/azure/dms/tutorial-postgresql-azure-postgresql-online?WT.mc_id=devto-blog-gllemos)**
* **[Tutorial: Migrando o Oracle para o Azure Database for PostgreSQL online usando DMS (versão preview)](https://docs.microsoft.com/azure/dms/tutorial-oracle-azure-postgresql-online?WT.mc_id=devto-blog-gllemos)**
* **[Guia de Migração do Azure Database Migration](https://azure.microsoft.com/resources/videos/how-to-use-the-azure-database-migration-guide/?WT.mc_id=devto-blog-gllemos)**
* **[Documentação Oficial – Azure Database Migration](https://docs.microsoft.com/azure/dms/?WT.mc_id=devto-blog-gllemos)**

E para ficarem por dentro de várias outras novidades, não deixem de me seguir lá no twitter!

[![Twitter](https://code4coders.files.wordpress.com/2019/05/image-12.png)](https://twitter.com/glaucia_lemos86)

Nos vemos! Até a próxima pessoal! 😍