Grupos de disponibilidad AlwaysOn en LinuxAlways On Availability Groups on Linux

SE APLICA A: síSQL Server (solo en Linux) noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server (Linux only) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

En este artículo se describen las características de los grupos de disponibilidad Always On (AG) en instalaciones de SQL ServerSQL Server basadas en Linux.This article describes the characteristics of Always On Availability Groups (AGs) under Linux-based SQL ServerSQL Server installations. También se tratan las diferencias entre los AG basados en el clúster de conmutación por error de Windows Server (WSFC) y Linux.It also covers differences between Linux- and Windows Server failover cluster (WSFC)-based AGs. Consulte la documentación basada en Windows para obtener información básica de los AG, ya que funcionan de la misma forma en Windows y Linux, excepto para el WSFC.See the Windows-based documentation for the basics of AGs, as they work the same on Windows and Linux except for the WSFC.

Desde un punto de vista de alto nivel, los SQL ServerSQL Server grupos de disponibilidad bajo en Linux son los mismos que los de las implementaciones basadas en WSFC.From a high-level standpoint, availability groups under SQL ServerSQL Server on Linux are the same as they are on WSFC-based implementations. Esto significa que todas las limitaciones y características son las mismas, con algunas excepciones.That means that all the limitations and features are the same, with some exceptions. Las principales diferencias estriban en lo siguiente:The main differences include:

  • El Coordinador de transacciones distribuidas de Microsoft (DTC) es compatible con Linux a partir de SQL Server 2017 CU16.Microsoft Distributed Transaction Coordinator (DTC) is supported under Linux starting with SQL Server 2017 CU16. Pero el DTC todavía no es compatible con los grupos de disponibilidad en Linux.However, DTC is not yet supported on Availability Groups on Linux. Si las aplicaciones requieren el uso de transacciones distribuidas y necesitan un AG, implemente SQL ServerSQL Server en Windows.If your applications require the use of distributed transactions and need an AG, deploy SQL ServerSQL Server on Windows.
  • Las implementaciones basadas en Linux que requieren alta disponibilidad usan Pacemaker para la agrupación en clústeres en lugar de un WSFC.Linux-based deployments that require high availability use Pacemaker for clustering instead of a WSFC.
  • A diferencia de la mayoría de las configuraciones de AG en Windows, excepto en el caso del escenario de clúster de grupo de trabajo, Pacemaker nunca necesita Active Directory Domain Services (AD DS).Unlike most configurations for AGs on Windows except for the Workgroup Cluster scenario, Pacemaker never requires Active Directory Domain Services (AD DS).
  • El modo en que se produce un error en un AG de un nodo a otro es diferente en Linux y Windows.How to fail an AG from one node to another is different between Linux and Windows.
  • Ciertas opciones de configuración, como required_synchronized_secondaries_to_commit, solo se pueden cambiar a través de Pacemaker en Linux, mientras que una instalación basada en WSFC utiliza Transact-SQL.Certain settings such as required_synchronized_secondaries_to_commit can only be changed via Pacemaker on Linux, whereas a WSFC-based install uses Transact-SQL.

Número de réplicas y nodos de clústerNumber of replicas and cluster nodes

Un AG en SQL Server StandardSQL Server Standard puede tener dos réplicas totales: una principal y otra secundaria que solo se puede usar con fines de disponibilidad.An AG in SQL Server StandardSQL Server Standard can have two total replicas: one primary, and one secondary that can only be used for availability purposes. No se puede usar para nada más, como consultas legibles.It cannot be used for anything else, such as readable queries. Un AG en SQL Server EnterpriseSQL Server Enterprise puede tener hasta nueve réplicas en total: una principal y hasta ocho secundarias, de las cuales tres (incluida la principal) pueden ser sincrónicas.An AG in SQL Server EnterpriseSQL Server Enterprise can have up to nine total replicas: one primary and up to eight secondaries, of which up to three (including the primary) can be synchronous. Si usa un clúster subyacente, puede haber un máximo de 16 nodos en total cuando Corosync está implicado.If using an underlying cluster, there can be a maximum of 16 nodes total when Corosync is involved. Un grupo de disponibilidad puede abarcar como máximo 9 de los 16 nodos con SQL Server EnterpriseSQL Server Enterprise y dos con SQL Server StandardSQL Server Standard.An availability group can span at most nine of the 16 nodes with SQL Server EnterpriseSQL Server Enterprise, and two with SQL Server StandardSQL Server Standard.

