Tipos de conexiones de cliente a réplicas dentro de un grupo de disponibilidad Always On

Se aplica a:SQL Server

En un grupo de disponibilidad AlwaysOn, puede configurar una o varias réplicas de disponibilidad para permitir conexiones de solo lectura cuando se ejecutan en el rol secundario (es decir, cuando se ejecutan como réplica secundaria). También puede configurar cada réplica de disponibilidad para permitir o excluir conexiones de solo lectura cuando se ejecutan bajo el rol principal (es decir, cuando se ejecutan como réplica principal).

Para facilitar el acceso del cliente a las bases de datos primarias o secundarias de un grupo de disponibilidad determinado, debe definir un agente de escucha del grupo de disponibilidad. De forma predeterminada, el detector de escucha del grupo de disponibilidad dirige las conexiones entrantes a la réplica principal. Sin embargo, puede configurar un grupo de disponibilidad para admitir el enrutamiento de solo lectura, lo que permite que su listener de grupo de disponibilidad redirija las solicitudes de conexión de las aplicaciones con intención de solo lectura a una réplica secundaria legible. Para obtener más información, vea Configurar el enrutamiento de solo lectura para un grupo de disponibilidad (SQL Server).

Durante una conmutación por error, una réplica secundaria realiza la transición al rol principal y la réplica principal anterior realiza la transición al rol secundario. Durante el proceso de conmutación por error, se terminan todas las conexiones de cliente a la réplica principal y a las réplicas secundarias. Después de la conmutación por error, cuando un cliente se reconecta al listener del grupo de disponibilidad, el listener reconecta al cliente a la nueva réplica principal, salvo en el caso de una solicitud de conexión con intención de lectura. Si se configura el enrutamiento de solo lectura en el cliente, en las instancias de servidor que hospedan la nueva réplica principal y en al menos una réplica secundaria legible, las solicitudes de conexión de intención de lectura se vuelven a enrutar a una réplica secundaria que admita el tipo de acceso de conexión que el cliente necesita. Para garantizar una experiencia del cliente fluida después de una conmutación por error, es importante configurar el acceso de conexión para los roles principal y secundario de cada réplica de disponibilidad.

Nota:

Para obtener información sobre el agente de escucha del grupo de disponibilidad, que controla las solicitudes de conexión de los clientes, consulte Agentes de escucha del grupo de disponibilidad, conectividad del cliente y conmutación por error de aplicaciones (SQL Server).

Tipos de acceso de conexión admitidos por el rol secundario

El rol secundario admite tres alternativas para las conexiones de cliente, del siguiente modo:

Sin conexiones
No se permiten conexiones de usuario. Las bases de datos secundarias no están disponibles para acceso de lectura. este es el comportamiento predeterminado del rol secundario.

Solo conexiones con intención de lectura
Las bases de datos secundarias solo están disponibles para la conexión en que la propiedad de conexión Application Intent está establecida en ReadOnly (conexiones de intención de lectura).

Para obtener información acerca de esta conexión, vea Compatibilidad de SQL Server Native Client para la alta disponibilidad con recuperación de desastres.

Permitir cualquier conexión de solo lectura
Todas las bases de datos secundarias están disponibles para conexiones de solo lectura. Esta opción permite que los clientes con versiones anteriores se conecten.

Para obtener más información, vea Configuración del acceso de solo lectura en una réplica de disponibilidad (SQL Server).

Tipos de acceso a la conexión compatibles con el rol principal

El rol principal admite dos alternativas para las conexiones de cliente, del siguiente modo:

Todas las conexiones están permitidas
Se permiten conexiones de lectura/escritura y de solo lectura a las bases de datos principales. Este es el comportamiento predeterminado para el rol principal.

Permitir solo conexiones de lectura/escritura
Cuando la propiedad de conexión Application Intent se establece en ReadWrite o no se establece, se permite la conexión. No se permiten conexiones en que la palabra clave de cadena de conexión Application Intent se establece en ReadOnly . Permitir solo conexiones de lectura y escritura puede ayudar a evitar que sus clientes conecten por error una carga de trabajo de solo lectura a la réplica principal.

Para obtener información acerca de esta propiedad de conexión, consulte Using Connection String Keywords with SQL Server Native Client.

Para obtener más información, vea Configuración del acceso de solo lectura en una réplica de disponibilidad (SQL Server).

