Eu testei o recurso Grupos de Disponibilidade no SQL Server 2012 e descobri que há aproximadamente 15 segundos de tempo de inatividade quando o servidor primário faz failover para o servidor secundário. Todas as consultas SQL executadas durante esse período falharão até que a transição de failover seja concluída.
Existe alguma maneira de reduzir isso para 0 segundos e evitar que as consultas falhem durante a transição de failover?
Em outras palavras, existe uma maneira de obter qualquer consulta em execução durante a falha para ser redirecionada para o servidor principal em vez de falhar ... e existe alguma maneira de obter novas conexões de banco de dados para se conectar imediatamente ao servidor secundário em vez de falhar conectar durante a transição de failover?
Atualmente, tenho 2 servidores configurados no Grupo de Disponibilidade.
Não, não há como fazer failover com tempo de inatividade zero com AlwaysOn (ou no SQL Server em geral, pelo que sei). Para fazer isso, o SQL Server ao qual você está conectado teria que fazer a transferência de estado para outro nó no meio da consulta e, como muitos failovers são inesperados, isso não é possível.
No entanto, você pode habilitar "secundários somente leitura" no AlwaysOn e, em seguida, seus leitores não terão tempo de inatividade quando o servidor primário falhar - já que eles estão se conectando a uma cópia secundária de qualquer maneira para fazer suas consultas SELECT, eles não mesmo notar o failover. Ainda haveria uma interrupção para usuários com uma conexão "Gravação" aberta, mas pelo menos parte de sua base de usuários seria ininterrupta.