Skip to content

Read only routing con SQL Server y AlwaysOn Availability Groups

18/07/2016
SQLServerLogo

La característica de AlwaysOn Availability Groups en SQL Server es sin dudas una de las más útiles y efectivas técnicas de alta disponibilidad dentro del producto. Con ella no solo podemos aumentar la disponibilidad de los datos en casos de falla de servidores, sino además contar con copias de solo lectura, que nos permiten redirigir operaciones de lectura intensiva a estas copias, descargando a la copia principal.

Ya en varios post anteriores me refería a la implementación y catacterísticas de AlwaysOn Availability Groups. En este post quiero mencionar una configuración necesaria para aprovechar completamente las réplicas activas que definamos.

Se trata del Read Only Routing, que establece el mecanismo por el cual, si la configuración es apropiada y la cadena de conexión se forma correctamente, las operaciones de lectura pueden ser automáticamente dirigidas a una o varias de las réplicas activas disponibles. Incluso a partir de SQL Server 2016 este mecanismo permite una forma de balance de carga entre las réplicas.

Es importante tener en cuenta que el uso de Read Only Routing no dirige a las copias de lectura cualquier operación de lectura, sino solo las que provengan de conexiones que fueron declaradas solo para leer (ApplicationIntent=ReadOnly)

El detalle completo de la implementación de Read Only Routing lo pueden obtener de este documento de Microsoft:

Configure Read-Only Routing for an Availability Group (SQL Server)

Pero algo también importante es poder, una vez configurado el Read Only Routing, verificar la configuración y asegurarnos que los nodos indicados son los correctos. Para esta tarea, les dejo un script que he desarrollado personalmente y que nos indica, por cada grupo de disponibilidad, las réplicas existentes y el orden de acceso para operaciones de lectura.:

–Validar read only routing con AlwaysOn Availability Groups
SELECT AG.name as AvailabilityGroup,r.replica_server_name,r.availability_mode_desc,r.failover_mode_desc,
r.primary_role_allow_connections_desc,r.secondary_role_allow_connections_desc
,RL.routing_priority,RRO.read_only_routing_url
FROM sys.availability_groups AG
JOIN sys.availability_replicas R ON AG.group_id=R.group_id
JOIN sys.availability_read_only_routing_lists RL ON R.replica_id=RL.replica_id
JOIN sys.availability_replicas RRO ON RRO.replica_id=RL.read_only_replica_id
ORDER BY AG.name,replica_server_name,routing_priority

 

 

 

 

From → Microsoft, SQL Server

Dejar un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: