Estou no processo de configuração sempre em clusters de alta disponibilidade pela primeira vez. Alguém pode me explicar da perspectiva da rede depois de configurar o grupo e testar para garantir que está funcionando corretamente, como o SQL sabe quando fazer o failover e como meu aplicativo conectado ao servidor SQL sabe para onde está apontando?
Por exemplo, tenho um aplicativo foo
conectando-se a uma instância nomeada DB01.FOO
. Quando foo
falha e passa para DB02.FOO
, como meu aplicativo saberia que deveria estar se comunicando DB02.FOO
?
DB02.FOO
está no mesmo domínio, mas em um servidor diferente. Estou apenas tentando entender todos os aspectos disso antes de tentar. Se houver algum link que alguém recomendaria, também seria incrível.
Existe uma Política de Failover Flexível que você pode usar para ajustar a sensibilidade aos critérios que acionarão um failover. O padrão é o
FAILURE_CONDITION_LEVEL = 3
que significa "erro crítico, servidor sem resposta ou servidor inoperante". Podem ver mais detalhes aqui e aqui .Se o ouvinte do grupo de disponibilidade estiver configurado corretamente, a cadeia de conexão não precisará de nenhum conhecimento adicional para sempre se conectar (mesmo após uma nova tentativa) à réplica primária em um servidor específico - ela não precisa conhecer esses detalhes de implementação. Tudo o que ele precisa fazer é apontar para o ouvinte, e o ouvinte determina se a réplica primária está atualmente em DB01 ou DB02. Isso é muito poderoso, pois permite que você ajuste a configuração do seu AG e mova as réplicas para qualquer lugar sem precisar tocar nos aplicativos (exceto nos casos em que você (a) adiciona uma réplica com intenção somente leitura ou (b) precisa mover o ouvinte). Você pode ver mais detalhes aqui .