Copiar ou mover bancos de dados é uma das tarefas mais comuns para profissionais de dados que lidam regularmente com a implantação de scripts ou novas soluções em diferentes ambientes. Com o SQL Server, temos várias maneiras de fazer isso de forma nativa sem usar ferramentas de terceiros.
Soluções nativas no SQL Server
Aqui estão algumas maneiras pelas quais podemos realizar essa tarefa nativamente no SQL Server:
- No SQL Server, normalmente realizamos backups completos de banco de dados no banco de dados de origem, copiamos para o servidor de destino e depois restauramos. Isso pode se tornar uma tarefa desafiadora para iniciantes ou para profissionais que não estão na função de DBA. A menos que você tenha uma solução de script adequada, você pode ter problemas e se esforçar para fazer isso ao lidar com bancos de dados enormes.
- Outra opção é o método detach\attach. Esse método é usado popularmente, mas, novamente, você deve ter cuidado ao lidar com bancos de dados grandes ou com bancos de dados que incluem vários dados ou arquivos de log. Além disso, o banco de dados de origem ficaria offline ao usar essa abordagem. A menos que você seja um administrador de banco de dados experiente, ainda poderá ter problemas ao lidar com bancos de dados grandes.
Há outras opções que podem ser usadas, como usar o assistente de cópia de banco de dados ou o assistente de importação\exportação de dados para fins de importação\exportação de dados. Você também precisa garantir que os logons e permissões do servidor de origem sejam migrados corretamente para o servidor de destino, caso contrário, os usuários do aplicativo podem ter problemas para se conectar corretamente ao banco de dados.
Usando o dbForge Studio para SQL Server para copiar ou mover bancos de dados de uma instância para outra ou de um servidor para outro
Chegando ao software de terceiros, o dbForge Studio for SQL Server da Devart possui uma função interessante incorporada ao produto para realizar a cópia ou movimentação de bancos de dados em algumas etapas simples. Vamos rever o processo com uma demonstração neste artigo.
A versão de teste dura um mês e oferece tempo suficiente para testar as outras funcionalidades incorporadas ao produto. A versão de avaliação Enterprise 5.5 é usada para esta demonstração.
Depois de executar o dbForge Studio, você verá esta tela para atualizar os detalhes da conexão do banco de dados. Com isso, você poderá se conectar à sua instância do SQL Server.
Para realizar conexões adicionais com outras instâncias SQL, clique no ícone que abrirá a janela para uma nova conexão com o banco de dados.
Abaixo, você pode ver que já fiz uma conexão com uma instância SQL existente.
Depois de se conectar às instâncias do SQL Server, você pode exibir os bancos de dados que planeja copiar ou mover entre as instâncias. Nesta demonstração, vamos copiar o banco de dados test da instância SQL:Boulcott para Boulcott\INST2.
Para copiar o teste banco de dados para INST2, vá para Sincronização de banco de dados opção na guia principal e clique em Copiar banco de dados .
A janela Copiar Banco de Dados é aberta. Lá você pode inserir os detalhes dos servidores de origem e destino. Nesta demonstração, estamos copiando o banco de dados entre instâncias que estão na mesma máquina. Você também pode usar a ferramenta dbForge para copiar bancos de dados em diferentes servidores. Insira os detalhes do servidor conforme mostrado, verifique se a conexão foi bem-sucedida e clique em Avançar .
Uma vez feito, a lista de bancos de dados disponíveis no servidor de origem é exibida. Selecione o banco de dados que você planeja copiar. Em nosso exemplo, é o teste base de dados. Selecione Copiar opção e clique em Avançar . Aqui selecionei apenas um banco de dados para ser copiado. Mas a ferramenta não se limita a um banco de dados por vez, pois podemos selecionar vários bancos de dados para copiar ou mover ao mesmo tempo.
Selecione opções para o local do banco de dados de destino
Como você pode ver, os dados e os locais dos arquivos de log do banco de dados de destino podem ser alterados para os que você planejava usar. Os valores são gerados automaticamente, mas podem ser facilmente modificados. O nome do banco de dados de destino também pode ser alterado.
Clique em Avançar . A janela de configurações de transferência é exibida. Você precisa garantir que a conta do SQL Server Agent tenha privilégios suficientes para executar a operação de cópia. Revise esta seção com atenção, pois isso pode causar problemas se a conta do SQL Server Agent não tiver as permissões necessárias. No meu caso, como as instâncias estão dentro do mesmo servidor, não há necessidade de um diretório de pastas compartilhadas. No entanto, um diretório de pasta compartilhada com permissões suficientes para a conta do SQL Agent será necessário se você precisar copiar o banco de dados em instâncias SQL em servidores diferentes. Quando terminar a revisão, clique em Próximo .
Na guia Copiar logins, você pode decidir a opção correta com base em seus requisitos. Por padrão, Copiar todos os logins usados pelos bancos de dados selecionados está ativado. Faça a escolha apropriada no seu caso, revise e clique em Avançar .
Execute o processo de cópia com o dbForge Studio
A captura de tela abaixo mostra onde você pode iniciar o processo de execução da tarefa de cópia. Temos a opção de escolher os tipos de tratamento de erros possíveis durante o processo de execução. Por padrão, solicita uma ação ao usuário é selecionado. Nesta demonstração, também habilitei a opção de gravar um relatório em um arquivo de log que seria útil para lidar com qualquer tipo de erro. O log de erros é bastante detalhado e fornece o motivo de qualquer falha do processo em detalhes. Uma vez feito, clique no botão Executar opção que iniciará o processo de execução.
Você pode visualizar o progresso da tarefa de execução.
Conclusão do processo de cópia
Quando o processo for concluído, você verá esta notificação que confirma que o processo de cópia foi concluído.
Ao clicar em Mostrar arquivo de registro opção, você pode ver os detalhes da execução do processo e o status das tarefas concluídas. Você pode realizar mais operações de cópia clicando no botão Copiar mais opção.
Verifique a instância SQL de destino
A próxima etapa seria conectar-se à sua instância SQL de destino e validar se o banco de dados foi copiado. Na instância SQL de destino, há o teste banco de dados que foi copiado com sucesso usando dbForge Studio para SQL Server.
Mova bancos de dados da origem para a instância SQL de destino
Anteriormente, conseguimos copiar com êxito um banco de dados do servidor de origem para o servidor de destino. Também podemos usar essa ferramenta e a demonstração anterior se você precisar mover bancos de dados.
Na janela Selecionar bancos de dados, selecione Mover opção.
Isso basicamente migraria os bancos de dados do servidor de origem para o de destino. Basta seguir os passos descritos anteriormente. Eu parei intencionalmente o SQL Server Agent no servidor de destino e enfrentei essa tela de erro.
Ao clicar em Não , você será direcionado para a opção de visualizar os arquivos de log.
O botão Mostrar arquivo de log… levará você ao arquivo de log detalhado onde o motivo real da falha pode ser identificado.
Aqui, você pode ver precisamente o motivo da operação com falha. Você também verá que um trabalho do SQL Agent é criado no servidor de destino durante a execução e pode ser visualizado.
Este trabalho existe apenas durante o processo de execução e é excluído quando o processo é concluído. Conecte-se às instâncias Target e Source SQL para confirmar que os bancos de dados foram realmente movidos. A captura de tela abaixo confirma que os bancos de dados 1 e 2 foram movidos com sucesso do servidor de origem para o de destino.
Copiar bancos de dados da instância SQL de origem para a instância de destino e substituir
Até agora, copiamos e movemos bancos de dados do servidor de origem para o de destino. Em seguida, execute uma etapa adicional para copiar e substituir os bancos de dados WideWorldImporters.
Esse processo é semelhante às etapas anteriores para copiar ou mover bancos de dados com apenas uma etapa adicional para selecionar a substituição opção.
Basta seguir o restante das etapas semelhantes ao que foi feito anteriormente e o processo será bem-sucedido assim que for concluído. Para resumir, usando o Copiar banco de dados opção na ferramenta dbForge Studio, você pode executar as seguintes funções:
- Copiar bancos de dados do servidor de origem para o de destino
- Mover bancos de dados do servidor de origem para o de destino
- Copiar e substituir bancos de dados do servidor de origem para o de destino
- Mova e substitua bancos de dados do servidor de origem para o de destino
Conclusão
- Com esta demonstração, você viu a facilidade com que um banco de dados pode ser copiado de uma instância SQL para outra com muito pouca entrada do usuário usando o dbForge Studio
- Outra vantagem dessa ferramenta é que vários bancos de dados podem ser copiados ou movidos em diferentes instâncias de uma só vez
- Pouco conhecimento técnico é necessário para executar essas tarefas, pois a ferramenta é fácil de usar e baseada em GUI
- Esta ferramenta pode ser bastante útil, especialmente se você estiver lançando implantações rapidamente em diferentes ambientes de servidor e se o tempo for uma restrição
Ferramenta útil:
dbForge Studio for SQL Server – IDE poderoso para gerenciamento, administração, desenvolvimento, relatório e análise de dados do SQL Server.