He estado probando la función Grupos de disponibilidad en SQL Server 2012 y descubro que hay aproximadamente 15 segundos de tiempo de inactividad cuando el servidor primario falla al servidor secundario. Todas las consultas SQL ejecutadas durante este tiempo fallan hasta que se completa la transición de conmutación por error.
¿Hay alguna forma de reducir esto a 0 segundos y evitar que las consultas fallen durante la transición de conmutación por error?
En otras palabras, ¿hay alguna manera de ejecutar las consultas durante el fallo para ser redirigido al servidor primario en lugar de fallar ... y hay alguna manera de obtener nuevas conexiones de db para conectarse inmediatamente al servidor secundario en lugar de fallar? conectarse durante la transición de conmutación por error?
Actualmente tengo 2 servidores configurados en el Grupo de disponibilidad.
Respuestas:
No, no hay forma de realizar una conmutación por error de tiempo de inactividad cero con AlwaysOn (o en SQL Server en general, por lo que yo sé). Para hacer eso, el SQL Server al que está conectado tendría que hacer una transferencia de estado a otro nodo a mitad de la consulta, y dado que muchas fallas son inesperadas, eso no es posible.
Sin embargo, puede habilitar "secundarios de solo lectura" en AlwaysOn, y luego sus lectores tendrían tiempo de inactividad cero cuando el servidor primario falla, ya que de todos modos se están conectando a una copia secundaria para hacer sus consultas SELECT, incluso nota la conmutación por error. Todavía habría una interrupción para los usuarios con una conexión de "Escritura" abierta, pero al menos una parte de su base de usuarios sería ininterrumpida.
fuente