SSMS
 sql >> Base de Dados >  >> Database Tools >> SSMS

Migração de banco de dados SQL com SSMS


A migração do MSSQL entre servidores pode ser um desafio sem as diretrizes adequadas para mantê-lo no caminho certo. Neste artigo, descreverei as várias maneiras de migrar bancos de dados Microsoft SQL Server entre servidores ou instâncias. Se você precisa mover um único banco de dados, muitos bancos de dados, logins ou procedimentos armazenados e visualizações, nós cobrimos você!

Há muitas circunstâncias em que você precisará mover um banco de dados ou restaurar bancos de dados. Os motivos mais comuns são:
  • Mudando para um servidor totalmente novo.
  • Mover para uma instância diferente do SQL.
  • Criar um servidor de desenvolvimento ou ativar um servidor de produção.
  • Restaurando bancos de dados de um backup.

Há duas maneiras principais de mover bancos de dados SQL. Manualmente com o Microsoft SQL Server Management Studio (SSMS) ou com a linha de comando. O método escolhido depende do que você precisa realizar. Se você estiver movendo um único banco de dados ou apenas alguns, fazer backup e restaurar manualmente os bancos de dados com o SSMS será a abordagem mais fácil. Se você estiver movendo muitos bancos de dados (pense em mais de 10), usar o método de linha de comando acelerará o processo. O método de linha de comando exige mais trabalho de preparação antes, mas se você estiver transferindo dezenas de bancos de dados, vale a pena o tempo gasto configurando o script em vez de migrar cada banco de dados individualmente. Se você não tiver certeza de qual método usar, tente primeiro a abordagem manual enquanto se sente confortável com o processo. Eu recomendo ler todo o caminho para uma compreensão mais profunda da metodologia.

Referências úteis para terminologia

SSMS – Um acrônimo para Microsoft S QL S sempre M gestão S estúdio.

Servidor de origem – O servidor ou instância que você está movendo bancos de dados de ou desligado .

Servidor de destino – O servidor ou instância para a qual você está movendo os bancos de dados para .

O método manual


Mover bancos de dados SQL com o método manual pode ser muito fácil. É o processo preferido para transferir alguns ou menores bancos de dados. Para seguir esta parte do guia, você deve ter o MSSQL e o Microsoft SQL Server Management Studio (SSMS) instalados.

Fazendo backup de bancos de dados no servidor de origem


1. Comece fazendo login no servidor de origem (o servidor do qual você está movendo os bancos de dados). Você vai querer abrir o Microsoft SQL Server Management Studio selecionando Iniciar> Microsoft SQL Server>  Microsoft SQL Server Management Studio .

2. Faça login no servidor SQL usando a Autenticação do Windows ou a Autenticação do SQL.

3. Expanda o servidor (no nosso caso SQL01 ), expanda Bancos de dados , selecione o primeiro banco de dados que deseja mover (foto abaixo).

4. Clique com o botão direito do mouse em seu banco de dados e selecione Tarefas em seguida, clique em Fazer backup .

5. A partir daqui você está agora no Back Up Database tela. Você pode escolher um tipo de backup como Completo ou Diferencial , certifique-se de que o banco de dados correto esteja selecionado e defina o destino para o backup do SQL. Para o nosso exemplo, podemos deixar o Backup Tipo como Completo .

6. Em Backup Tipo , marque a caixa "Backup somente cópia .” Se você estiver executando o DPM ou outra forma de backup do servidor, fazer backup sem o Somente cópia sinalizador causará uma interrupção na cadeia de log de backup.

7. Você verá um local em Destino para o caminho do novo backup. Normalmente você irá Remover esta entrada, em seguida, Adicionar um novo para selecionar uma pasta que o SQL tenha acesso de leitura/gravação. Adicionando um novo Destino de backup mostra um caminho semelhante ao seguinte:

C:\Arquivos de Programas\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\

Este caminho C:\ é onde está o backup do banco de dados armazenado. Anote esse local para referência posterior, pois esse é o caminho padrão para backups armazenados e terá que ter acesso de leitura/gravação adequado para serviços SQL.
Observação:os usuários avançados podem se sentir à vontade para deixar o destino como está, desde que as permissões estejam corretas na pasta de saída.
8. Em seguida, anexe um nome de arquivo ao final deste caminho, como AdventureWorks2012-081418 .bak – Certifique-se de terminar o nome do arquivo com a extensão .bak e selecione OK