Una configuración de dos réplicas que requiere la capacidad de conmutar por error automáticamente a otra réplica requiere el uso de una réplica de solo configuración, tal como se describe en Réplica de solo configuración y cuórum.A two-replica configuration that requires the ability to automatically fail over to another replica requires the use of a configuration-only replica, as described in Configuration-only replica and quorum. Las réplicas de solo configuración se introdujeron en la actualización acumulativa 1 (CU1) de SQL Server 2017 (14.x)SQL Server 2017 (14.x), por lo que debe ser la versión mínima implementada para esta configuración.Configuration-only replicas were introduced in SQL Server 2017 (14.x)SQL Server 2017 (14.x) Cumulative Update 1 (CU1), so that should be the minimum version deployed for this configuration.

Si se usa Pacemaker, debe configurarse correctamente para que siga funcionando.If Pacemaker is used, it must be properly configured so it remains up and running. Esto significa que cuórum y STONITH se deben implementar correctamente desde una perspectiva de Pacemaker, además de los requisitos de SQL ServerSQL Server como una réplica de solo configuración.That means that quorum and STONITH must be implemented properly from a Pacemaker perspective, in addition to any SQL ServerSQL Server requirements such as a configuration-only replica.

Las réplicas secundarias legibles solo se admiten con SQL Server EnterpriseSQL Server Enterprise.Readable secondary replicas are only supported with SQL Server EnterpriseSQL Server Enterprise.

Tipo de clúster y modo de conmutación por errorCluster type and failover mode

Una novedad en SQL Server 2017 (14.x)SQL Server 2017 (14.x) es la introducción de un tipo de clúster para AG.New to SQL Server 2017 (14.x)SQL Server 2017 (14.x) is the introduction of a cluster type for AGs. Para Linux, hay dos valores válidos: External y None.For Linux, there are two valid values: External and None. Un tipo de clúster External significa que Pacemaker se usará debajo del AG.A cluster type of External means that Pacemaker will be used underneath the AG. El uso del tipo External para el clúster requiere que el modo de conmutación por error se establezca también en External (esto también es nuevo en SQL Server 2017 (14.x)SQL Server 2017 (14.x)).Using External for cluster type requires that the failover mode be set to External as well (also new in SQL Server 2017 (14.x)SQL Server 2017 (14.x)). Se admite la conmutación automática por error, pero a diferencia de WSFC, el modo de conmutación por error se establece en External, no en automático, cuando se usa Pacemaker.Automatic failover is supported, but unlike a WSFC, failover mode is set to External, not automatic, when Pacemaker is used. A diferencia de un WSFC, la parte de Pacemaker del AG se crea después de configurar el AG.Unlike a WSFC, the Pacemaker portion of the AG is created after the AG is configured.

Un tipo de clúster None significa que no hay ningún requisito de Pacemaker y que el AF no lo usará.A cluster type of None means that there is no requirement for, nor will the AG use, Pacemaker. Incluso en los servidores que tienen configurado Pacemaker, si un AG está configurado con un tipo de clúster None, Pacemaker no verá ni administrará ese AG.Even on servers that have Pacemaker configured, if an AG is configured with a cluster type of None, Pacemaker will not see or manage that AG. Un tipo de clúster de None solo admite la conmutación por error manual de una réplica principal a una secundaria.A cluster type of None only supports manual failover from a primary to a secondary replica. Un AG creado con None se dirige principalmente al escenario de escalado de lectura, así como a las actualizaciones.An AG created with None is primarily targeted for the read-scale out scenario as well as upgrades. Aunque puede funcionar en escenarios como la recuperación ante desastres o la disponibilidad local cuando no se necesita ninguna conmutación por error automática, no resulta recomendable.While it can work in scenarios like disaster recovery or local availability where no automatic failover is necessary, it is not recommended. La historia del cliente de escucha también es más compleja sin Pacemaker.The listener story is also more complex without Pacemaker.

