Configuración de un agente de escucha para un grupo de disponibilidad Always On
Se aplica a: SQL Server
En este artículo se explica cómo crear o configurar un único agente de escucha de grupo de disponibilidad para un grupo de disponibilidad Always On mediante SQL Server Management Studio, Transact-SQL o PowerShell en SQL Server.
Importante
Para crear la primera escucha de un grupo de disponibilidad, se recomienda encarecidamente usar SQL Server Management Studio, Transact-SQL o SQL Server PowerShell. Evite crear un agente de escucha directamente en el clúster de WSFC salvo cuando sea necesario, por ejemplo para crear un agente de escucha adicional.
¿Existe ya un agente de escucha para este grupo de disponibilidad?
Para determinar si ya existe un agente de escucha para el grupo de disponibilidad
Nota:
Si ya existe un agente de escucha y quiere crear otro, consulte Crear un agente de escucha adicional para un grupo de disponibilidad más adelante en este artículo.
Limitaciones y restricciones
- Solo puede crear un agente de escucha por cada grupo de disponibilidad mediante SQL Server. Normalmente, cada grupo de disponibilidad necesita un único agente de escucha. Sin embargo, algunos escenarios de clientes necesitan varios agentes de escucha para un grupo de disponibilidad. Después de crear un agente de escucha mediante SQL Server, puede usar Windows PowerShell para los clústeres de conmutación por error o el Administrador de clústeres de conmutación por error de WSFC para crear agentes de escucha adicionales. Para obtener más información, consulte Crear un agente de escucha adicional para un grupo de disponibilidad más adelante en este tema.
Recomendaciones
Aunque no es obligatorio, se recomienda usar una dirección IP estática si hay varias configuraciones de subred.
Requisitos previos
Debe estar conectado a la instancia del servidor que hospeda la réplica principal.
Si está configurando un agente de escucha del grupo de disponibilidad a través de varias subredes y planea usar direcciones IP estáticas, debe obtener la dirección IP estática de cada subred que hospede una réplica de disponibilidad del grupo de disponibilidad para el que está creando el agente de escucha. Normalmente, necesitará solicitar a sus administradores de red las direcciones IP estáticas.
Importante
Antes de crear el primer cliente de escucha, se recomienda encarecidamente leer Conectividad de cliente Always On.
Requisitos del nombre DNS de un agente de escucha de grupo de disponibilidad
Cada agente de escucha de grupo de disponibilidad necesita un nombre de host DNS que sea único en el dominio y en NetBIOS. El nombre DNS es un valor de cadena. Este nombre solo puede contener caracteres alfanuméricos, guiones (-) y caracteres de subrayado (_), en cualquier orden. Los nombres de host DNS no distinguen entre mayúsculas y minúsculas. La longitud máxima es de 63 caracteres; sin embargo, en SQL Server Management Studio, la longitud máxima que puede especificar es de 15 caracteres.
Es recomendable que especifique una cadena que tenga sentido. Por ejemplo, para un grupo de disponibilidad denominado AG1
, un nombre de host DNS significativo sería ag1-listener
.
Importante
NetBIOS reconoce solo los 15 primeros caracteres en dns_name. Si tiene dos clústeres de WSFC controlados por la misma instancia de Active Directory e intenta crear agentes de escucha del grupo de disponibilidad en los dos clústeres utilizando nombres con más de 15 caracteres y un prefijo idéntico de 15 caracteres, obtendrá un error notificando que el recurso de nombre de red virtual no se pudo poner en línea. Para obtener información acerca de las reglas de nomenclatura de prefijos para los nombres DNS, vea Asignación de nombres de dominio.aspx)
Permisos de Windows
Permisos | Link |
---|---|
El nombre de objeto de clúster (CNO) del clúster de WSFC que hospeda el grupo de disponibilidad debe tener permiso para crear objetos de equipo. En Active Directory, un CNO de forma predeterminada no tiene permiso para crear objetos de equipo explícitamente y puede crear 10 objetos de equipo virtual (VCO). Una vez creados los 10 VCO, no podrán crearse otros adicionales. Puede evitar esto si concede el permiso de forma explícita al CNO del clúster de WSFC. Los VCO para los grupos de disponibilidad que ha eliminado no son eliminados de forma automática en Active Directory y se contabilizan para el límite predeterminado de 10 VCO a menos que sean eliminados de forma manual. Nota: En algunas organizaciones, la directiva de seguridad prohíbe conceder permiso para crear objetos de equipo a cuentas de usuario individuales. |
Steps for configuring the account for the person who installs the cluster (Pasos para configurar la cuenta para la persona que instala el clúster) en la Failover Cluster Step-by-Step Guide: Configuring Accounts in Active Directory (Guía paso a paso de clúster de conmutación por error: configurar cuentas en Active Directory) Steps for prestaging the cluster name account (Pasos para el ensayo previo de la cuenta de nombre de clúster) en la Failover Cluster Step-by-Step Guide: Configuring Accounts in Active Directory (Guía paso a paso de clúster de conmutación por error: configurar cuentas en Active Directory) |
Si su organización necesita que preconfigure la cuenta de equipo para un nombre de red virtual de agente de escucha, deberá pertenecer al grupo Operador de cuentas o pedir ayuda a su administrador de dominio. | Steps for prestaging an account for a clustered service or application (Pasos para el ensayo previo de una cuenta para un servicio o una aplicación en clúster) en la Failover Cluster Step-by-Step Guide: Configuring Accounts in Active Directory (Guía paso a paso de clúster de conmutación por error: configurar cuentas en Active Directory). |
Sugerencia
Generalmente, es más sencillo no ensayar previamente la cuenta del equipo para un nombre de red virtual de agente de escucha. Si puede, deje que la cuenta se cree y configure automáticamente al ejecutar el asistente para alta disponibilidad de WSFC.
Permisos de SQL Server
Tarea | Permisos |
---|---|
Para crear un agente de escucha del grupo de disponibilidad. | Se requiere la pertenencia al rol fijo de servidor sysadmin y el permiso de servidor CREATE AVAILABILITY GROUP, el permiso ALTER ANY AVAILABILITY GROUP o el permiso CONTROL SERVER. |
Para modificar un agente de escucha del grupo de disponibilidad existente | Se requiere el permiso ALTER AVAILABILITY GROUP en el grupo de disponibilidad, el permiso CONTROL AVAILABILITY GROUP, el permiso ALTER ANY AVAILABILITY GROUP o el permiso CONTROL SERVER. |
Creación de un agente de escucha
Puede crear un agente de escucha mediante SQL Server Management Studio, Transact-SQL o PowerShell.
Sugerencia
Use el Asistente de grupos de disponibilidad para crear un agente de escucha del grupo de disponibilidad.
Para crear o configurar un agente de escucha de grupo de disponibilidad en SSMS, siga estos pasos:
En el Explorador de objetos, conéctese a la instancia del servidor que hospeda la réplica principal del grupo de disponibilidad y seleccione el nombre del servidor para expandir el árbol.
Expanda los nodos Alta disponibilidad de Always On y grupos de disponibilidad.
Seleccione el grupo de disponibilidad cuyo agente de escucha desea configurar y elija una de las alternativas siguientes:
Para crear un agente de escucha, haga clic con el botón derecho en el nodo Agentes de escucha de grupo de disponibilidad y seleccione el comando Nuevo agente de escucha . Se abrirá el cuadro de diálogo de Nuevo agente de escucha del grupo de disponibilidad. Para obtener más información, vea Agregar agente de escucha de grupo de disponibilidad (cuadro de diálogo) más adelante en este artículo.
Para cambiar el número de puerto de un agente de escucha existente, expanda el nodo Agentes de escucha de grupo de disponibilidad , haga clic con el botón derecho en el agente de escucha y seleccione el comando Propiedades . Escriba el nuevo número de puerto en el campo Puerto y seleccione Aceptar.
Nuevo agente de escucha del grupo de disponibilidad (cuadro de diálogo)
Nombre DNS del agente de escucha
Especifica el nombre de host DNS del agente de escucha del grupo de disponibilidad. El nombre DNS es una cadena que debe ser única en el dominio y en NetBIOS. Este nombre solo puede contener caracteres alfanuméricos, guiones (-) y caracteres de subrayado (_), en cualquier orden. Los nombres de host DNS no distinguen entre mayúsculas y minúsculas. La longitud máxima es de 15 caracteres.
Para obtener más información, vea Requisitos del nombre DNS de un agente de escucha de grupo de disponibilidad, anteriormente en este artículo.
Puerto
El puerto TCP usado por este agente de escucha.
Modo de red
Indica el protocolo TCP utilizado por el agente de escucha; puede ser:
DHCP
El agente de escucha nos pedirá una dirección IP dinámica asignada por un servidor que ejecute el protocolo DHCP (Protocolo de configuración dinámica de host). DHCP está limitado a una sola subred.
Importante
No se recomienda DHCP en el entorno de producción. Si hay un tiempo de inactividad y expira la concesión de IP para DHCP, se necesitará más tiempo para registrar la nueva dirección IP de red DHCP que está asociada con el nombre DNS de escucha, lo que puede afectar a la conectividad de cliente. Sin embargo, DHCP es adecuado para configurar el entorno de desarrollo y pruebas para comprobar características básicas de los grupos de disponibilidad y para la integración con las aplicaciones.
Dirección IP estática
El agente de escucha utilizará una o más direcciones IP estáticas. Las direcciones IP adicionales son opcionales. Para crear un agente de escucha del grupo de disponibilidad a través de varias subredes, para cada subred se debe especificar una dirección IP estática en la configuración del agente de escucha. Póngase en contacto con su administrador de red para obtener estas direcciones IP estáticas.
Si selecciona Dirección IP estática , aparecerá una cuadrícula de subred debajo del campo Modo de red . Esta cuadrícula muestra información sobre cada subred a la que puede tener acceso este agente de escucha del grupo de disponibilidad. Esta cuadrícula estará vacía hasta que agregue una dirección IP estática seleccionando Agregar.
Estas son sus columnas:
Subred
Muestra el identificador de cada subred que se agrega al agente de escucha del grupo de disponibilidad.
Dirección IP
Muestra la dirección IP de una subred determinada. Para una subred determinada, la dirección IP es una dirección IPv4 o una dirección IPv6.
Add (Agregar)
Seleccione Agregar para agregar una dirección IP estática a una subred seleccionada o a otra subred para este agente de escucha. Se abrirá el cuadro de diálogo de Agregar dirección IP . Para obtener más información, consulte el artículo de ayuda cuadro de diálogo Agregar dirección IP.
Remove
Seleccione esta opción para quitar la subred seleccionada de este agente de escucha.
OK (CORRECTO)
Seleccione esta opción para crear el agente de escucha del grupo de disponibilidad especificado.
Solución de problemas
No se ha podido crear un agente de escucha del grupo de disponibilidad por las cuotas de Active Directory
La creación de un nuevo agente de escucha del grupo de disponibilidad puede producir un error en la creación porque se ha alcanzado una cuota de Active Directory para la cuenta de equipo del nodo de clúster que participa. Para obtener más información, revise Cómo solucionar problemas de la cuenta del Servicio de Clúster Server cuando modifica objetos de equipo.
Seguimiento: después de crear un agente de escucha del grupo de disponibilidad
Palabra clave MultiSubnetFailover y características asociadas
MultiSubnetFailover es una nueva palabra clave de la cadena de conexión que se usa para habilitar la conmutación por error más rápida con los grupos de disponibilidad Always On y las instancias de clúster de conmutación por error Always On en SQL Server 2012. Las tres subcaracterísticas siguientes se habilitan cuando se establece MultiSubnetFailover=True
en la cadena de conexión:
Conmutación por error de varias subredes más rápida a un agente de escucha de varias subredes para instancias del clúster de conmutación por error o un grupo de disponibilidad Always On.
Conmutación por error de una sola subred más rápida a un agente de escucha de una sola subred para instancias del clúster de conmutación por error o un grupo de disponibilidad Always On.
- Esta característica se usa al conectarse a un agente de escucha que solo tiene una dirección IP en una sola subred. Así, se realizan más reintentos de conexión TCP para acelerar las conmutaciones por error en una sola subred.
Resolución de una instancia con nombre en una instancia de clúster de conmutación por error AlwaysOn de varias subredes.
- Esto sirve para agregar compatibilidad con la resolución de una instancia con nombre para instancias del clúster de conmutación por error AlwaysOn con varios puntos de conexión de subred.
MultiSubnetFailover=True no se admite en .NET Framework 3.5 u OLEDB
Problema: si la instancia del clúster de conmutación por error o el grupo de disponibilidad tiene un nombre de escucha (denominado nombre de red o punto de acceso cliente en el Administrador de clústeres de WSFC) que depende de varias direcciones IP de subredes diferentes y usa ADO.NET con .NET Framework 3.5 SP1 o SQL Native Client 11.0 OLEDB, puede que se agote el tiempo de espera de conexión en el 50 % de las solicitudes de conexión de cliente al agente de escucha del grupo de disponibilidad.
Soluciones alternativas: le recomendamos que realice una de las tareas siguientes.
Si no tiene permiso para manipular recursos de clúster, cambie el tiempo de espera de la conexión a 30 segundos (este valor produce un tiempo de espera de TCP de 20 segundos además de un búfer de 10 segundos).
Ventajas: Si se produce una conmutación por error entre subredes, el tiempo de recuperación del cliente es breve.
Inconvenientes: La mitad de las conexiones cliente tardarán más de 20 segundos
Si tiene permiso para manipular recursos de clúster, el enfoque más recomendado consiste en establecer el nombre de red del agente de escucha del grupo de disponibilidad en
RegisterAllProvidersIP=0
. Para obtener más información, vea "Configuración de RegisterAllProvidersIP" más adelante en esta sección.Ventajas: No es necesario aumentar el valor del tiempo de espera de la conexión de cliente.
Inconvenientes: si se produce una conmutación por error entre subredes, el tiempo de recuperación del cliente podría ser de 15 minutos o más, según la configuración de HostRecordTTL y la de la programación de replicación DNS/AD entre sitios.
Ajuste de RegisterAllProvidersIP
Cuando se usa SQL Server Management Studio, Transact-SQL o PowerShell para crear una escucha de grupo de disponibilidad, el punto de acceso cliente se crea en WSFC con la propiedad RegisterAllProvidersIP establecida en 1 (true). El efecto de este valor de propiedad depende de la cadena de conexión de cliente, de la manera siguiente:
Cadenas de conexión que establecen MultiSubnetFailover en true
Los grupos de disponibilidad Always On establecen la propiedad RegisterAllProvidersIP en 1 para reducir el tiempo de reconexión después de una conmutación por error para los clientes cuyas cadenas de conexión de cliente especifiquen
MultiSubnetFailover = True
, como se recomienda. Para aprovechar la característica de múltiples subredes del agente de escucha, puede que los clientes necesiten un proveedor de datos que admita la palabra clave MultiSubnetFailover. Para más información sobre la compatibilidad del controlador con la conmutación por error de varias subredes, consulte Conectividad de cliente Always On.Para información sobre la agrupación en clústeres de varias subredes, consulte Agrupación en clústeres de varias subredes de SQL Server.
Sugerencia
Cuando
RegisterAllProvidersIP = 1
, si ejecuta el Asistente para validar una configuración de WSFC en el clúster de WSFC, el asistente genera el mensaje de advertencia siguiente:"La propiedad RegisterAllProviderIP para el nombre de red 'Name:<nombre_red>' está establecida en 1. Para la configuración de clúster actual, este valor debería estar establecido en 0".
Omita este mensaje.
Cadenas de conexión que no establecen MultiSubnetFailover en true
Cuando
RegisterAllProvidersIP = 1
, los clientes cuyas cadenas de conexión no usan =MultiSubnetFailover = TrueMultiSubnetFailover = True
, experimentarán conexiones con latencia elevada. Esto se debe a que estos clientes intentan conexiones a todas las direcciones IP de forma secuencial. En cambio, si RegisterAllProvidersIP se cambia a 0, la dirección IP activa se registra en el punto de acceso cliente del clúster de WSFC, lo que reduce la latencia de los clientes heredados. Por tanto, si tiene clientes heredados que necesitan conectarse a un agente de escucha del grupo de disponibilidad y no puede usar la propiedad MultiSubnetFailover, se recomienda cambiar RegisterAllProvidersIP a 0.Importante
Cuando se crea un agente de escucha de grupo de disponibilidad en el clúster de WSFC (GUI del Administrador de clústeres de conmutación por error), RegisterAllProvidersIP será 0 (False) de forma predeterminada.
Ajuste de HostRecordTTL
De forma predeterminada, los clientes almacenan en memoria caché los registros DNS de clúster durante 20 minutos. Al reducir HostRecordTTL(el período de vida (TTL)) del registro almacenado en memoria caché, los clientes heredados pueden volver a conectarse más rápido. Pero la reducción del ajuste de HostRecordTTL también puede producir un aumento de tráfico en los servidores DNS.
Script de PowerShell de ejemplo para deshabilitar RegisterAllProvidersIP y reducir TTL
En el ejemplo siguiente de PowerShell se muestra cómo configurar los parámetros de clúster RegisterAllProvidersIP y HostRecordTTL para el recurso de escucha. El registro DNS se almacena en memoria caché durante 5 minutos en lugar del valor predeterminado de 20 minutos. La modificación de los dos parámetros de clúster puede reducir el tiempo necesario para conectarse a la dirección IP correcta después de una conmutación por error para los clientes heredados que no pueden utilizar el parámetro MultiSubnetFailover. Reemplace yourListenerName
por el nombre del agente de escucha que va a cambiar.
Import-Module FailoverClusters
Get-ClusterResource yourListenerName | Set-ClusterParameter RegisterAllProvidersIP 0
Get-ClusterResource yourListenerName | Set-ClusterParameter HostRecordTTL 300
Stop-ClusterResource yourListenerName
Start-ClusterResource yourListenerName
Start-Clustergroup yourListenerGroupName
Para obtener más información sobre los tiempos de recuperación durante la conmutación por error, consulte Client Recovery Latency During Failover.
Recomendaciones de seguimiento
Después de crear un agente de escucha del grupo de disponibilidad:
Pida al administrador de red que reserve la dirección IP del agente de escucha para su uso exclusivo.
Proporcione el nombre del host DNS del agente de escucha a los desarrolladores de aplicaciones para que lo usen en las cadenas de conexión cuando soliciten conexiones cliente a este grupo de disponibilidad.
Anime a los desarrolladores a actualizar las cadenas de conexión de cliente para especificar
MultiSubnetFailover = True
, si es posible. Para más información sobre la compatibilidad del controlador con la conmutación por error de varias subredes, consulte Conectividad de cliente Always On.
Crear un agente de escucha adicional para un grupo de disponibilidad (opcional)
Después de crear un agente de escucha con SQL Server, puede agregar un agente de escucha adicional de la manera siguiente:
Cree el agente de escucha mediante una de las herramientas siguientes:
Con el Administrador de clústeres de conmutación por error de WSFC:
Agregue un punto de acceso de cliente y configure la dirección IP.
Ponga el agente de escucha en línea.
Agregue una dependencia al recurso de grupo de disponibilidad de WSFC.
Para obtener información sobre los cuadros de diálogo y las pestañas del Administrador de clústeres de conmutación por error, vea Interfaz de usuario: complemento Administrador de clúster de conmutación por error.
Con Windows PowerShell para los clústeres de conmutación por error:
Use Add-ClusterResource para crear un nombre de red y los recursos de dirección IP.
Use Start-ClusterResource para iniciar el recurso de nombre de red.
Use Add-ClusterResourceDependency para establecer la dependencia entre el nombre de red y el recurso de grupo de disponibilidad de SQL Server existente.
Para obtener información sobre cómo usar Windows PowerShell en los clústeres de conmutación por error, vea Introducción a los comandos del Administrador del servidor.
Inicie la escucha de SQL Server en el nuevo agente de escucha. Después de crear la escucha adicional, conéctese a la instancia de SQL Server que hospeda la réplica principal del grupo de disponibilidad y use SQL Server Management Studio, Transact-SQL o PowerShell para modificar el puerto de escucha.
Para obtener más información, vea How to create multiple listeners for same availability group (Cómo crear varios agentes de escucha para el mismo grupo de disponibilidad) (un blog del equipo de AlwaysOn de SQL Server).