Conexión a un agente de escucha del grupo de disponibilidad Always OnConnect to an Always On availability group listener

SE APLICA A: síSQL Server noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Este artículo contiene información sobre las consideraciones de conectividad del cliente de Grupos de disponibilidad AlwaysOnAlways On availability groups y la funcionalidad de conmutación por error de aplicaciones.This article contains information about considerations for Grupos de disponibilidad AlwaysOnAlways On availability groups client connectivity and application-failover functionality.

Nota

Para la mayoría de las configuraciones habituales de agente de escucha, puede crear el primer agente de escucha del grupo de disponibilidad utilizando simplemente instrucciones Transact-SQLTransact-SQL o cmdlets de PowerShell.For the majority of the common listener configurations, you can create the first availability group listener simply by using Transact-SQLTransact-SQL statements or PowerShell cmdlets. Para obtener más información, vea Tareas relacionadas, más adelante en este mismo tema.For more information, see Related Tasks, later in this topic.

Agentes de escucha del grupo de disponibilidadAvailability Group Listeners

Puede proporcionar conectividad de cliente a la base de datos de un grupo de disponibilidad determinado mediante la creación de un agente de escucha del grupo de disponibilidad.You can provide client connectivity to the database of a given availability group by creating an availability group listener. Un agente de escucha de grupo de disponibilidad es un nombre de red virtual (VNN) al que los clientes pueden conectarse para tener acceso a una base de datos situada en una réplica principal o secundaria de un grupo de disponibilidad AlwaysOn.An availability group listener is a virtual network name (VNN) to which clients can connect in order to access a database in a primary or secondary replica of an Always On availability group. Los agentes de escucha del grupo de disponibilidad permiten a los clientes conectarse a una réplica de disponibilidad sin conocer el nombre de la instancia física de SQL Server a la que se están conectando.An availability group listener enables a client to connect to an availability replica without knowing the name of the physical instance of SQL Server to which the client is connecting. No hay necesidad de modificar la cadena de conexión del cliente para conectarse a la ubicación actual de la réplica principal.The client connection string does not need to be modified to connect to the current location of the current primary replica.

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.An availability group listener consists of a Domain Name System (DNS) listener name, listener port designation, and one or more IP addresses. Solo el protocolo TCP es compatible con el agente de escucha del grupo de disponibilidad.Only the TCP protocol is supported by availability group listener. El nombre DNS del agente de escucha también debe ser único en el dominio y en NetBIOS.The DNS name of the listener must also be unique in the domain and in NetBIOS. Cuando se crea un nuevo agente de escucha del grupo de disponibilidad, se convierte en un recurso en un clúster con un nombre de red virtual (VNN), una dirección IP virtual (VIP) y una dependencia de grupo de disponibilidad asociados.When you create a new availability group listener it becomes a resource in a cluster with an associated virtual network name (VNN), virtual IP (VIP), and availability group dependency. 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.A client uses DNS to resolve the VNN into multiple IP addresses and then tries to connect to each address, until a connection request succeeds or until the connection requests time out.

Si el enrutamiento de solo lectura se configura para una o varias réplicas secundarias legibles, las conexiones de cliente de intento de lectura dirigidas a la réplica principal se redirigen a una réplica secundaria legible.If read-only routing is configured for one or more readable secondary replicas, read-intent client connections to the primary replica are redirected to a readable secondary replica. Asimismo, si la réplica principal se queda sin conexión en una instancia de SQL Server y se pone en línea una nueva réplica principal en otra instancia de SQL Server, el agente de escucha del grupo de disponibilidad permite a los clientes conectarse a la nueva réplica principal.Also, if the primary replica goes offline on one instance of SQL Server, and a new primary replica comes online on another instance of SQL Server, the availability group listener enables clients to connect to the new primary replica.

Para obtener información esencial sobre los agentes de escucha del grupo de disponibilidad, vea Crear o configurar un agente de escucha de grupo de disponibilidad (SQL Server).For essential information about availability group listeners, see Create or Configure an Availability Group Listener (SQL Server).

Configuración de agentes de escucha del grupo de disponibilidadAvailability Group Listener Configuration

Un agente de escucha del grupo de disponibilidad se define por lo siguiente:An availability group listener is defined by the following:

Nombre DNS únicoA unique DNS name
Esto también se conoce como Nombre de red virtual (VNN).This is also known as a Virtual Network Name (VNN). Se aplican las reglas de nomenclatura de Active Directory para los nombres de host DNS.Active Directory naming rules for DNS host names apply. 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 .For more information, see the Naming conventions in Active Directory for computers, domains, sites, and OUs KB article.

Una o varias direcciones IP virtuales (VIP)One or more Virtual IP addresses (VIPs)
Las direcciones VIP se configuran para una o varias subredes en las que el grupo de disponibilidad puede realizar la conmutación por error.VIPs are configured for one or more subnets to which the availability group can fail over.

Configuración de dirección IPIP address configuration
Para un agente de escucha determinado del grupo de disponibilidad, la dirección IP usa el Protocolo de configuración dinámica de host (DHCP) o una o varias direcciones IP estáticas.For a given availability group listener, the IP address uses either Dynamic Host Configuration Protocol (DHCP) or one or more static IP addresses.

  • Protocolo de configuración dinámica de host (DHCP)Dynamic Host Configuration Protocol (DHCP)

    Si un grupo de disponibilidad reside en una sola subred, puede configurar todas las direcciones IP del agente de escucha del grupo de disponibilidad para usar DHCP.If an availability group resides on a single subnet, you can configure all the availability group listener IP addresses to use DHCP. En los entornos de preproducción, DHCP proporciona una instalación fácil para un grupo de disponibilidad que no requiera recuperación ante desastres en un sitio remoto en una subred independiente.For pre-production environments, DHCP offers an easy setup for an availability group that does not require disaster recovery to a remote site on a separate subnet. Sin embargo, no se debe usar DHCP junto con un agente de escucha del grupo de disponibilidad en un entorno de producción.However, you should not use DHCP in conjunction with an availability group listener in a production environment. Esto se debe a que, en caso de tiempo de inactividad, si expira el tiempo de concesión de la dirección de IP de DHCP, se necesitará un tiempo adicional para volver a registrar la nueva dirección IP de DHCP asociada al nombre DNS del agente de escucha.This is because, in the event of down time, if the DHCP IP lease expires, extra time is required to re-register the new DHCP IP address associated with the listener DNS name. El tiempo adicional producirá un error de conexión del cliente.The extra time will cause client-connection failure.

  • Direcciones IP estáticasStatic IP addresses

    En los entornos de producción, se recomienda que los agentes de escucha del grupo de disponibilidad usen direcciones IP estáticas.In production environments, we recommend that availability group listeners use static IP addresses. Además, en los casos donde los grupos de disponibilidad se extienden a través de subredes en un dominio de varias subredes, un agente de escucha del grupo de disponibilidad debe usar direcciones IP estáticas.Furthermore, where availability groups extend across subnets in a multi-subnet domain, an availability group listener must use static IP addresses.

Las configuraciones de red híbridas y DHCP en subredes no se admiten para los agentes de escucha del grupo de disponibilidad.Hybrid network configurations and DHCP across subnets are not supported for availability group listeners. Esto se debe a que cuando se produce una conmutación por error, una dirección IP dinámica puede expirar o lanzarse, con lo que se compromete la alta disponibilidad total.This is because when a failover happens, a dynamic IP might expire or be released, which jeopardizes overall high availability.

Seleccionar un puerto de agentes de escucha del grupo de disponibilidadSelecting an Availability Group Listener Port

Al configurar un agente de escucha del grupo de disponibilidad, debe designar un puerto.When configuring an availability group listener, you must designate a port. Puede configurar el puerto predeterminado en 1433 para permitir la sencillez de las cadenas de conexión de cliente.You can configure the default port to 1433 in order to allow for simplicity of the client connection strings. Si utiliza 1433, no necesita indicar un número de puerto en una cadena de conexión.If using 1433, you do not need to designate a port number in a connection string. 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.Also, since each availability group listener will have a separate virtual network name, each availability group listener configured on a single WSFC can be configured to reference the same default port of 1433.