El tipo de clúster se almacena en la vista de administración dinámica (DMV) de SQL ServerSQL Server sys.availability_groups, en las columnas cluster_type y cluster_type_desc.Cluster type is stored in the SQL ServerSQL Server dynamic management view (DMV) sys.availability_groups, in the columns cluster_type and cluster_type_desc.

required_synchronized_secondaries_to_commitrequired_synchronized_secondaries_to_commit

Una novedad en SQL Server 2017 (14.x)SQL Server 2017 (14.x) es un valor que usan los AG denominado required_synchronized_secondaries_to_commit.New to SQL Server 2017 (14.x)SQL Server 2017 (14.x) is a setting that is used by AGs called required_synchronized_secondaries_to_commit. Esto indica al AG el número de réplicas secundarias que deben estar en sincronía con la principal.This tells the AG the number of secondary replicas that must be in lockstep with the primary. Esto permite cosas como la conmutación automática por error (solo cuando se integra con Pacemaker con un tipo de clúster External) y controla el comportamiento de aspectos como la disponibilidad de la principal si el número adecuado de réplicas secundarias está en línea o sin conexión.This enables things like automatic failover (only when integrated with Pacemaker with a cluster type of External), and controls the behavior of things like the availability of the primary if the right number of secondary replicas is either online or offline. Para comprender mejor el funcionamiento, vea Alta disponibilidad y protección de datos para las configuraciones de grupo de disponibilidad.To understand more about how this works, see High availability and data protection for availability group configurations. El valor required_synchronized_secondaries_to_commit se establece de forma predeterminada y se mantiene en Pacemaker/ SQL ServerSQL Server.The required_synchronized_secondaries_to_commit value is set by default and maintained by Pacemaker/ SQL ServerSQL Server. Puede invalidar este valor manualmente.You can manually override this value.

La combinación de required_synchronized_secondaries_to_commit y el nuevo número de secuencia (que se almacena en sys.availability_groups) informa a Pacemaker y SQL ServerSQL Server que, por ejemplo, puede producirse la conmutación automática por error.The combination of required_synchronized_secondaries_to_commit and the new sequence number (which is stored in sys.availability_groups) informs Pacemaker and SQL ServerSQL Server that, for example, automatic failover can happen. En ese caso, una réplica secundaria tendría el mismo número de secuencia que la principal, lo que significa que está actualizada con toda la información de configuración más reciente.In that case, a secondary replica would have the same sequence number as the primary, meaning it is up to date with all the latest configuration information.

Hay tres valores que se pueden establecer para required_synchronized_secondaries_to_commit: 0, 1 o 2.There are three values that can be set for required_synchronized_secondaries_to_commit: 0, 1, or 2. Controlan el comportamiento de lo que sucede cuando una réplica deja de estar disponible.They control the behavior of what happens when a replica becomes unavailable. Los números corresponden al número de réplicas secundarias que se deben sincronizar con la principal.The numbers correspond to the number of secondary replicas that must be synchronized with the primary. El comportamiento es el siguiente en Linux:The behavior is as follows under Linux:

  • 0: no es necesario que las réplicas secundarias estén en estado sincronizado con la principal.0 - Secondary replicas do not need to be in synchronized state with the primary. Sin embargo, si las réplicas secundarias no están sincronizadas, no habrá ninguna conmutación automática por error.However if the secondaries are not synchronized, there will be no automatic failover.
  • 1: una réplica secundaria debe estar en un estado sincronizado con la principal; la conmutación automática por error es posible.1 - One secondary replica must be in a synchronized state with the primary; automatic failover is possible. La base de datos principal no está disponible hasta que haya una réplica sincrónica secundaria disponible.The primary database is unavailable until a secondary synchronous replica is available.
  • 2: ambas réplicas secundarias en una configuración de AG de tres o más nodos deben estar sincronizadas con la principal; la conmutación automática por error es posible.2 - Both secondary replicas in a three or more node AG configuration must be synchronized with the primary; automatic failover is possible.

