Migrando um banco de dados de produção para um novo ambiente

2

Temos alguns bancos de dados do SQL Server 2005 que iremos mover para um novo servidor de produção em breve. Esses bancos de dados não são enormes, mas grandes o suficiente para dificultar isso com o menor tempo de inatividade possível.

Os três bancos de dados que serão movidos primeiro, já que são os mais críticos, têm 5, 9 e 25 GB de tamanho (dados somente sem logs).

Agora, há algumas possibilidades, mas como não sou um DBA completo, achei que talvez algumas pessoas aqui pudessem ter ideias / sugestões melhores. Aqui está o que nós inventamos:

* Create a full backup, move the file and restore the backup.

Isso é possível, mas como os bancos de dados são bastante grandes, isso significaria algumas falhas muito sérias (par de horas) do sistema, já que os bancos de dados precisam ser movidos.

É possível criar e restaurar um backup hoje e depois fazer uma restauração diferencial quando fizermos o movimento real? O problema que posso encontrar até agora com restaurações diferenciais é que elas sempre são adicionadas a um backup COMPLETO que deixaria os arquivos do mesmo tamanho e não reduziria o tempo de inatividade devido à movimentação dos arquivos de servidor para servidor.

Para tornar isso "mais" complicado, o novo banco de dados será configurado para espelhar, onde o ambiente antigo não é espelhado. Significa que eu teria que restaurar o backup diferencial no servidor principal (não acho que isso deva causar problemas, mas pensei em perguntar.)

Se houver outra maneira, mais fácil ou melhor, de fazer isso com o menor tempo de inatividade, eu também adoraria ouvir, claro.

Um usuário no StackOverflow respondeu simplesmente com "Você pode usar o espelhamento para fazer isso". Sem entrar em muitos detalhes, a maneira como vejo isso é que posso criar um espelho sobre o novo princípio e, em seguida, forçar o espelho a substituir o antigo servidor de produção. Em seguida, desativo o espelhamento e reativo o espelhamento para o novo servidor espelho.

Funcionaria assim?

    
por F.B. ten Kate 08.09.2010 / 15:12

3 respostas

2

Eu fiz esse tipo de migração várias vezes e a melhor maneira (para mim) é:

  • backup completo (com o banco de dados em uso)

  • log de transações de backup a cada n minutos (n depende de tempo para copiar o backup completo)

  • copie o backup completo para o novo servidor e restaure o banco de dados sem recuperação ( RESTORE....NORECOVERY )

  • copie e restaure (sempre sem recuperação) os logs de transação

  • quando o novo banco de dados estiver quase on-line, pare os aplicativos usando o banco de dados antigo, faça o backup dos últimos logs de transação, copie-o para o novo servidor e restaure-o com recuperação.

  • agora você tem o banco de dados no novo servidor com muito pouco tempo de inatividade.

por 08.09.2010 / 16:48
1

No que se refere ao backup e movimentação dos bancos de dados, faço backup regularmente de um banco de dados de 30 GB em menos de meia hora. Se você fizer o backup para uma unidade USB externa conectada ao servidor atual e transferi-los através da unidade USB para o novo servidor e restaurá-los, não demoro mais de uma hora, alguns minutos.

    
por 08.09.2010 / 15:58
0

Vou tentar dar um ponto,
Talvez eu esteja errado, deixe os outros dizerem se isso não é normal Você pode configurar a replicação transacional para o servidor NEW e publicar e assinar bancos de dados, de modo que os dois bancos de dados sejam executados constantemente em intervalos menores que alguns segundos.
Depois disso, você fecha a conexão com o banco de dados antigo dos clientes e aguarda alguns segundos.
Desativar replicação e começar a usar nova base de dados

    
por 08.09.2010 / 17:00