Não tenho certeza de como dizer isso, mas estou procurando qualquer coisa que um DBA possa fazer (coisas fora da mudança de código no aplicativo) para reduzir o impacto para os usuários quando um AG falha.
Temos um AG de 2 nós executando o SQL 2016 SP2 CU10 no modo de confirmação síncrona, conectando-se a um ouvinte.
O que controla a comutação de conexões para o novo nó primário? existe uma maneira de acelerar o switch? Qualquer coisa na cadeia de conexão, configurações de AG, alteração de tempos limite, etc., que ajudaria a tornar a troca mais rápida para os usuários?
O ouvinte do grupo de disponibilidade (AG) direciona as conexões de entrada para a réplica primária ou de leitura, dependendo de como o AG está configurado (se permite solicitações de leitura ou não).
Quando ocorre um failover, ocorre uma inversão de função e uma réplica secundária faz a transição para a função primária e a antiga primária fará a transição para uma função secundária.
Durante um failover, todas as solicitações do cliente são encerradas. Este é o tempo de inatividade do seu aplicativo. Agora, após o failover, quando um cliente se reconectar ao ouvinte AG, o ouvinte se reconectará ao novo primário (exceto para solicitações de conexão de intenção de leitura).
Se seu aplicativo suportar:
MultiSubnetFailover = TRUE, então você terá um ganho de desempenho (conforme descrito na minha resposta.)
MultiSubnetFailover = False, então você deve diminuir as configurações do HostTTL para um valor menor, por exemplo, 5 segundos versus 300 segundos do padrão.
Ref.:
Você quer dizer que as conexões do cliente se estabelecem lentamente ao apontar para o ouvinte AG e deseja evitar isso? em caso afirmativo, esse é um problema comum/conhecido, especialmente quando os grupos de disponibilidade são configurados em um ambiente de várias sub-redes, e o problema ocorre devido ao tempo limite padrão para tentativas de conexão TCP do cliente para o servidor DNS.
No entanto, mesmo em uma única sub-rede, o uso de parâmetro adicional (
MultiSubnetFailover=Yes
) na cadeia de conexão pode tornar as conexões do cliente mais rápidas que o normal. Para mais detalhes..