required_synchronized_secondaries_to_commit controla no solo el comportamiento de las conmutaciones por error con réplicas sincrónicas, sino la pérdida de datos.required_synchronized_secondaries_to_commit controls not only the behavior of failovers with synchronous replicas, but data loss. Con un valor de 1 o 2, siempre es necesario sincronizar una réplica secundaria, por lo que siempre habrá redundancia de datos.With a value of 1 or 2, a secondary replica is always required to be synchronized, so there will always be data redundancy. Esto significa que no se produce ninguna pérdida de datos.That means no data loss.

Para cambiar el valor de required_synchronized_secondaries_to_commit, use la sintaxis siguiente:To change the value of required_synchronized_secondaries_to_commit, use the following syntax:

Nota

Al cambiar el valor, se reinicia el recurso, lo que significa una breve interrupción.Changing the value causes the resource to restart, meaning a brief outage. La única manera de evitar esto es establecer el recurso para que el clúster no lo administre temporalmente.The only way to avoid this is to set the resource to not be managed by the cluster temporarily.

Red Hat Enterprise Linux (RHEL) y UbuntuRed Hat Enterprise Linux (RHEL) and Ubuntu

sudo pcs resource update <AGResourceName> required_synchronized_secondaries_to_commit=<Value>

SUSE Linux Enterprise Server (SLES)SUSE Linux Enterprise Server (SLES)

sudo crm resource param ms-<AGResourceName> set required_synchronized_secondaries_to_commit <value>

donde AGResourceName es el nombre del recurso configurado para el AG y el Valor es 0, 1 o 2.where AGResourceName is the name of the resource configured for the AG, and Value is 0, 1, or 2. Para volver a establecerlo en el valor predeterminado de Pacemaker que administra el parámetro, ejecute la misma instrucción sin ningún valor.To set it back to the default of Pacemaker managing the parameter, execute the same statement with no value.

La conmutación automática por error de un AG es posible cuando se cumplen las condiciones siguientes:Automatic failover of an AG is possible when the following conditions are met:

  • Las réplicas principal y secundaria se establecen en movimiento de datos sincrónicos.The primary and the secondary replica are set to synchronous data movement.
  • La secundaria tiene un estado (no sincronizando), lo que significa que las dos están en el mismo punto de datos.The secondary has a state of synchronized (not synchronizing), meaning the two are at the same data point.
  • El tipo de clúster se establece en External.The cluster type is set to External. No es posible la conmutación automática por error con un tipo de clúster de None.Automatic failover is not possible with a cluster type of None.
  • La sequence_number de la réplica secundaria que se va a convertir en la principal tiene el número de secuencia más alto; en otras palabras, la sequence_number de la réplica secundaria coincide con la de la réplica principal original.The sequence_number of the secondary replica to become the primary has the highest sequence number - in other words, the secondary replica's sequence_number matches the one from the original primary replica.

Si se cumplen estas condiciones y se produce un error en el servidor que hospeda la réplica principal, el AG cambiará la propiedad a una réplica sincrónica.If these conditions are met and the server hosting the primary replica fails, the AG will change ownership to a synchronous replica. El comportamiento para réplicas sincrónicas (de las cuales puede haber tres en total: una principal y dos réplicas secundarias) puede controlarse más mediante required_synchronized_secondaries_to_commit.The behavior for synchronous replicas (of which there can be three total: one primary and two secondary replicas) can further be controlled by required_synchronized_secondaries_to_commit. Esto funciona con AG en Windows y Linux, pero se configura de forma completamente diferente.This works with AGs on both Windows and Linux, but is configured completely differently. En Linux, el valor se configura automáticamente mediante el clúster en el propio recurso de AG.On Linux, the value is configured automatically by the cluster on the AG resource itself.