10. Depois de pressionar OK em Selecionar destino de backup prompt, você está pronto para fazer backup do banco de dados! Tudo o que você precisa fazer agora é clicar em OK e o banco de dados começará a fazer backup. Você verá uma barra de progresso no canto inferior esquerdo e, quando o backup estiver concluído, uma janela aparecerá dizendo 'O backup do banco de dados 'AdventureWorks2012' foi concluído com êxito. '

Navegue até o caminho de destino, observado anteriormente (neste caso, C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\ ), você verá seu arquivo recém-criado (neste caso AdventureWorks2012-081418.bak ) – Parabéns! Este arquivo é a exportação completa do seu banco de dados e está pronto para ser importado para o novo servidor. Se você tiver mais bancos de dados, repita as etapas acima para cada banco de dados que estiver movendo. Depois de copiar todo o processo de banco de dados para a próxima etapa de restauração de bancos de dados para o servidor de destino.

Restaurando bancos de dados no servidor de destino


Agora você deve ter um arquivo .bak de todos os seus bancos de dados no servidor de origem. Esses arquivos de banco de dados precisam ser transferidos para o servidor de destino. Existem várias maneiras de mover seus dados para o servidor de destino; você pode usar USB, Robocopy ou FTP. Depois de copiar um banco de dados, você pode armazená-lo em seu servidor de destino, por exemplo, nós o armazenamos na unidade C em uma pasta chamada C:\dbbackups.

1. Abra o Microsoft SQL Server Management Studio.

2. Faça login no servidor SQL usando a Autenticação do Windows ou a Autenticação do SQL.

3. Expanda o servidor e clique com o botão direito em Bancos de dados e selecione Restaurar banco de dados.

4. O Restaurar Banco de Dados A tela se parece muito com o Back Up Database screen.Em Fonte, você desejará selecionar Dispositivo em vez de Banco de dados . Selecionando Dispositivo permite restaurar diretamente de um arquivo. Depois de escolher Dispositivo , clique no ícone de navegação […]

5. Selecione Adicionar , em seguida, navegue até a pasta na qual seus arquivos .bak residem. (Neste caso, C:\dbbackups ).

6. Selecione o primeiro banco de dados .bak que deseja restaurar e clique em OK.

7. Clique em OK e agora você está pronto para importar o banco de dados. Antes de importar, vamos dar uma olhada na seção Opções no lado esquerdo. Em Opções, você verá outras configurações para restaurar bancos de dados, como Substituir o banco de dados existente , Preservar as configurações de replicação e Restringir o acesso ao banco de dados restaurado . Nesse caso, não estamos substituindo um banco de dados existente, então deixarei todas essas opções desmarcadas. Se você deseja substituir um banco de dados existente (por exemplo, o banco de dados de backup tem dados mais recentes do que no servidor de destino ou você está substituindo um banco de dados de desenvolvimento ou produção), basta selecionar Substituir o banco de dados existente .
Observação:os usuários avançados podem se sentir à vontade para deixar o destino como está, desde que as permissões estejam corretas na pasta de saída.
8. Clicando em OK inicia o processo de restauração conforme indicado pela janela pop-up que diz 'Banco de dados 'AdventureWorks2012' restaurado com sucesso.' Você migrou seu banco de dados da origem para o servidor de destino.

Repita esse processo para cada banco de dados que você está migrando. Você pode atualizar as referências de caminho em seus scripts/aplicativos para apontar para o novo servidor, verifique se a migração foi bem-sucedida.

Migrando logins do Microsoft SQL Server


Após importar seus bancos de dados, se você não conseguir se conectar usando seu login SQL, poderá receber o erro 'Falha no login para o usuário 'exemplo'. (Microsoft SQL Server, erro:18456). ' Porque o banco de dados está no Login tradicional e modelo de usuário , os logins são armazenados separadamente no servidor de origem e as credenciais não estão contidas no próprio banco de dados. A partir deste ponto, o servidor de destino pode ser configurado para usar o Modelo de Usuário de Banco de Dados Contido que mantém os logins em seu banco de dados e fora do servidor de origem. Até lá, teremos que nos movimentar e interagir com os usuários como parte do modelo Tradicional. Continue abaixo para prosseguir com a migração de seus usuários SQL.

