Minha empresa está mudando nossa infraestrutura para um novo data center e estou tentando descobrir a melhor maneira de manter o banco de dados no novo servidor sincronizado com o banco de dados de produção atual até que os novos ambientes estejam prontos para entrar em operação. Não sendo um DBA em tempo integral, fiz algumas pesquisas e, pelo que li, parece que uma configuração de replicação transnacional melhor atenderia às nossas necessidades.
Alguns detalhes: o banco de dados de produção tem cerca de 90 GB de tamanho e, usando o Robocopy, demorou cerca de 9 horas para mover uma cópia dele para um dos novos servidores. O banco de dados de produção atual precisará permanecer online e acessível durante todo o processo de migração. Como a recuperação é simples, o espelhamento de banco de dados não está disponível.
Uma replicação transacional é o melhor método para manter os bancos de dados sincronizados?
Meu plano:
- (Concluído) Transfira o banco de dados atual e faça logon no novo servidor e anexe-o à nova instância do SQL Server
- Configure um distribuidor em nossa máquina de banco de dados de desenvolvimento e publique nele a partir do banco de dados de produção
- Crie um assinante na nova máquina de banco de dados que aceite as atualizações enviadas pelo distribuidor, uma vez por noite
Há duas coisas em minha mente. A replicação transacional exige que cada tabela publicada tenha uma chave primária e muitas das tabelas no banco de dados de produção não tenham chaves primárias definidas. Não acho que isso seja um problema muito grande, pois minha principal preocupação é apenas sincronizar os bancos de dados. Testaremos os diferentes aplicativos que usam o banco de dados em dados posteriores, mas gostaria de garantir que não seja um problema sério. Em segundo lugar, também preciso mover quaisquer bancos de dados do sistema associados da instância original, como mestre? Estamos mudando para uma configuração do Active Directory no novo ambiente, por isso não me importo com os usuários e coisas assim, mas não tenho certeza sobre a necessidade dos bancos de dados do sistema.
E, em geral, estou entendendo esses conceitos corretamente?