Cuórum y réplica de solo configuraciónConfiguration-only replica and quorum

Otra novedad en SQL Server 2017 (14.x)SQL Server 2017 (14.x) a partir de la CU1 es una réplica de solo configuración.Also new in SQL Server 2017 (14.x)SQL Server 2017 (14.x) as of CU1 is a configuration-only replica. Dado que Pacemaker es diferente de un WSFC, especialmente cuando se trata de un cuórum y requiere STONITH, tener solo una configuración de dos nodos no funcionará cuando se trata de un AG.Because Pacemaker is different than a WSFC, especially when it comes to quorum and requiring STONITH, having just a two-node configuration will not work when it comes to an AG. En el caso de una FCI, los mecanismos de cuórum proporcionados por Pacemaker pueden ser correctos, ya que todo el arbitraje de la conmutación por error de FCI se produce en el nivel de clúster.For an FCI, the quorum mechanisms provided by Pacemaker can be fine, because all FCI failover arbitration happens at the cluster layer. En el caso de un AG, el arbitraje en Linux se produce en SQL ServerSQL Server, donde se almacenan todos los metadatos.For an AG, arbitration under Linux happens in SQL ServerSQL Server, where all the metadata is stored. Aquí es donde entra en juego la réplica de solo configuración.This is where the configuration-only replica comes into play.

Sin nada más, sería necesario un tercer nodo y al menos una réplica sincronizada.Without anything else, a third node and at least one synchronized replica would be required. La réplica de solo configuración almacena la configuración de AG en la base de datos maestra, igual que las demás réplicas en la configuración de AG.The configuration-only replica stores the AG configuration in the master database, same as the other replicas in the AG configuration. La réplica de solo configuración no tiene las bases de datos de usuario que participan en el AG.The configuration-only replica does not have the user databases participating in the AG. Los datos de configuración se envían sincrónicamente desde el servidor principal.The configuration data is sent synchronously from the primary. Estos datos de configuración se usan después durante las conmutaciones por error, ya sean automáticas o manuales.This configuration data is then used during failovers, whether they are automatic or manual.

Para que un AG mantenga el cuórum y habilite las conmutaciones automáticas por error con un tipo de clúster External, debe:For an AG to maintain quorum and enable automatic failovers with a cluster type of External, it either must:

  • Tener tres réplicas sincrónicas (solo SQL Server EnterpriseSQL Server Enterprise); oHave three synchronous replicas (SQL Server EnterpriseSQL Server Enterprise only); or
  • Tener dos réplicas (principal y secundaria), así como una réplica de solo configuración.Have two replicas (primary and secondary) as well as a configuration only replica.

Pueden producirse conmutaciones por error manuales si se usan tipos de clúster External o None para las configuraciones de AG.Manual failovers can happen whether using External or None cluster types for AG configurations. Aunque una réplica de solo configuración se puede configurar con un AG que tiene un tipo de clúster de None, no resulta recomendable, ya que complica la implementación.While a configuration-only replica can be configured with an AG that has a cluster type of None, it is not recommended, since it complicates the deployment. Para esas configuraciones, modifique required_synchronized_secondaries_to_commit manualmente para que tenga un valor de al menos 1, de modo que haya al menos una réplica sincronizada.For those configurations, manually modify required_synchronized_secondaries_to_commit to have a value of at least 1, so that there is at least one synchronized replica.

