Tutoriais

Atendimento em horário comercial via chat

SQL Server: Importando/Exportando um banco de dados

Este guia está divido em dois tipos de migração:

Migração via script: Consiste em gerar um script SQL em seu banco de dados de origem, e executar esse script dentro do banco de dados da Umbler, de forma que a estrutura e dados de seu banco sejam recriados.

Migração via Import and Export Wizard: É ideal para transferir um banco que pode ser acessado remotamente (que não esteja apenas em seu PC local), e é uma alternativa caso não tenha conseguido migrar o banco de dados via script. O banco remoto geralmente está em outro provedor, ou na própria Umbler.

Para seguir os tutoriais abaixo você precisa do SQL Server Management Studio, ferramenta da Microsoft para administração de bancos de dados.

Importante: Recomendamos que faça um backup da base de dados de origem antes de executar qualquer ação descrita neste guia.

Migração via script

Acesse o Management Studio e faça uma conexão com os dados de acesso externo disponíveis no App da Umbler.

Na base de dados desejada, clique com o botão direito e selecione Tasks - Generate Scripts.

Você será direcionado para o assistente de criação de scripts. Clique em Next.

Nessa tela você deve selecionar que tipo de objetos que deseja. No exemplo, selecionamos apenas Tabelas. Depois de marcar as opções, clique em Next.

Você deve especificar onde quer que o script seja salvo ou publicado. Definimos aqui um arquivo específico. Clicando em Advanced, você pode determinar o tipo de dados a fazer parte do script.

O próximo passo é revisar as configurações do script. Se tudo estiver correto, você pode clicar em Next.

Você verá um arquivo como o seguinte:

Para importar, acesse o Management Studio, conecte na base de destino e abra o arquivo .sql gerado. Clique, depois, em !Execute para importar as tabelas e os dados. 

Pronto, o script SQL vai ser executado e o banco vai ser recriado na Umbler :)

Migração via Import and Export Wizard

Para migrar um banco remoto para a Umbler, vamos usar a ferramenta SQL Server Import and Export Wizard. Ela vem no pacote padrão do SQL Server Management Studio.

A ferramenta SQL Server Import and Export Wizard transfere apenas tabelas e views. Objetos do banco de dados, como Primary e Foreign Keys, precisam ser transferidos manualmente.

Exportando Primary Keys

Para exportar as suas Primary Keys, conecte no banco de dados de origem via SQL Server Management Studio e execute a query abaixo. Essa query vai retornar os scripts que vão recriar as suas Primary Keys. Após migrar o banco de dados com o SQL Server Import and Export Wizard, é só executar dentro do banco de dados de destino os scripts gerados, e as Keys vão ser recriadas :)

SELECT DISTINCT 'ALTER TABLE ' + colinfo.table_name 
    + ' WITH CHECK ADD CONSTRAINT [' 
    + colinfo.constraint_name 
    + '] PRIMARY KEY CLUSTERED (' 
    + (SELECT Stuff((SELECT ',' + column_name 
     FROM   information_schema.key_column_usage 
     WHERE  constraint_name 
            = colinfo.constraint_name 
     FOR xml path('')), 1, 1, '')) 
    + ')' 
    FROM   information_schema.key_column_usage colinfo 
    INNER JOIN information_schema.table_constraints tblC 
    ON tblC.constraint_name = colinfo.constraint_name 
    AND tblC.constraint_schema = colinfo.constraint_schema 
    WHERE  tblC.constraint_type = 'PRIMARY KEY' 

Exportando Foreign Keys

Para exportar as suas Foreign Keys é o mesmo procedimento. Conecte no banco de dados de origem via SQL Server Management Studio e execute a query abaixo. Essa query vai retornar os scripts que vão recriar as suas Foreign Keys. Após migrar o banco de dados com o SQL Server Import and Export Wizard, é só executar dentro do banco de dados de destino os scripts gerados, e as Keys vão ser recriadas :)

SELECT DISTINCT 'ALTER TABLE ' + ReferencingConstraint.table_name 
    + ' ADD CONSTRAINT [' + FK.constraint_name + '] FOREIGN KEY (' 
    + (SELECT Stuff((SELECT ',' + column_name 
    FROM   information_schema.key_column_usage 
    colInfo 
    WHERE  colInfo.constraint_name = 
    FK.constraint_name 
    FOR xml path('')), 1, 1, '')) 
    + ') REFERENCES ' + PK_cons.table_name + ' (' 
    + (SELECT Stuff((SELECT ',' + column_name 
    FROM   information_schema.key_column_usage 
    colInfo 
    WHERE  colInfo.constraint_name = 
    FK.unique_constraint_name 
    FOR xml path('')), 1, 1, '')) 
    + ')' + ' ON DELETE ' + fk.update_rule 
    + ' ON UPDATE ' + FK.delete_rule 
    FROM   information_schema.referential_constraints AS FK 
    INNER JOIN information_schema.key_column_usage AS ReferencingConstraint 
    ON FK.constraint_schema = ReferencingConstraint.constraint_schema 
    AND FK.constraint_name = ReferencingConstraint.constraint_name 
    INNER JOIN information_schema.key_column_usage AS PK_cons 
    ON FK.constraint_schema = ReferencingConstraint.constraint_schema 
    AND FK.unique_constraint_name = PK_cons.CONSTRAINT_NAME

Os scripts serão exibidos na opção Results do Management Studio.

fk-tri.PNG

Para realizar a migração do banco de dados, é só abrir a ferramenta dar um Next.

initial.png

Você precisa definir que o Data Source vai ser SQL Server Native Cliente 11.0, e logo após vai informar o Server name e porta do seu banco de dados de origem.

Na opção de Authentication, marque Use SQL Server Authentication, e informe o usuário e senha do seu banco de dados de origem.

Em seguida clique em Refresh, e selecione o nome de seu banco de dados de origem no dropdown que fica logo ao lado.

source.png

Feito isso, pode dar um Next para configurar o banco de dados de destino.

destination.png

A opção de destino é semelhante, você precisa definir que o Destination vai ser SQL Server Native Cliente 11.0, e logo após vai informar o Server name e porta do seu banco de dados de destino.

Na opção de Authentication, marque Use SQL Server Authentication, e informe o usuário e senha do seu banco de dados de destino.

Em seguida clique em Refresh, e selecione o nome de seu banco de dados de destino no dropdown que fica logo ao lado.

Após clicar em Next, Selecione a opção Copy data from one or more tables or views e prossiga novamente.

details.png

Na próxima tela você tem a opção de selecionar quais tabelas e views deseja migrar. Para migrar o banco completamente, certifique-se de que todas as tabelas e views estão selecionadas.

details2.png

Após clicar em Next, confirme que a opção Run immediately está marcada, e pode clicar em Finish para realizar a migração.

finalconfigs.png

Pronto, em alguns minutos (dependendo do tamanho da base) seu banco de dados vai estar replicado aqui na Umbler.

Lembrete: Após a migração ser concluída, não esqueça de recriar as Primary e Foreign Keys do banco de dados (caso ele possua alguma). Clique aqui caso não tenha exportado as Keys ;)