Cómo la configuración de acceso de conexión afecta a la conectividad de cliente

La configuración de acceso a la conexión de una réplica determina si un intento de conexión falla o tiene éxito. La siguiente tabla resume si un intento de conexión tiene éxito o falla para cada configuración de acceso a la conexión.

Función de réplica Acceso de conexión admitido en la réplica Intención de conexión Resultado del intento de conexión
Secundario Todo Se ha especificado una intención de lectura, una intención de lectura/escritura o ninguna intención de conexión Éxito
Secundario Ninguno (este es el comportamiento secundario predeterminado). Se ha especificado una intención de lectura, una intención de lectura/escritura o ninguna intención de conexión Fallo
Secundario Solo intento de lectura Intención de lectura Éxito
Secundario Solo intento de lectura Se ha especificado una intención de lectura/escritura o ninguna intención de conexión Fallo
Principal Todos (este es el comportamiento principal predeterminado). Solo lectura, lectura y escritura, o sin intención de conexión especificada Éxito
Principal Lectura-escritura Solo intento de lectura Fallo
Primario Lectura-escritura Se ha especificado una intención de lectura/escritura o ninguna intención de conexión Éxito

Para obtener información sobre cómo configurar un grupo de disponibilidad para aceptar conexiones de cliente a sus réplicas, vea Agentes de escucha de grupo de disponibilidad, conectividad de cliente y conmutación por error de una aplicación (SQL Server).

Ejemplo de configuración de acceso a la conexión

Dependiendo de cómo estén configuradas las distintas réplicas de disponibilidad para el acceso de conexión, la compatibilidad con las conexiones de cliente puede cambiar después de que se produzca la conmutación por error de un grupo de disponibilidad. Por ejemplo, considere un grupo de disponibilidad para el que se realiza funcionalidad de informes en las réplicas secundarias de confirmación asincrónica remota. En todas las aplicaciones de solo lectura para las bases de datos de este grupo de disponibilidad se establece la propiedad de conexión Application Intent en ReadOnly, de modo que todas las conexiones de solo lectura son de intención de lectura.

Este grupo de disponibilidad de ejemplo posee dos réplicas de confirmación sincrónica en el centro de cálculo principal y dos réplicas de confirmación asincrónica en un sitio satélite. En el rol principal, todas las réplicas están configuradas con acceso de lectura y escritura, lo que impide las conexiones con intención de lectura a la réplica principal en cualquier caso. El rol secundario de confirmación sincrónica usa la configuración predeterminada de acceso para las conexiones ("ninguna"), lo que impide todas las conexiones de cliente cuando está en el rol secundario. En cambio, las réplicas de confirmación asincrónica se configuran para permitir conexiones con intención de lectura cuando están en el rol secundario. En la tabla siguiente se resume esta configuración de ejemplo:

Réplica Modo de confirmación Rol inicial Acceso a la conexión para el rol secundario Acceso de conexión para el rol principal
Replica1 Sincrónica Primario None Lectura-escritura
Réplica2 Sincrónica Secundario None Lectura-escritura
Réplica3 Asincrónica Secundario Solo intento de lectura Lectura-escritura
Réplica4 Asincrónica Secundario Solo intento de lectura Lectura-escritura

Normalmente, en este escenario de ejemplo, las conmutaciones por error solo se producen entre las réplicas con confirmación sincrónica y, inmediatamente después de la conmutación por error, las aplicaciones con intención de lectura pueden volver a conectarse a una de las réplicas secundarias con confirmación asincrónica. Sin embargo, cuando se produce un desastre en el centro de datos principal, se pierden ambas réplicas de confirmación síncrona. El administrador de la base de datos en el sitio satélite responde efectuando una conmutación por error manual forzada a una réplica secundaria de confirmación asincrónica. Las bases de datos secundarias de la réplica secundaria restante quedan suspendidas por la conmutación por error forzada, por lo que no están disponibles para cargas de trabajo de solo lectura. La nueva réplica principal, configurada para las conexiones de lectura/escritura, impide que la carga de trabajo de intención de lectura compita con la carga de trabajo de lectura/escritura. Esto significa que, hasta que el administrador de la base de datos reanude las bases de datos secundarias de la réplica secundaria restante de confirmación asincrónica, los clientes con intención de lectura no podrán conectarse a ninguna réplica de disponibilidad.

Tareas relacionadas