Una réplica de solo configuración se puede hospedar en cualquier edición de SQL ServerSQL Server, incluido SQL Server ExpressSQL Server Express.A configuration-only replica can be hosted on any edition of SQL ServerSQL Server, including SQL Server ExpressSQL Server Express. Esto minimizará los costos de licencia y garantizará que funcione con AG en SQL Server StandardSQL Server Standard.This will minimize licensing costs and ensures it works with AGs in SQL Server StandardSQL Server Standard. Esto significa que el tercer servidor necesario solo debe cumplir la especificación mínima de SQL ServerSQL Server, ya que no recibe el tráfico de transacciones de usuario para el AG.This means that the third required server just needs to meet the minimum specification for SQL ServerSQL Server, since it is not receiving user transaction traffic for the AG.

Cuando se usa una réplica de solo configuración, tiene el siguiente comportamiento:When a configuration-only replica is used, it has the following behavior:

  • De forma predeterminada, required_synchronized_secondaries_to_commit se estable en 0.By default, required_synchronized_secondaries_to_commit is set to 0. Se puede modificar manualmente a 1 si se desea.This can be manually modified to 1 if desired.
  • Si se produce un error en la principal y required_synchronized_secondaries_to_commit es 0, la réplica secundaria se convertirá en la nueva principal y estará disponible tanto para lectura como para escritura.If the primary fails and required_synchronized_secondaries_to_commit is 0, the secondary replica will become the new primary and be available for both reading and writing. Si el valor es 1, se producirá una conmutación automática por error, pero no se aceptarán nuevas transacciones hasta que la otra réplica esté en línea.If the value is 1, automatic failover will occur, but will not accept new transactions until the other replica is online.
  • Si se produce un error en una réplica secundaria y required_synchronized_secondaries_to_commit es 0, la réplica principal sigue aceptando transacciones, pero si se produce un error en la principal en este momento, no hay protección para los datos y la conmutación por error (manual o automática) no es posible, ya que no hay disponible una réplica secundaria.If a secondary replica fails and required_synchronized_secondaries_to_commit is 0, the primary replica still accepts transactions, but if the primary fails at this point, there is no protection for the data nor failover possible (manual or automatic), since a secondary replica is not available.
  • Si se produce un error en las réplicas de solo configuración, el AG funcionará con normalidad, pero no es posible la conmutación automática por error.If the configuration-only replicas fails, the AG will function normally, but no automatic failover is possible.
  • Si se produce un error en una réplica secundaria sincrónica y en la réplica de solo configuración, la principal no puede aceptar transacciones y no tendrá donde producir un error.If both a synchronous secondary replica and the configuration-only replica fail, the primary cannot accept transactions, and there is nowhere for the primary to fail to.

En la CU1 hay un error conocido en el registro del archivo corosync.log que se genera mediante mssql-server-ha.In CU1 there is a known bug in the logging in the corosync.log file that is generated via mssql-server-ha. Si una réplica secundaria no puede convertirse en la principal debido al número de réplicas necesarias disponibles, el mensaje actual indica: "Se esperaba recibir 1 número de secuencia, pero solo se recibieron 2.If a secondary replica is not able to become the primary due to the number of required replicas available, the current message says "Expected to receive 1 sequence numbers but only received 2. No hay suficientes réplicas en línea para promover la réplica local de forma segura".Not enough replicas are online to safely promote the local replica." Los números deben invertirse y deben decir: "Se esperaba recibir 2 números de secuencia, pero solo se recibió 1.The numbers should be reversed, and it should say "Expected to receive 2 sequence numbers but only received 1. No hay suficientes réplicas en línea para promover la réplica local de forma segura".Not enough replicas are online to safely promote the local replica."

Varios grupos de disponibilidadMultiple availability groups

Se puede crear más de un AG por clúster de Pacemaker o conjunto de servidores.More than one AG can be created per Pacemaker cluster or set of servers. La única limitación son los recursos del sistema.The only limitation is system resources. El maestro muestra la propiedad de AG.AG ownership is shown by the master. Distintos nodos pueden ser propietarios de diferentes AG; no es necesario que todos se ejecuten en el mismo nodo.Different AGs can be owned by different nodes; they do not all need to be running on the same node.