También puede diseñar un puerto de agente de escucha no estándar, aunque esto significa que también necesitará especificar explícitamente un puerto de destino en la cadena de conexión cada vez que se conecte al agente de escucha del grupo de disponibilidad.You can also designate a non-standard listener port; however this means that you will also need to explicitly specify a target port in your connection string whenever connecting to the availability group listener. También necesitará abrir permiso en el firewall para el puerto no estándar.You will also need to open permission on the firewall for the non-standard port.

Si utiliza el puerto predeterminado 1433 para los VNN del agente de escucha del 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 de puerto.If you use the default port of 1433 for availability group listener VNNs, you will still need to ensure that no other services on the cluster node are using this port; otherwise this would cause a port conflict.

Si una de las instancias de SQL Server ya está escuchando en el puerto TCP 1433 a través del agente de escucha de la instancia y no hay otros servicios (incluidas las instancias adicionales de SQL Server) en el equipo que escuchen en el puerto 1433, no se producirá un conflicto de puerto con el agente de escucha del grupo de disponibilidad.If one of the instances of SQL Server is already listening on TCP port 1433 via the instance listener and there are no other services (including additional instances of SQL Server) on the computer listening on port 1433, this will not cause a port conflict with the availability group listener. Esto se debe a que el agente de escucha del grupo de disponibilidad puede compartir el mismo puerto TCP en el mismo proceso del servicio.This is because the availability group listener can share the same TCP port inside the same service process. Sin embargo, no se deben configurar varias instancias de SQL Server (en paralelo) para escuchar en el mismo puerto.However multiple instances of SQL Server (side-by-side) should not be configured to listen on the same port.

Usar un agente de escucha para conectarse a la réplica principalUsing a Listener to Connect to the Primary Replica

Para usar un agente de escucha del grupo de disponibilidad y conectarse a la réplica principal para acceso de lectura/escritura, la cadena de conexión especifica el nombre DNS del agente de escucha del grupo de disponibilidad.To use an availability group listener to connect to the primary replica for read-write access, the connection string specifies the availability group listener DNS name. Si una réplica principal del grupo de disponibilidad cambia a una nueva réplica, las conexiones existentes que usan un nombre de red del agente de escucha del grupo de disponibilidad se desconectarán.If an availability group primary replica changes to a new replica, existing connections that use an availability group listener's network name are disconnected. Las nuevas conexiones al agente de escucha del grupo de disponibilidad se dirigen a la nueva réplica principal.New connections to the availability group listener are then directed to the new primary replica. El siguiente es un ejemplo de una cadena de conexión básica para el proveedor ADO.NET (System.Data.SqlClient):An example of a basic connection string for the ADO.NET provider (System.Data.SqlClient) is as follows:

Server=tcp: AGListener,1433;Database=MyDB;IntegratedSecurity=SSPI  

Puede seguir eligiendo hacer referencia directamente a la instancia de SQL Server de las réplicas principal o secundaria en lugar de utilizar el nombre del servidor del agente de escucha del grupo de disponibilidad; sin embargo, si decide realizar esta acción, perderá la ventaja que supone dirigir automáticamente las nuevas conexiones a la réplica principal actual.You can still choose to directly reference the instance of SQL Server name of the primary or secondary replicas instead of using the availability group listener server name, however if you choose to do so you will lose the benefit of new connections being directed automatically to the current primary replica. También perderá la ventaja del enrutamiento de solo lectura.You will also lose the benefit of read-only routing.

Usar un agente de escucha para conectarse a una réplica secundaria de solo lectura (enrutamiento de solo lectura)Using a Listener to Connect to a Read-Only Secondary Replica (Read-Only Routing)

