A maneira mais rápida de mover um banco de dados do SQL Server entre sistemas e versões do SQL Server?

6

Estamos movendo nosso banco de dados não trivial do SQL Server [65Gib] para um novo servidor.

Adicionado na mistura, estamos mudando para o SQL Server 2008 R2 do SQL Server 2005 e, idealmente, precisamos dedicar algum tempo fazendo ALTERs para mover várias tabelas para diferentes grupos de arquivos.

O canivete tradicional seria:

  • Down do servidor antigo
  • Copiar arquivos de banco de dados (Apenas percebi que teria que encontrar outra forma de copiar sobre logins de usuários do masterdb)
  • Copie-os sobre o GigE para o novo DB
  • Importe bancos de dados para o NEW Server e permita que qualquer atualização seja processada.
  • Completar ALTERS
  • Ativar NOVO servidor

Adoraria pré-carregar o máximo possível da transferência; Existe uma boa maneira [simples] de copiar uma versão ativa do banco de dados e continuar atualizando o servidor de destino até que todo o trabalho de preparação seja feito? Ocorreu-me que eu poderia usar a replicação, mas eu não estava ciente se eu poderia promover o escravo de replicação ao mestre ...

Ou estou cometendo um erro ao tentar alternar versões de servidores e software ao mesmo tempo?

    
por Rizwan Kassim 21.07.2010 / 03:22

6 respostas

8

65 GB é realmente trivial, mas pode não acabar em cópia em uma LAN lenta ou se você não puder pagar alguns minutos de inatividade.

A maneira mais rápida de recortar (e mantê-la simples) é fazer log-ups (sem modo de recuperação) entre seu banco de dados existente e seu novo banco de dados.

Você deve conseguir copiar logins e amp; trabalhos de agente antes do corte & deixe-os desabilitados até que você mova seu tráfego ao vivo.

Não é realmente um erro trocar os servidores e a versão do SQL Server ao mesmo tempo, depende dos seus requisitos. Basta lembrar que colocar o db on-line no sql server 2008 R2 é um processo unidirecional que atualizará os arquivos de dados na primeira vez que o db fizer uma recuperação & não há como voltar atrás!

Sua outra opção não tão simples é fazer o seguinte:

  • no seu novo servidor, instale o mesmo versão do sql server como seu servidor existente
  • espelhamento do banco de dados de configuração btwn existentes & novo servidor
  • faça a mesma preparação na cópia logins / trabalhos de agentes / outras dependências
  • failover do espelho para o novo servidor tornando-se o principal (supondo que você ter suporte do seu aplicativo para fazer isso)
  • atualize o servidor existente para 2008 r2, então reprovar o upgrade de espelho novo servidor para 2008 r2, em seguida, failover novamente remova o espelho, desligue o velho servidor

Existem provavelmente muitas variações das abordagens acima. A moral da história é que você deve considerar o custo da transição versus o custo do tempo de inatividade. É um trade-off.

    
por 21.07.2010 / 03:43
3

Você pode desanexar seu banco de dados do servidor antigo, copiar os arquivos físicos e anexá-lo ao novo; ele será facilmente anexado a uma versão diferente do SQL Server, e se você já tiver transferido logins (usando um dos métodos sugeridos), tudo funcionará instantaneamente.

Fazer um backup de banco de dados completo e um backup de log (e, opcionalmente, reduzir o banco de dados) antes da transferência ajudará a reduzir o tamanho dos arquivos a serem copiados.

    
por 21.07.2010 / 07:00
2

Este artigo inclui alguns procedimentos armazenados que facilitam muito a transferência de login.

link

Ele também mantém o sid original do login, para que os usuários do banco de dados não precisem de sp_change_users_login para corresponder o sid do novo login ao que está armazenado no banco de dados do usuário.

    
por 21.07.2010 / 04:06
2

Eu fazia backup / restauração com um backup COMPLETO na noite anterior, e depois faço um backup / restauração diferencial no dia. Eu não copiaria os MDFs e os LDFs. Migrei bancos de dados com cerca de 400 GB no disco dessa maneira antes.

A inicialização instantânea de arquivos para MDFs torna isso muito rápido

Logins eu já tinha script e aplicado, trabalhos de configuração e desativado etc já.

    
por 21.07.2010 / 06:46
1

O espelhamento de banco de dados funcionará em diferentes versões do SQL. Eu fiz exatamente o que você está tentando usando o espelhamento de banco de dados e tendo os logins migrados antes do tempo. O problema é que você tem que configurar o espelhamento do banco de dados com o t-sql, o gui não o aceita, você também não pode voltar, então faça um backup completo do seu banco de dados antes de você querer recortar, sp_change_users_logins 'Update_One' 'user' 'user' para sincronizar seus novos logins com os usuários existentes no banco de dados e pronto. Migração de DB de qualquer tamanho em menos de 10 segundos. Menos ainda se você tiver tudo roteirizado.

    
por 05.12.2011 / 14:43
0

Por que você não copia os MDFs e os LDFs quando está executando a restauração? Nosso banco de dados é de aprox. 350 GB em

    
por 21.01.2011 / 20:24

Tags