none
Migrar Banco de Dados de servidor - Assistente para copiar banco de dados SQL Server 2005 RRS feed

  • Pergunta

  • Boa tarde,

    Tenho um Servidor de Banco de Dados com SQL 2005, esta ainda com Server 2003, quero migrar para outro servidor fisico com Server 2008, estou pensando em usar o Assistente para copiar banco de dados.

    Já esta instalado o SQL Server 2005 no novo servidor, ao tentar executar o Assistente no servidor antigo em : Tasks > Copy Database > No servidor destino, quando vou procurar em Network Server o novo servidor não aparece.

    quarta-feira, 17 de junho de 2015 18:25

Respostas

  • Karine,

    Esta tarefa não é simples. Cada servidor possui características diferentes e nem sempre as mesmas configurações serão boas para hardwares diferentes (mesmo com configurações semelhantes).

    Deste modo, eu não recomendo a migração do banco de dados "master" e outros bancos de dados de sistema, porque pode trazer mais problemas do que soluções, uma vez que alguns objetos de sistema podem existir em uma versão do SQL Server e em outra não, ou apenas ter comportamentos/conteúdo diferentes, causando muitos transtornos na sua migração e em alguns casos durante toda a existência desta nova instância. 

    Isto porque um Service Pack ou Cumulative Update pode alterar o comportamento esperado de um servidor para outro, então é necessário que ambas as instância tenham exatamente a mesma configuração. Para verificar a versão de sua edição do SQL Server utilize:

    SELECT @@VERSION


    As configurações do servidor antigo podem servir como "ponto de partida" para você configurar o novo servidor. Para obter todas as configurações desta instância SQL utilize o script abaixo:

    USE master
    GO
    sp_configure 'show advanced options' , 1
    RECONFIGURE
    GO
    sp_configure
    GO

    Este script vai apenas exibir as configurações do seu servidor, para alterar veja a documentação do BOL:

    https://msdn.microsoft.com/pt-br/library/ms188787.aspx

    Verifique durante um período o desempenho de algumas consultas mais custosas e também sobre alguns procedimentos de rotina, para ajudar a verificar o que pode ser melhorado. Acredito que você está migrando para um hardware melhor e neste caso você precisa ajustar a instância para obter a melhor performance deste equipamento.

    Para migrar os "logins" e os "jobs" desta instância atual, eu recomendo que você crie um pacote SSIS com as tarefas "Transfer Logins" e "Transfer Jobs". Esta implementação é simples e basta você indicar a origem e o destino, parametrizando se quer migrar todos os objetos(sistemas e usuários) ou apenas os que você selecionar (melhor opção).

    Para ajudar nesta implementação veja:

    https://msdn.microsoft.com/pt-br/library/ms137870.aspx

    Recomendo que você faça a migração de "logins" e "jobs" nesta sequencia. Apenas para ilustrar segue um print-screen:

    Essa implementação é independente dos BACKUP e RESTORE dos seus 3 bancos de dados de usuários, mas assim que os bancos e os logins estiverem implementados, será necessário vincular os "logins" da instância SQL com os "users" de cada banco de dados, segue o script do T-SQL:

    Use SeuBanco
    GO
    
    EXEC sp_change_users_login 'Update_One', 'SeuUsuário', 'SeuLogin'
    GO

    Para outros objetos, eu recomendo que você crie os scripts pontualmente através do SSMS, como exemplo, para gerar os scripts dos seus "Linked Server", selecione a em sua instância SQL a pasta "Server Objects" -> "Linked Servers". Em seguida, clique em "F7" ou selecione a opção "Object Explorer Details" no menu "View".

    Logo vai aparecer uma janela com todos os objetos relacionados àquela "pasta", neste caso todos os "Linked Server" desta instância. Selecione os objetos desejados e clique com o botão direito em "Script Linked Server as", como indicado na imagem abaixo:

    Com o script T-SQL criado, basta executar no novo servidor.

    Como precaução, mantenha o servidor antigo durante alguns dias como contingência em caso de problemas.

    Apenas para ajudar você não esquecer de nada, utilize o script deste post do Blog MSDN:

    http://blogs.msdn.com/b/john_daskalakis/archive/2014/10/27/script-to-export-the-configuration-of-sql-server.aspx


    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quinta-feira, 18 de junho de 2015 14:15

