Tenho algumas perguntas básicas sobre o failover do Azure. Eu sou novo em failover. Tenho lido a literatura e estou pronto para tentar. Antes de mergulhar, gostaria de entender melhor como isso funcionará.
Temos um banco de dados primário em um servidor em uma região, vamos chamar esse servidor de DBPrime. Recentemente criamos uma réplica de leitura em um servidor em uma região diferente. Nossa primeira etapa foi descarregar as cargas de trabalho de leitura para a réplica de leitura. Vamos chamar esse servidor de DBRead.
Agora queremos dar o próximo passo e configurar o failover. Se entendi a literatura corretamente, não preciso de um terceiro servidor para fins de failover. Em vez disso, posso usar o servidor de réplica de leitura para funcionar como meu servidor alternativo para failover?
Aqui está o meu entendimento do que acontecerá se o failover for acionado. Por favor, deixe-me saber se estou correto sobre cada uma dessas afirmações ou se não estou entendendo corretamente.
- O Azure trocará os nomes dos servidores para que o DBRead seja agora DBPrime e vice-versa.
- O novo DBPrime fará a transição do modo somente leitura para leitura-gravação.
- As referências de aplicativos ao DBPrime acessarão perfeitamente o novo DBPrime
- As cargas de trabalho que fazem referência ao DBRead não poderão acessar o servidor porque esse servidor está inativo no momento (o que acionou o failover para começar).
(Podemos discutir separadamente o que acontece quando saímos do failover. Mas não faz sentido chegar a isso até entender o que acontece quando entramos no modo de failover.)
Obrigado pelo seu conselho!
No portal do Azure, na guia Grupo de Failover, deve haver dois pontos de extremidade, um para cargas de trabalho de leitura e gravação e outro para cargas de trabalho somente leitura ( .secondary. ). Se você tiver suas cargas de trabalho somente leitura usando o endpoint somente leitura, elas mudarão perfeitamente para o nó agora secundário.
Mas sim, supondo que todos os SIDs dos logins correspondam, tudo deverá funcionar perfeitamente para você. Esse é o mesmo cuidado que você precisa ter quando tem grupos de disponibilidade e com logins, os SIDs precisam ser os mesmos para que possam fazer failover sem problemas.
E sim, se você estiver no cenário em que um datacenter do Azure está completamente inativo e você força o nó secundário a ser o primário, qualquer aplicativo que tente se conectar ao secundário falhará, pois está apontando para o datacenter completamente inativo.
Pessoalmente, tentei contornar isso usando C-Names (como faria em um ambiente local), mas as Instâncias Gerenciadas do Azure realmente se preocupam com como são chamadas. Configurar um C-Name levou à incapacidade de fazer login, o que foi realmente frustrante. Portanto, no caso de nosso secundário realmente cair, precisaríamos atualizar manualmente qualquer local que especificamos.