Primeiro, gostaria de pedir desculpas se meu conhecimento na área de DBA é muito limitado, já que eu e vários outros membros da equipe acabamos de receber este projeto porque temos recursos significativamente limitados.
A tarefa dada foi atualizar várias instâncias do SQL Server de 2014 para 2017 e algumas para 2022, uma vez que o EOS está iminente no próximo ano. O escopo também combinará vários bancos de dados em uma instância. Elaboramos um plano sobre como executá-lo, mas precisamos de alguma validação de que esta etapa está correta e de alguns conselhos e sugestões para a implantação.
Pré-atualização
- Backups Primeiro faríamos backup de todos os bancos de dados que iremos atualizar para o formato .bak. Também salvaremos instantâneos caso o .bak falhe.
- Testando os referidos backups Após a conclusão do backup, criaremos uma VM para restaurar os backups para garantir que o .bak ou os snapshots possam ser usados em caso de problema durante a atualização (esta etapa é obrigatória, pois o cliente está cauteloso porque instantâneos anteriores falharam)
- Geraremos um relatório do Data Migration Assistant (DMA) para descobrir quais SP e funções não são compatíveis após a atualização.
- Tudo isso será feito primeiro em um estágio de desenvolvimento; se tudo tiver sucesso, prosseguiremos na produção.
Atualizar
- Corrigiremos os referidos SP e funções do relatório DMA que terão problemas após a atualização
- Crie um período de inatividade que também coordenaremos com a equipe de operações para interromper todos os trabalhos de e para os bancos de dados (como Talend e Microstrategy e assim por diante).
Pós-atualização
- Certifique-se de que nenhum SP e Funções estejam obsoletos
- Verifique os dados e a acessibilidade
- Verifique todos os aplicativos que estão usando o banco de dados.
- Documente todas as alterações feitas em SP e Funções
Possível método alternativo a ser usado
- No produto, crie outra instância e atualize-a. Se for bem-sucedido, todos os aplicativos serão redirecionados para a nova instância e desabilitarão a instância antiga.
Limitações
- Os dados no desenvolvimento são significativamente menores, não há recurso para replicar
- Criar uma VM/servidor com as mesmas especificações do prod para testar ou tentar fazer isso pode ser difícil devido à restrição de recursos
Então este é o plano de jogo atual, há alguma sugestão ou conselho? Há algo que perdemos? Há algo que devemos observar? Existe uma maneira melhor de fazer isso?
Temos uma experiência muito limitada em lidar com este tipo de tarefa, por isso estamos realmente preocupados com a possibilidade de as coisas correrem mal. É claro que testaremos isso de antemão, mesmo antes de atualizar o desenvolvedor, para garantir que tudo esteja tão tranquilo quanto possível.
Muito obrigado.