Todas as Respostas

  • Karine,

    Se o intuito é apenas migrar o banco de dados, acredito que o melhor a ser feito seria uma das alternativas abaixo:

    - desatachar o banco, copiar os arquivos do banco de usuários (".mdf", ".ldf" e se existir ".ndf"), ou;

    - Efetuar um "BACKUP FULL" -> deixar o banco com status "OFFLINE" no servidor antigo (apenas como precaução) e efetuar o RESTORE no novo servidor (Opção + recomendada);

    Preferencialmente, efetue esta migração em um horário alternativo e procure providenciar antecipadamente medidas de contingência para reestabelecer o uso de sua instância SQL Server no servidor antigo, caso ocorra falhas na migração ou se um ou mais arquivos do banco acabarem sendo corrompidos durante a cópia (evite "mover" para eliminar possíveis perdas).

    Para maiores informações veja:

    https://msdn.microsoft.com/pt-br/library/ms186289.aspx

    https://msdn.microsoft.com/pt-br/library/ms186858.aspx

    https://msdn.microsoft.com/pt-br/library/ms190794.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quarta-feira, 17 de junho de 2015 18:49
  • Preciso migrar todas as configurações e informações do meu SQL

    System Database: Master, Model , MSDB,

    Bases (Tenho 3 bases na instância)
    Logins
    Server Roles
    Credentials
    Objetos (Linked Server)
    Jobs

    Fazendo um backup completo:

    https://technet.microsoft.com/pt-br/library/ms187510%28v=sql.105%29.aspx) e  restaurando: https://msdn.microsoft.com/pt-br/library/ms186390.aspx)

    Isso inclui todas as informações??

    quinta-feira, 18 de junho de 2015 12:39
  • Karine,

    Esta tarefa não é simples. Cada servidor possui características diferentes e nem sempre as mesmas configurações serão boas para hardwares diferentes (mesmo com configurações semelhantes).

    Deste modo, eu não recomendo a migração do banco de dados "master" e outros bancos de dados de sistema, porque pode trazer mais problemas do que soluções, uma vez que alguns objetos de sistema podem existir em uma versão do SQL Server e em outra não, ou apenas ter comportamentos/conteúdo diferentes, causando muitos transtornos na sua migração e em alguns casos durante toda a existência desta nova instância. 

    Isto porque um Service Pack ou Cumulative Update pode alterar o comportamento esperado de um servidor para outro, então é necessário que ambas as instância tenham exatamente a mesma configuração. Para verificar a versão de sua edição do SQL Server utilize:

    SELECT @@VERSION


    As configurações do servidor antigo podem servir como "ponto de partida" para você configurar o novo servidor. Para obter todas as configurações desta instância SQL utilize o script abaixo:

    USE master
    GO
    sp_configure 'show advanced options' , 1
    RECONFIGURE
    GO
    sp_configure
    GO

    Este script vai apenas exibir as configurações do seu servidor, para alterar veja a documentação do BOL:

    https://msdn.microsoft.com/pt-br/library/ms188787.aspx

    Verifique durante um período o desempenho de algumas consultas mais custosas e também sobre alguns procedimentos de rotina, para ajudar a verificar o que pode ser melhorado. Acredito que você está migrando para um hardware melhor e neste caso você precisa ajustar a instância para obter a melhor performance deste equipamento.

    Para migrar os "logins" e os "jobs" desta instância atual, eu recomendo que você crie um pacote SSIS com as tarefas "Transfer Logins" e "Transfer Jobs". Esta implementação é simples e basta você indicar a origem e o destino, parametrizando se quer migrar todos os objetos(sistemas e usuários) ou apenas os que você selecionar (melhor opção).

    Para ajudar nesta implementação veja:

    https://msdn.microsoft.com/pt-br/library/ms137870.aspx

    Recomendo que você faça a migração de "logins" e "jobs" nesta sequencia. Apenas para ilustrar segue um print-screen:

    Essa implementação é independente dos BACKUP e RESTORE dos seus 3 bancos de dados de usuários, mas assim que os bancos e os logins estiverem implementados, será necessário vincular os "logins" da instância SQL com os "users" de cada banco de dados, segue o script do T-SQL:

    Use SeuBanco
    GO
    
    EXEC sp_change_users_login 'Update_One', 'SeuUsuário', 'SeuLogin'
    GO

    Para outros objetos, eu recomendo que você crie os scripts pontualmente através do SSMS, como exemplo, para gerar os scripts dos seus "Linked Server", selecione a em sua instância SQL a pasta "Server Objects" -> "Linked Servers". Em seguida, clique em "F7" ou selecione a opção "Object Explorer Details" no menu "View".

    Logo vai aparecer uma janela com todos os objetos relacionados àquela "pasta", neste caso todos os "Linked Server" desta instância. Selecione os objetos desejados e clique com o botão direito em "Script Linked Server as", como indicado na imagem abaixo:

    Com o script T-SQL criado, basta executar no novo servidor.

    Como precaução, mantenha o servidor antigo durante alguns dias como contingência em caso de problemas.

    Apenas para ajudar você não esquecer de nada, utilize o script deste post do Blog MSDN:

    http://blogs.msdn.com/b/john_daskalakis/archive/2014/10/27/script-to-export-the-configuration-of-sql-server.aspx


    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quinta-feira, 18 de junho de 2015 14:15