Fazer backup e restaurar os bancos de dados moveu seus logins SQL em relação aos bancos de dados (seus logins ainda estão associados aos bancos de dados corretos com as permissões corretas), mas os logins reais em si não foram transferidos para o novo servidor. Você pode verificar isso abrindo o SSMS (SQL Server Management Studio) no servidor de destino e navegando até Servidor> Segurança> Login s. Você notará que quaisquer logins SQL personalizados que você criou no servidor anterior não foram transferidos para cá, mas se você for para Servidor> Bancos de dados> Seu banco de dados (AdventureWorks2012 neste caso)> Segurança> Usuários você verá o login correto associado ao banco de dados.

Se você tiver um ou dois usuários SQL, basta excluir a associação do usuário ao banco de dados em Servidores> Bancos de dados> AdventureWorks2012> Segurança> Usuários , recrie o usuário em Servidor> Segurança> Logins e mapeá-lo para o banco de dados apropriado.

Se você tiver muitos logins, terá que seguir um processo adicional descrito abaixo. Para migrar todos os usuários do SQL, abra uma Nova consulta janela no servidor de origem e execute o seguinte script:

Script de login SQL

+
Esse script cria dois procedimentos armazenados no banco de dados de origem que ajudam na migração desses logins. Abra uma janela Nova Consulta e execute o seguinte:
EXEC sp_help_revlogin

Essa consulta gera um script que cria novos logons para o servidor de destino. Copie a saída desta consulta e salve-a para mais tarde. Você precisará executar isso no servidor de destino.

Depois de copiar a saída dessa consulta, faça login no SSMS no servidor de destino e abra uma janela Nova consulta. Cole o conteúdo do script anterior (deve ter uma série de linhas semelhantes a -- Login:BUILTIN\Administrators
CREATE LOGIN [BUILTIN\Administrators] FROM WINDOWS WITH DEFAULT_DATABASE =[master]) e pressione Execute.

Agora você importou com êxito todos os logons do SQL e agora pode verificar se os bancos de dados foram migrados para o servidor de destino usando suas credenciais anteriores.

Migrando visualizações e procedimentos armazenados


As exibições e os procedimentos armazenados migrarão com o banco de dados se você estiver usando os backups de fita SQL típicos. Siga as instruções abaixo se precisar migrar exibições e procedimentos armazenados de forma independente.
  1. Abra o Microsoft SQL Management Studio no servidor de origem.
  2. Faça login em seu servidor SQL.
  3. Expanda o servidor e também os Bancos de dados .
  4. Clique com o botão direito do mouse no nome do seu banco de dados e vá para Tarefas> Gerar scripts .
  5. Clique em Avançar .
  6. Mudaremos Script de banco de dados inteiro e todos os objetos de banco de dados para Selecionar objetos de banco de dados específicos e marque apenas Visualizações e Procedimentos Armazenados.
  7. Clique em Avançar, observe a opção Salvar em arquivo. Anote o caminho do arquivo listado. No meu caso, é C:\Users\Administrator\Documents\script.sql - O caminho de exibições salvas e procedimentos armazenados.
  8. Clique em Avançar>> Próximo>>Concluir, e selecione C:\Users\Administrator\Documents\script.sql e copie-o para o servidor de destino.
  9. Vá para o servidor de destino, abra o SSMS e faça login no servidor SQL.
  10. Vá para Arquivo> Abrir> Arquivo ou use o atalho de teclado CTRL+O para abrir o script SQL. Selecione o arquivo C:\Users\Administrator\Documents\script.sql para abri-lo.
  11. Você verá o script gerado a partir do servidor de origem contendo todas as visualizações e procedimentos armazenados. Clique em Executar ou use o atalho de teclado F5 e execute o script.
Observação:Infelizmente, não há uma maneira integrada de fazer isso com a linha de comando. Existem ferramentas de terceiros e até mesmo uma ferramenta da Microsoft chamada mssql-scripter para scripts mais avançados.
Agora você migrou as visualizações e os procedimentos armazenados para o servidor de destino! Repita esse processo para cada banco de dados que estiver migrando. Um pouco de orientação ajuda bastante na administração de banco de dados. Cada servidor SQL terá suas próprias configurações e obstáculos a enfrentar, mas esperamos que este artigo tenha lhe dado uma base sólida para sua migração do Microsoft SQL Server.

Procurando um serviço SQL independente de plataforma de alta disponibilidade que seja facilmente escalável e possa crescer com seus negócios? Confira nosso produto SQL as a Service oferecido na Liquid Web. Fale com um dos nossos incríveis Consultores de Hospedagem para encontrar a solução perfeita para você!

No