Realizar a migração de estruturas e dados geralmente ocasionam dor de cabeça e requerem uma atenção especial dos profissionais que a fazem.
Existem uma série de passos e cuidados que devem ser tomados para realizar tal migração, tendo em vista que esta pode acontecer em ambientes e/ou plataformas diferentes.
Neste artigo irei abordar especificadamente a migração de bancos de dados do SQL Server entre servidores ou com a nuvem (Microsoft Azure) utilizando o SqlPackage ou pelo modo “Design” do SQL Server Management Studio e o Microsoft Azure.
O SqlPackage é uma linha de comando útil para automatizar algumas tarefas de desenvolvimento do banco de dados, tais como:
- Extract: Cria um snapshot do banco de dados em um arquivo (.dacpac);
- Export: Exporta a estrutura e os dados de um banco de dados SQL Server ou Azure SQL em um arquivo (.bacpac);
- Import: Importa a estrutura e os dados para um banco de dados SQL Server ou Azure SQL através de um arquivo (.bacpac);
- Publish: Atualiza incrementalmente a estrutura de um banco já existente para coincidir com o esquema de um arquivo de origem (.dacpac). Caso o banco de dados não exista, o mesmo será criado;
- DeployReport: Cria um relatório XML das alterações que seriam feitas pela ação de “Publish”;
- DriftReport: Cria um relatório XML das alterações realizadas em um banco desde a última modificação;
- Script: Cria um script T-SQL que atualiza o schema do banco de dados para coincidir com o schema do banco de origem.
Aqui vamos nos concentrar nas funcionalidades de Export e Import e alguns dos paramêtros que podem ser usados com eles.
Para visualizar o overview completo do SqlPackage no MSDN, clique aqui.
SINTAXE DA LINHA DE COMANDO
SqlPackage {parâmetros} {Propriedades} {} SQLCMDVariables
OBS: O Local do arquivo SqlPackage.exe pode variar conforme a versão do SQL Server, neste caso estou utilizando o 2014, portanto o caminho é: “C:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin”
EXPORTANDO DE UMA BASE DE DADOS LOCAL PARA UM ARQUIVO .BACPAC
“C:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin\sqlpackage.exe” /a:Export /ssn:ALS-NB /sdn:Genesis /tf:C:\temp\Genesis.bacpac
a: Action – Ação do SqlPackage (Export, Import, Publish, etc)
ssn: Source Server Name – Nome do servidor de origem.
sdn: Source Database Name – Nome da base de dados de origem.
tf: Target File – Caminho onde o arquivo BACPAC será gravado.
su: Source User – Usuário com acesso ao banco
sp: Source Password – Senha de acesso ao banco
IMPORTANDO DE UM ARQUIVO .BACPAC PARA OUTRO SERVIDOR (Nesse caso, para o Azure SQL)
“C:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin\sqlpackage.exe” /a:Import /sf:C:\temp\Genesis.bacpac /tsn:servidor.database.windows.net /tdn:Genesis /tu:user@servidor /tp:senha
a: Action – Ação do SqlPackage (Export, Import, Publish, etc)
sf: Source File – Caminho onde o arquivo BACPAC foi gravado.
tsn: Target Server Name – Nome do servidor de destino.
tdn: Target Database Name – Nome da base de dados de destino.
tu: Target User – Usuário com acesso ao banco
tp: Target Password – Senha de acesso ao banco
REALIZANDO A MIGRAÇÃO PELO SQL SERVER MANAGEMENT STUDIO
O processo de migração pode ser feito manualmente pelo Management Studio. Ele torna-se mais fácil, porém você não tem a possibilidade de automatizá-lo como pela linha de comando com o SqlPackage.
Exportando de uma base de dados local para um arquivo local BACPAC ou Storage no Azure
Conecte-se ao servidor, clique com o botão direito na base de dados que deseja exportar em clique em “Tasks > Export Data-Tier Application”
É possível salvar o arquivo na máquina local ou diretamente em uma conta de armazenamento que você tenha no Azure.
Na aba “Advanced” é possível especificar as tabelas a serem exportadas. Por padrão todas estão marcadas.
Clique em finalizar e aguarde o processamento até a conclusão.
IMPORTANDO DE UM ARQUIVO LOCAL .BACPAC OU STORAGE NO AZURE PARA SUA BASE LOCAL
Conecte-se ao servidor, clique com o botão direito em “Databases” e em seguida em “Import Data-Tier Application”
É possível importar de um arquivo salvo na máquina local ou diretamente em uma conta de armazenamento que você tenha no Azure.
Na tela seguinte é necessário definir o nome da Base de dados a ser criada e os aquivos de DATA e LOG que serão criados.
Clique em finalizar e aguarde o processamento até a conclusão.
IMPORTANDO UM ARQUIVO .BACPAC DIRETAMENTE NO PORTAL DO AZURE
Entre em sua conta e no Portal do Azure vá para a área de Servidores SQL. Selecione o seu servidor (Previamente criado) e clique em Importar Banco de dados.
Ao Clicar, você deve preencher mais algumas informações como o nome do Banco de dados, agrupamento, camada de preços e selecionar sua conta de Armazenamento, onde o seu arquivo .BACPAC foi previamente enviado no momento da exportação da sua base.
Após definir esses pontos é só clicar em CREATE e está feito!
Quaisquer dúvidas ou esclarecimentos, utilize os comentários abaixo.
Valeu!
Referências
https://msdn.microsoft.com/en-us/hh550080(v=vs.103).aspx
https://azure.microsoft.com/pt-br/documentation/articles/sql-database-import/
Very good your content congratulations