Qual é a melhor maneira (ou seja, mais rápida) (backup e restauração) de migrar um banco de dados de 6 TB no SQL Server 2016 (Windows 2012r2) para outro servidor, SQL Server 2019 (Windows 2019)?
Podemos, por exemplo, desanexar o banco de dados no SQL Server 2016 e anexar no SQL Server 2019?
Se você usar backup e restauração para mover o banco de dados do Servidor A para o Servidor B, seu processo será
Dado que este é um banco de dados de 6 TB, ambos os processos inevitavelmente levarão tempo, digamos, para fins de argumentação, que leva duas horas para fazer backup e duas horas para restaurar.
Se o seu backup começar às 12h, todas as alterações feitas a partir das 12h serão incluídas no arquivo de backup, sendo o backup concluído às 14h. Se você iniciar sua restauração no Servidor B às 14h, isso significa que às 16h, quando a restauração for concluída, o banco de dados no Servidor B estará duas horas atrasado, pois as alterações foram feitas no Servidor A no tempo necessário para restaurar o Servidor B e essas não estão no backup.
A partir daqui, você precisaria capturar as alterações que ocorreram no Servidor A durante o período em que seu backup estava sendo restaurado no Servidor B; suas opções seriam um backup diferencial e/ou um backup de log.
Você pode fazer o seguinte para garantir que nenhuma alteração adicional seja feita no banco de dados no Servidor A depois que o backup final do log ocorrer:
BACKUP LOG YourDB TO DISK = '\\somewhere\backup.trn' WITH NORECOVERY
neste ponto, seu banco de dados no Servidor A entra
NORECOVERY
e fica inacessível, agora você tem uma interrupção que dura o tempo necessário para restaurar o log no servidor B (COM RECUPERAÇÃO) e também apontar novamente todos os seus aplicativos, etc.Esse processo pode ser um pouco mais fácil configurando grupos de envio de log, espelhamento ou disponibilidade antes da migração e "acionando o switch" quando você estiver pronto para o failover, o que deve proporcionar um tempo de inatividade mínimo.