
Temos alguns bancos de dados SQL Server 2005 que iremos migrar para um novo servidor de produção em breve. Esses bancos de dados não são enormes, mas grandes o suficiente para dificultar a execução com o mínimo de tempo de inatividade possível.
Os três bancos de dados que serão movidos primeiro, por serem os mais críticos, têm tamanho de 5, 9 e 25 GB (dados apenas sem logs).
Agora, existem algumas possibilidades, mas como não sou um DBA completo, pensei que talvez algumas pessoas aqui pudessem ter ideias/sugestões melhores. Aqui está o que descobrimos;
* 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 um tempo de inatividade bastante sério (algumas 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 a mudança real? O problema que encontrei até agora com as restaurações diferenciais é que elas sempre são adicionadas a um backup COMPLETO, o que deixaria os arquivos do mesmo tamanho e não reduziria o tempo de inatividade devido à movimentação dos arquivos de um servidor para outro.
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 menos tempo de inatividade, eu adoraria ouvir também, é claro.
Um usuário do StackOverflow respondeu simplesmente com "Você pode usar o espelhamento para fazer isso". Sem entrar em muitos detalhes, a forma como vejo isso é que posso criar um espelho com base no novo princípio e, em seguida, forçar o espelho a assumir o controle do antigo servidor de produção. Em seguida, desativo o espelhamento e reativo o espelhamento para o novo servidor espelhado.
Funcionaria assim?
Responder1
Já fiz esse tipo de migração diversas vezes e a melhor forma (para mim) é:
backup completo (com banco de dados em uso)
backup de logs de transações a cada n minutos (n depende do tempo para copiar o backup completo)
copie o backup completo para o novo servidor e depois restaure o banco de dados sem recuperação (
RESTORE....NORECOVERY
)copie e restaure (sempre sem recuperação) os logs de transações
quando o novo banco de dados estiver quase online, interrompa os aplicativos que usam o banco de dados antigo, faça backup dos logs das últimas transações, copie-o para o novo servidor e restaure-o com recuperação.
agora você tem o banco de dados em um novo servidor com muito pouco tempo de inatividade.
Responder2
No que diz respeito ao backup e movimentação de bancos de dados, faço backup regularmente de um banco de dados de 30 GB em menos de meia hora. Se você fizer backup deles em 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 demorarei mais do que uma hora, mais ou menos alguns minutos.
Responder3
Vou tentar dar um ponto de vista,
talvez eu esteja errado, deixe os outros dizerem se esta não é uma maneira regular. Você pode configurar a replicação transacional para o NOVO servidor e publicar e assinar bancos de dados, para que ambos os bancos de dados sejam executados constantemente em um atraso menor que alguns segundos .
Depois disso, você fecha a conexão com seu banco de dados antigo dos clientes e aguarda alguns segundos.
Desative a replicação e comece a usar um novo banco de dados