Ubicación de unidad y carpeta para las bases de datosDrive and folder location for databases

Como con los AG basados en Windows, la unidad y la estructura de carpetas de las bases de datos de usuario que participan en un AG deben ser idénticas.As on Windows-based AGs, the drive and folder structure for the user databases participating in an AG should be identical. Por ejemplo, si las bases de datos de usuario se encuentran en /var/opt/mssql/userdata en el servidor A, esa misma carpeta debe existir en el servidor B. La única excepción a esto se indica en la sección Interoperabilidad con las réplicas y los grupos de disponibilidad basados en Windows.For example, if the user databases are in /var/opt/mssql/userdata on Server A, that same folder should exist on Server B. The only exception to this is noted in the section Interoperability with Windows-based availability groups and replicas.

El cliente de escucha en LinuxThe listener under Linux

El agente de escucha es una funcionalidad opcional para un AG.The listener is optional functionality for an AG. Proporciona un único punto de entrada para todas las conexiones (de lectura/escritura a la réplica principal y/o de solo lectura a las réplicas secundarias) para que las aplicaciones y los usuarios finales no tengan que saber qué servidor hospeda los datos.It provides a single point of entry for all connections (read/write to the primary replica and/or read-only to secondary replicas) so that applications and end users do not need to know which server is hosting the data. En un WSFC, esta es la combinación de un recurso de nombre de red y un recurso IP, que se registra en AD DS (si es necesario), así como en DNS.In a WSFC, this is the combination of a network name resource and an IP resource, which is then registered in AD DS (if needed) as well as DNS. En combinación con el propio recurso de AG, proporciona esa abstracción.In combination with the AG resource itself, it provides that abstraction. Para obtener más información sobre un cliente de escucha, vea Clientes de escucha de grupo de disponibilidad, conectividad de cliente y conmutación por error de una aplicación.For more information on a listener, see Listeners, Client Connectivity, and Application Failover.

El cliente de escucha en Linux se configura de forma diferente, pero su funcionalidad es la misma.The listener under Linux is configured differently, but its functionality is the same. No hay ningún concepto de recurso de nombre de red en Pacemaker, ni tampoco se crea un objeto en AD DS; solo se crea un recurso de dirección IP en Pacemaker que se puede ejecutar en cualquiera de los nodos.There is no concept of a network name resource in Pacemaker, nor is an object created in AD DS; there is just an IP address resource created in Pacemaker that can run on any of the nodes. Es necesario crear una entrada asociada al recurso IP para el cliente de escucha en DNS con un "nombre descriptivo".An entry associated with the IP resource for the listener in DNS with a "friendly name" needs to be created. El recurso IP para el cliente de escucha solo estará activo en el servidor que hospeda la réplica principal para ese grupo de disponibilidad.The IP resource for the listener will only be active on the server hosting the primary replica for that availability group.

Si se usa Pacemaker y se crea un recurso de dirección IP que está asociado al cliente de escucha, habrá una breve interrupción a medida que la dirección IP se detenga en el servidor y se inicie en el otro, ya sea automática o manual.If Pacemaker is used and an IP address resource is created that is associated with the listener, there will be a brief outage as the IP address stops on the one server and starts on the other, whether it is automatic or manual failover. Aunque esto proporciona una abstracción a través de la combinación de un nombre único y una dirección IP, no enmascara la interrupción.While this provides abstraction through the combination of a single name and IP address, it does not mask the outage. Una aplicación debe ser capaz de controlar la desconexión al tener algún tipo de funcionalidad para detectarlo y volver a conectarse.An application must be able to handle the disconnect by having some sort of functionality to detect this and reconnect.

