Compartir a través de


¿Qué es una escucha de grupo de disponibilidad?

Se aplica a: SQL Server

Una escucha de grupo de disponibilidad es un nombre de red virtual (VNN) al que los clientes se pueden conectar para acceder a una base de datos situada en una réplica principal o secundaria de un grupo de disponibilidad Always On. Un cliente de escucha permite a un cliente conectarse a una réplica sin tener que conocer el nombre de la instancia física de SQL Server. Como el cliente de escucha enruta el tráfico, no es necesario modificar la cadena de conexión del cliente después de que se produzca una conmutación por error.

Un agente de escucha de grupo de disponibilidad se compone de un nombre de agente de escucha del Sistema de nombres de dominio (DNS), de una designación de puerto de agente de escucha y de una o varias direcciones IP. Solo el protocolo TCP es compatible con el agente de escucha del grupo de disponibilidad. El nombre DNS del agente de escucha debe ser único en el dominio y en NetBIOS. Cuando se crea un cliente de escucha, se convierte en un recurso de un clúster con un nombre de red virtual (VNN), una dirección IP virtual (VIP) y una dependencia de grupo de disponibilidad asociados. Un cliente utiliza DNS para resolver VNN en varias direcciones IP y después intenta conectarse a cada dirección hasta que una solicitud de conexión tiene éxito o hasta que se agota el tiempo de espera de las solicitudes de conexión.

Si el enrutamiento de solo lectura se configura para una o varias réplicas secundarias legibles, las conexiones de cliente con intención de lectura dirigidas al cliente de escucha se redirigen de forma automática a una réplica secundaria legible.

En este artículo se ofrece información general sobre una escucha de grupo de disponibilidad. También puede configurar el cliente de escucha y, después, obtener información sobre cómo conectarse a él.

Parámetros de cliente de escucha

Una escucha de grupo de disponibilidad se define por lo siguiente:

Nombre DNS único
Esto también se conoce como Nombre de red virtual (VNN). Se aplican las reglas de nomenclatura de Active Directory para los nombres de host DNS. Para obtener más información, vea el artículo de KB Convenciones de nomenclatura en Active Directory para equipos, dominios, sitios y unidades organizativas .

Una o varias direcciones IP virtuales (VIP)
Las direcciones VIP se configuran para una o varias subredes en las que el grupo de disponibilidad puede realizar la conmutación por error.

Configuración de dirección IP
Para una escucha de grupo de disponibilidad determinada, la dirección IP usa el Protocolo de configuración dinámica de host (DHCP), o bien una o varias direcciones IP estáticas. El uso de DHCP puede producir retrasos de conectividad durante la conmutación por error, por lo que no se recomienda en entornos de producción. Los grupos de disponibilidad que se extienden a través de varias subredes, o que usan configuraciones de red híbridas, deben usar una dirección IP estática.

Puerto de cliente de escucha

Al configurar una escucha de grupo de disponibilidad, debe designar un puerto mediante SSMS. Puede configurar el puerto predeterminado en 1433 para permitir la sencillez de las cadenas de conexión de cliente. Esto significa que, si usa 1433, no es necesario incluir un número de puerto en una cadena de conexión de la aplicación. Además, puesto que cada agente de escucha del grupo de disponibilidad tendrá un nombre de red virtual independiente, cada agente de escucha del grupo de disponibilidad configurado en un único WSFC se puede configurar para hacer referencia al mismo puerto predeterminado 1433.

Si utiliza el puerto predeterminado 1433 para los VNN de escucha de grupo de disponibilidad, seguirá siendo necesario asegurarse de que ningún otro servicio en el nodo de clúster esté utilizando este puerto; de lo contrario, se produciría un conflicto con el puerto.

Si una de las instancias de SQL Server ya escucha en el puerto TCP 1433 a través del cliente de escucha de la instancia y no hay otros servicios (como instancias adicionales de SQL Server) en el equipo que escuchen en el puerto 1433, no se producirá un conflicto en el puerto con la escucha de grupo de disponibilidad. Esto se debe a que la escucha de grupo de disponibilidad puede compartir el mismo puerto TCP en el mismo proceso. Sin embargo, no se deben configurar varias instancias de SQL Server (en paralelo) para escuchar en el mismo puerto porque una de ellas no podrá escuchar las conexiones.

También puede designar un puerto de escucha de grupo de disponibilidad no estándar. Sin embargo, también debe usar explícitamente el puerto de destino en la cadena de conexión de la aplicación al conectarse a un cliente de escucha. También necesitará permiso de apertura en el firewall para este puerto.

Puede conectarse al cliente de escucha mediante el nombre y el puerto (si no es 1433). El puerto puede ser el puerto de escucha o el puerto de SQL Server subyacente que está configurado para escuchar.

En los ejemplos siguientes se muestra parte de la funcionalidad del cliente de escucha:

Configuración:

  • Dirección IP que escucha SQL Server: 192.168.20.2
  • Puerto que escucha SQL Server: 50254
  • Dirección IP del cliente de escucha que se configuró: 192.168.20.15
  • Nombre del cliente de escucha configurado: aglistener19
  • Puerto del cliente de escucha configurado: 50123
  1. Conéctese al cliente de escucha a través de la dirección IP y el puerto. Esta conexión se realiza correctamente.

    sqlcmd -S 192.168.20.15,50123 
    1> 
    
  2. Conéctese solo al cliente de escucha por el nombre, sin puerto. Esta conexión producirá un error porque se usó un puerto no predeterminado. Debe especificar ese puerto.

    sqlcmd -S aglistener19 
    
  3. Conéctese al cliente de escucha por el nombre del cliente de escucha y el puerto configurado. Esta conexión se realiza correctamente.

    sqlcmd -S aglistener19,50123 
    1> 
    
  4. Por último, conéctese al cliente de escucha y al puerto de SQL Server. Tenga en cuenta que, en este caso, está usando el puerto que escucha SQL Server, no en el puerto del cliente de escucha. Esta conexión también se realiza correctamente.

    sqlcmd -S aglistener19,50254
    1> 
    

Comportamiento de conexiones de cliente en la conmutación por error

Cuando se produce una conmutación por error de grupo de disponibilidad, las conexiones persistentes existentes al grupo de disponibilidad se terminan y el cliente debe establecer una nueva conexión para continuar trabajando con la misma base de datos principal o una base de datos secundaria de solo lectura. Mientras una conmutación por error se produce en el servidor, la conectividad al grupo de disponibilidad puede sufrir un error, forzando a la aplicación cliente a volver a intentar la conexión hasta que el servidor principal vuelve a ponerse totalmente en línea.

Si el grupo de disponibilidad vuelve a ponerse en línea durante el intento de conexión de una aplicación cliente pero antes del tiempo de espera de conexión, el controlador cliente puede conectarse correctamente durante uno de los intentos internos de reintento y no se producirá ningún error en la aplicación en este caso.

Pasos siguientes

Ahora que está familiarizado con el funcionamiento de una escucha de grupo de disponibilidad, cree el cliente de escucha y, después, configure la aplicación para que se conecte al cliente de escucha. También puede revisar varias estrategias de supervisión de grupos de disponibilidad para garantizar el estado del grupo de disponibilidad.

Para más sobre los grupos de disponibilidad, consulte Introducción a los grupos de disponibilidad AlwaysOn (SQL Server).