Elenrutamiento de solo lectura se refiere a la capacidad de SQL ServerSQL Server de enrutar las conexiones entrantes a un agente de escucha de grupo de disponibilidad a una réplica secundaria configurada para permitir las cargas de trabajo de solo lectura.Read-only routing refers to the ability of SQL ServerSQL Server to route incoming connections to an availability group listener to a secondary replica that is configured to allow read-only workloads. Una conexión entrante que hace referencia al nombre de un agente de escucha del grupo de disponibilidad se puede enrutar automáticamente a una réplica de solo lectura si se cumple lo siguiente:An incoming connection referencing an availability group listener name can automatically be routed to a read-only replica if the following are true:

  • Al menos una réplica secundaria se establece para acceso de solo lectura, y cada réplica secundaria de solo lectura y la réplica principal se configuran para admitir el enrutamiento de solo lectura.At least one secondary replica is set to read-only access, and each read-only secondary replica and the primary replica are configured to support read-only routing. Para obtener más información, vea Para configurar réplicas de disponibilidad para el enrutamiento de solo lectura, más adelante en esta sección.For more information, see To Configure Availability Replicas for Read-Only Routing, later in this section.

  • La cadena de conexión hace referencia a una base de datos implicada en el grupo de disponibilidad.The connection string references a database involved in the Availability Group. Una alternativa para esto sería que el inicio de sesión usado en la conexión tenga la base de datos configurada como su base de datos predeterminada.An alternative to this would be the login used in the connection has the database configured as its default database. Para más información, vea Calculating read_only_routing_url for Always On (Calcular read_only_routing_url para Always On).For more information, see this article on how the algorithm works with read-only routing.

  • La cadena de conexión hace referencia a un agente de escucha de grupo de disponibilidad y la intención de aplicaciones de la conexión entrante se establece en solo lectura (por ejemplo, al usar la palabra clave Application Intent=ReadOnly en las cadenas de conexión, los atributos de conexión o las propiedades de ODBC u OLEDB).The connection string references an availability group listener, and the application intent of the incoming connection is set to read-only (for example, by using the Application Intent=ReadOnly keyword in the ODBC or OLEDB connection strings or connection attributes or properties). Para obtener más información, vea Intención de aplicación de solo lectura y enrutamiento de solo lectura, más adelante en esta sección.For more information, see Read-Only Application Intent and Read-Only Routing, later in this section.

Para configurar réplicas de disponibilidad para el enrutamiento de solo lecturaTo Configure Availability Replicas for Read-Only Routing

Un administrador de base de datos debe configurar las réplicas de disponibilidad del siguiente modo:A database administrator must configure the availability replicas as follows:

  1. Para cada réplica de disponibilidad que desee configurar como réplica secundaria legible, un administrador de base de datos debe configurar los valores siguientes, que tienen efecto solo en el rol secundario:For each availability replica that you want to configure as a readable secondary replica, a database administrator must configure the following settings, which take effect only under the secondary role:

    • El acceso de conexión debe establecerse en "todo" o "solo lectura".Connection access must be set to "all" or "read only".

    • Se debe especificar la dirección URL de enrutamiento de solo lectura.The read-only routing URL must be specified.

  2. Para cada una de estas réplicas, se debe especificar una lista de enrutamiento de solo lectura para el rol principal.For each of these replicas, a read-only routing list must be specified for the primary role. Especifique uno o varios nombres de servidor como destinos de enrutamiento.Specify one or more server names as routing targets.

Tareas relacionadasRelated Tasks

Intención de aplicación de solo lectura y enrutamiento de solo lecturaRead-Only Application Intent and Read-Only Routing

La propiedad de la cadena de conexión de la intención de aplicación expresa la solicitud de la aplicación cliente de ser dirigida a una versión de lectura y escritura, o de solo lectura, de una base de datos del grupo de disponibilidad.The application intent connection string property expresses the client application's request to be directed either to a read-write or read-only version of an availability group database. Para utilizar el enrutamiento de solo lectura, un cliente debe utilizar un intento de aplicación de solo lectura en la cadena de conexión al conectarse al agente de escucha del grupo de disponibilidad.To use read-only routing, a client must use an application intent of read-only in the connection string when connecting to the availability group listener. Sin el intento de aplicación de solo lectura, las conexiones al agente de escucha del grupo de disponibilidad se dirigen a la base de datos en la réplica principal.Without the read-only application intent, connections to the availability group listener are directed to the database on the primary replica.

El atributo de la intención de aplicación se almacena en la sesión de cliente durante el inicio de sesión y, después, la instancia de SQL Server procesará esta intención y determinará lo que debe hacer de acuerdo con la configuración del grupo de disponibilidad y el estado de lectura y escritura actual de la base de datos de destino en la réplica secundaria.The application intent attribute is stored in the client's session during login and the instance of SQL Server will then process this intent and determine what to do according to the configuration of the availability group and the current read-write state of the target database in the secondary replica.

El siguiente es un ejemplo de una cadena de conexión para el proveedor ADO.NET (System.Data.SqlClient) que designa el intento de solo lectura de la aplicación:An example of a connection string for the ADO.NET provider (System.Data.SqlClient) that designates read-only application intent is as follows:

Server=tcp:AGListener,1433;Database=AdventureWorks;IntegratedSecurity=SSPI;ApplicationIntent=ReadOnly  

En este ejemplo de cadena de comparación, el cliente intenta conectarse a la base de datos AdventureWorks mediante un agente de escucha del grupo de disponibilidad denominado AGListener en el puerto 1433 (también puede omitir el puerto si el agente de escucha del grupo de disponibilidad escucha en 1433).In this connection string example, the client is attempting to connect to the AdventureWorks database via an availability group listener named AGListener on port 1433 (you may also omit the port if the availability group listener is listening on 1433). La cadena de conexión tiene la propiedad ApplicationIntent establecida en ReadOnly, lo que la convierte en una cadena de conexión de intención de lectura.The connection string has the ApplicationIntent property set to ReadOnly, making this a read-intent connection string. Sin este valor, el servidor no habría intentado un enrutamiento de solo lectura de la conexión.Without this setting, the server would not have attempted a read-only routing of the connection.

La base de datos principal del grupo de disponibilidad procesa la solicitud de enrutamiento de solo lectura entrante e intenta localizar una réplica en línea de solo lectura que esté unida a la réplica principal y esté configurada para el enrutamiento de solo lectura.The primary database of the availability group processes the incoming read-only routing request and attempts to locate an online, read-only replica that is joined to the primary replica and is configured for read-only routing. El cliente recibe información de conexión del servidor de réplica principal y se conecta a la réplica de solo lectura identificada.The client receives back connection information from the primary replica server and connects to the identified read-only replica.

Observe que el intento de aplicación se puede enviar de un controlador de cliente a una instancia de nivel inferior de SQL Server.Note that the application intent can be sent from a client driver to a down-level instance of SQL Server. En este caso, el intento de aplicación de solo lectura se omite y la conexión continúa normalmente.In this case, application intent of read-only is ignored and the connection proceeds as normal.

Puede omitir el enrutamiento de solo lectura si no establece la propiedad de conexión de intención de aplicaciones en ReadOnly (cuando no está designada, el valor predeterminado es ReadWrite durante el inicio de sesión) o si se conecta directamente a la instancia de réplica principal de SQL Server en lugar de usar el nombre del agente de escucha de grupo de disponibilidad.You can bypass read-only routing by not setting the application intent connection property to ReadOnly (when not designated, the default is ReadWrite during login) or by connecting directly to the primary replica instance of SQL Server instead of using the availability group listener name. El enrutamiento de solo lectura tampoco se producirá si se conecta directamente a una réplica de solo lectura.Read-only routing will also not occur if you connect directly to a read-only replica.

Tareas relacionadasRelated Tasks

Omitir agentes de escucha del grupo de disponibilidadBypassing Availability Group Listeners

Mientras los agentes de escucha del grupo de disponibilidad habilitan la compatibilidad con la redirección de conmutación por error y el enrutamiento de solo lectura, las conexiones de cliente no requieren utilizarlos.While availability group listeners enable support for failover redirection and read-only routing, client connections are not required to use them. Una conexión de cliente puede hacer referencia directamente a la instancia de SQL Server en lugar de conectarse al agente de escucha del grupo de disponibilidad.A client connection can also directly reference the instance of SQL Server instead of connecting to the availability group listener.

Para la instancia de SQL Server, es irrelevante si una conexión inicia una sesión utilizando el agente de escucha del grupo de disponibilidad o utilizando otro punto de conexión de la instancia.To the instance of SQL Server, it is irrelevant whether a connection logs in using the availability group listener or using another instance endpoint. La instancia de SQL Server comprobará el estado de la base de datos de destino y permitirá o denegará la conectividad basada en la configuración del grupo de disponibilidad y el estado actual de la base de datos de la instancia.The instance of SQL Server will verify the state of the targeted database and either allow or disallow connectivity based on the configuration of the availability group and the current state of the database on the instance. Por ejemplo, si una aplicación cliente se conecta directamente a una instancia de puerto de SQL Server y se conecta a una base de datos de destino hospedada en un grupo de disponibilidad, y la base de datos de destino está en estado principal y en línea, la conectividad se realizará correctamente.For example, if a client application connects directly to an instance of SQL Server port and connects to a target database hosted in an availability group, and the target database is in primary state and online, then connectivity will succeed. Si la base de datos de destino está sin conexión o en estado transitorio, la conectividad a la base de datos producirá un error.If the target database is offline or in a transitional state, connectivity to the database will fail.

Alternativamente, en la migración de creación de reflejo de la base de datos a Grupos de disponibilidad AlwaysOnAlways On availability groups, las aplicaciones pueden especificar la cadena de conexión de creación de reflejo de la base de datos mientras solo exista una réplica secundaria y no permita conexiones de usuario.Alternatively, while migrating from database mirroring to Grupos de disponibilidad AlwaysOnAlways On availability groups, applications can specify the database mirroring connection string as long as only one secondary replica exists and it disallows user connections. Para obtener más información, vea Usar cadenas de conexión de creación de reflejo de la base de datos con grupos de disponibilidad, más adelante en esta sección.For more information, see Using Database-Mirroring Connection Strings with Availability Groups, later in this section.

Usar cadenas de conexión de creación de reflejo de la base de datos con grupos de disponibilidadUsing Database-Mirroring Connection Strings with Availability Groups

Si un grupo de disponibilidad posee solo una réplica secundaria y está configurado con ALLOW_CONNECTIONS = READ_ONLY o con ALLOW_CONNECTIONS = NONE en la réplica secundaria, los clientes pueden conectarse a la réplica de disponibilidad principal a través de una cadena de conexión de creación de reflejo de la base de datos.If an availability group possesses only one secondary replica and is configured with either ALLOW_CONNECTIONS = READ_ONLY or ALLOW_CONNECTIONS = NONE for the secondary replica, clients can connect to the primary replica by using a database mirroring connection string. Este enfoque puede ser útil cuando se migra una aplicación existente de creación de reflejo de la base de datos a un grupo de disponibilidad, siempre que se limite el grupo de disponibilidad a dos réplicas de disponibilidad (una réplica principal y una réplica secundaria).This approach can be useful while migrating an existing application from database mirroring to an availability group, as long as you limit the availability group to two availability replicas (a primary replica and one secondary replica). Si agrega réplicas secundarias adicionales, deberá crear un agente de escucha del grupo de disponibilidad y actualizar sus aplicaciones para que se utilice el nombre DNS del agente de escucha del grupo de disponibilidad.If you add additional secondary replicas, you will need to create an availability group listener for the availability group and update your applications to use the availability group listener DNS name.

Cuando se utilizan cadenas de conexión de creación de reflejo de la base de datos, el cliente puede usar SQL ServerSQL Server Native Client o el proveedor de datos de .NET Framework para SQL ServerSQL Server.When using database mirroring connection strings, the client can use either SQL ServerSQL Server Native Client or .NET Framework Data Provider for SQL ServerSQL Server. La cadena de conexión proporcionada por un cliente debe proporcionar como mínimo el nombre de una instancia del servidor, el nombre del asociado inicial, para identificar la instancia del servidor que hospeda inicialmente la réplica de disponibilidad con la que se desea establecer conexión.The connection string provided by a client must minimally supply the name of one server instance, the initial partner name, to identify the server instance that initially hosts the availability replica to which you intend to connect. Opcionalmente, la cadena de conexión también puede proporcionar el nombre de otra instancia del servidor, nombre del asociado de conmutación por error, para identificar la instancia del servidor que hospeda inicialmente la réplica secundaria como nombre del asociado de conmutación por error.Optionally, the connection string can also supply the name of another server instance, the failover partner name, to identify the server instance that initially hosts the secondary replica as the failover partner name.

Para obtener más información sobre las cadenas de conexión de creación de reflejo de la base de datos, vea Conectar clientes a una sesión de creación de reflejo de la base de datos (SQL Server).For more information about database mirroring connection strings, see Connect Clients to a Database Mirroring Session (SQL Server).

Comportamiento de conexiones de cliente en la conmutación por errorBehavior of Client Connections on Failover

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.When an availability group failover occurs, existing persistent connections to the availability group are terminated and the client must establish a new connection in order to continue working with the same primary database or read-only secondary database. 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.While a failover is occurring on the server side, connectivity to the availability group may fail, forcing the client application to retry connecting until the primary is brought fully back online.

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.If the availability group comes back online during a client application's connection attempt but before the connect timeout period, the client driver may successfully connect during one of its internal retry attempts and no error will be surfaced to the application in this case.

Compatibilidad con clústeres de conmutación por error de varias subredes de grupo de disponibilidadSupporting Availability Group Multi-Subnet Failovers

Si usa bibliotecas cliente que admiten la opción de conexión MultiSubnetFailover en la cadena de conexión, puede optimizar la conmutación por error del grupo de disponibilidad a otra subred si establece MultiSubnetFailover en "True" o "Yes", en función de la sintaxis del proveedor que use.If you are using client libraries that support the MultiSubnetFailover connection option in the connection string, you can optimize availability group failover to a different subnet by setting MultiSubnetFailover to "True" or "Yes", depending on the syntax of the provider you are using.

Nota

Se recomienda esta configuración para las conexiones de una red y de varias subredes a los agentes de escucha del grupo de disponibilidad y a los nombres de instancia de clúster de conmutación por error de SQL Server.We recommend this setting for both single and multi-subnet connections to availability groups listeners and to SQL Server Failover Cluster Instance names. La habilitación de esta opción agrega optimizaciones adicionales, incluso en escenarios de una sola subred.Enabling this option adds additional optimizations, even for single-subnet scenarios.

La opción de conexión MultiSubnetFailover funciona únicamente con el protocolo de red TCP y solo se admite en la conexión a un agente de escucha del grupo de disponibilidad y para cualquier nombre de red virtual que se conecta a SQL Server 2017SQL Server 2017.The MultiSubnetFailover connection option only works with the TCP network protocol and is only supported when connecting to an availability group listener and for any virtual network name connecting to SQL Server 2017SQL Server 2017.

El siguiente es un ejemplo de cadena de conexión del proveedor ADO.NET (System.Data.SqlClient) que habilita la conmutación por error de varias subredes:An example of the ADO.NET provider (System.Data.SqlClient) connection string that enables multi-subnet failover is as follows:

Server=tcp:AGListener,1433;Database=AdventureWorks;IntegratedSecurity=SSPI; MultiSubnetFailover=True  

La opción de conexión MultiSubnetFailover debe establecerse en True aunque el grupo de disponibilidad solo abarque una única subred.The MultiSubnetFailover connection option should be set to True even if the availability group only spans a single subnet. Esto permite preconfigurar nuevos clientes que puedan abarca en el futuro subredes sin necesidad de los cambios en la cadena de conexión de cliente y también optimiza el rendimiento de conmutación por error para conmutaciones por error de las subredes.This allows you to preconfigure new clients to support future spanning of subnets without any need for future client connection string changes and also optimizes failover performance for single subnet failovers. Cuando la opción de conexión MultiSubnetFailover no es necesaria, proporciona la ventaja de una conmutación por error más rápida de la subred.While the MultiSubnetFailover connection option is not required, it does provide the benefit of a faster subnet failover. Esto se debe a que el controlador cliente intentará abrir un socket de TCP para cada dirección IP en paralelo asociada al grupo de disponibilidad.This is because the client driver will attempt to open up a TCP socket for each IP address in parallel associated with the availability group. El controlador cliente esperará que la primera dirección IP responda y, una vez que lo haga, la utilizará para la conexión.The client driver will wait for the first IP to respond with success and once it does, will then use it for the connection.

Agentes de escucha del grupo de disponibilidad y certificados SSLAvailability Group Listeners and SSL Certificates

Al conectarse a un agente de escucha del grupo de disponibilidad, si las instancias participantes de SQL Server utilizan certificados SSL junto con cifrado de sesión, el controlador cliente de conexión deberá admitir el nombre alternativo del asunto del certificado SSL para forzar el cifrado.When connecting to an availability group listener, if the participating instances of SQL Server use SSL certificates in conjunction with session encryption, the connecting client driver will need to support the Subject Alternate Name in the SSL certificate in order to force encryption. La compatibilidad del controlador de SQL Server con el nombre alternativo del asunto del certificado está previsto para ADO.NET (SqlClient), Microsoft JDBC y SQL Native Client (SNAC).SQL Server driver support for certificate Subject Alternative Name is planned for ADO.NET (SqlClient), Microsoft JDBC, and SQL Native Client (SNAC).

Se debe configurar un certificado X.509 para cada nodo de servidor participante en el clúster de conmutación por error con una lista de todos los agentes de escucha del grupo de disponibilidad establecidos en el nombre alternativo del asunto del certificado.An X.509 certificate must be configured for each participating server node in the failover cluster with a list of all availability group listeners set in the Subject Alternate Name of the certificate.

Por ejemplo, si el WSFC tiene tres agentes de escucha del grupo de disponibilidad con los nombres AG1_listener.Adventure-Works.com, AG2_listener.Adventure-Works.comy AG3_listener.Adventure-Works.com, el nombre alternativo del asunto del certificado debe establecerse del modo siguiente:For example, if the WSFC has three availability group listeners with the names AG1_listener.Adventure-Works.com, AG2_listener.Adventure-Works.com, and AG3_listener.Adventure-Works.com, the Subject Alternative Name for the certificate should be set as follows:

CN = ServerFQDN  
SAN = ServerFQDN,AG1_listener.Adventure-Works.com, AG2_listener.Adventure-Works.com, AG3_listener.Adventure-Works.com  

Agentes de escucha del grupo de disponibilidad y nombres principales de servidor (SPN)Availability Group Listeners and Server Principal Names (SPNs)

Un nombre principal del servidor debe ser configurado en Active Directory por un administrador de dominio para cada nombre de agente de escucha del grupo de disponibilidad con el fin de habilitar Kerberos para la conexión de cliente con el agente de escucha del grupo de disponibilidad.A Server Principal Name (SPN) must be configured in Active Directory by a domain administrator for each availability group listener name in order to enable Kerberos for the client connection to the availability group listener. Al registrar el SPN, debe usar la cuenta de servicio de la instancia del servidor que hospeda la réplica de disponibilidad.When registering the SPN, you must use the service account of the server instance that hosts the availability replica . Para que el SPN funcione en todas las réplicas, debe utilizarse la misma cuenta de servicio para todas las instancias del clúster de WSFC que hospeda el grupo de disponibilidad.For the SPN to work across all replicas, the same service account must be used for all instances in the WSFC cluster that hosts the availability group.

Utilice la herramienta de línea de comandos de Windows setspn para configurar el SPN.Use the setspn Windows command line tool to configure the SPN. Por ejemplo, para configurar un SPN para un grupo de disponibilidad denominado AG1listener.Adventure-Works.com hospedado en un conjunto de instancias de SQL Server configuradas para ejecutarse en la cuenta de dominio corp/svclogin2:For example to configure an SPN for an availability group named AG1listener.Adventure-Works.com hosted on a set of instances of SQL Server all configured to run under the domain account corp/svclogin2:

setspn -A MSSQLSvc/AG1listener.Adventure-Works.com:1433 corp/svclogin2  

Para obtener más información acerca del registro manual de un SPN para SQL Server, vea Registrar un nombre de entidad de seguridad de servicio para las conexiones con Kerberos.For more information about manual registration of a SPN for SQL Server, see Register a Service Principal Name for Kerberos Connections.

Tareas relacionadasRelated Tasks

Contenido relacionadoRelated Content

Consulte tambiénSee Also

Información general de los grupos de disponibilidad AlwaysOn (SQL Server) Overview of Always On Availability Groups (SQL Server)
Conectividad de cliente de AlwaysOn (SQL Server) Always On Client Connectivity (SQL Server)
Acerca del acceso de conexión de cliente a réplicas de disponibilidad (SQL Server) About Client Connection Access to Availability Replicas (SQL Server)
Secundarias activas: réplicas secundarias legibles (grupos de disponibilidad Always On) Active Secondaries: Readable Secondary Replicas (Always On Availability Groups)
Conectar clientes a una sesión de creación de reflejo de la base de datos (SQL Server)Connect Clients to a Database Mirroring Session (SQL Server)