Sin embargo, la combinación del nombre DNS y la dirección IP sigue siendo insuficiente para proporcionar toda la funcionalidad que proporciona un cliente de escucha en un WSFC, como el enrutamiento de solo lectura para las réplicas secundarias.However, the combination of the DNS name and IP address is still not enough to provide all the functionality that a listener on a WSFC provides, such as read-only routing for secondary replicas. Al configurar un AG, todavía es necesario configurar un "cliente de escucha" en SQL ServerSQL Server.When configuring an AG, a "listener" still needs to be configured in SQL ServerSQL Server. Esto puede verse en el asistente, así como en la sintaxis de Transact-SQL.This can be seen in the wizard as well as the Transact-SQL syntax. Se puede configurar de dos maneras para que funcione igual que en Windows:There are two ways that this can be configured to function the same as on Windows:

  • En el caso de un AG con un tipo de clúster External, la dirección IP asociada al "cliente de escucha" que se crea en SQL ServerSQL Server debe ser la dirección IP del recurso creado en Pacemaker.For an AG with a cluster type of External, the IP address associated with the "listener" created in SQL ServerSQL Server should be the IP address of the resource created in Pacemaker.
  • Para un AG creado con un tipo de clúster de None, use la dirección IP asociada a la réplica principal.For an AG created with a cluster type of None, use the IP address associated with the primary replica.

La instancia asociada con la dirección IP proporcionada se convierte entonces en el coordinador de cosas como las solicitudes de enrutamiento de solo lectura de las aplicaciones.The instance associated with the provided IP address then becomes the coordinator for things like the read-only routing requests from applications.

Interoperabilidad con réplicas y grupos de disponibilidad basados en WindowsInteroperability with Windows-based availability groups and replicas

Un AG que tiene un tipo de clúster External o uno que es WSFC no puede tener sus réplicas entre plataformas.An AG that has a cluster type of External or one that is WSFC cannot have its replicas cross platforms. Esto es cierto si el AG es SQL Server StandardSQL Server Standard o SQL Server EnterpriseSQL Server Enterprise.This is true whether the AG is SQL Server StandardSQL Server Standard or SQL Server EnterpriseSQL Server Enterprise. Esto significa que, en una configuración de AG tradicional con un clúster subyacente, una réplica no puede estar en un WSFC y la otra en Linux con Pacemaker.That means in a traditional AG configuration with an underlying cluster, one replica cannot be on a WSFC and the other on Linux with Pacemaker.

Un AG con un tipo de clúster de NONE puede tener sus réplicas entre límites del sistema operativo, por lo que podría haber réplicas basadas en Linux y Windows en el mismo AG.An AG with a cluster type of NONE can have its replicas cross OS boundaries, so there could be both Linux- and Windows-based replicas in the same AG. Aquí se muestra un ejemplo en el que la réplica principal se basa en Windows, mientras que la secundaria se encuentra en una de las distribuciones de Linux.An example is shown here where the primary replica is Windows-based, while the secondary is on one of the Linux distributions.

Ninguno híbrido

Un AG distribuido también puede cruzar los límites del sistema operativo.A distributed AG can also cross OS boundaries. Los AG subyacentes están limitados por las reglas de cómo están configuradas, como una configurada con la configuración externa solo para Linux, pero el AG al que está unida podría configurarse con un WSFC.The underlying AGs are bound by the rules for how they are configured, such as one configured with External being Linux-only, but the AG that it is joined to could be configured using a WSFC. Considere el ejemplo siguiente:Consider the following example:

AG de distribución híbrida

Pasos siguientesNext steps

Configurar el grupo de disponibilidad para SQL Server en LinuxConfigure availability group for SQL Server on Linux

Configurar el grupo de disponibilidad de escalado de lectura para SQL Server en LinuxConfigure read-scale availability group for SQL Server on Linux

Agregar un recurso de clúster de grupo de disponibilidad en RHELAdd availability group Cluster Resource on RHEL

Agregar un recurso de clúster de grupo de disponibilidad en SLESAdd availability group Cluster Resource on SLES

Agregar un recurso de clúster de grupo de disponibilidad en UbuntuAdd availability group Cluster Resource on Ubuntu

Configurar un grupo de disponibilidad multiplataformaConfigure a cross-platform availability group