Una mirada general de cómo configurar SQL Server 2012 Always On

Por Luis Ramirez

En versiones pasadas de SQL Server hemos ofrecido las siguientes opciones en el tema de alta disponibilidad:

- Log Shipping.

- Cluster.
- Mirroring

- Y ahora en SQL Server 2012 introducimos Always On.

¿Qué viene siendo “Always On”? Es una solución de Alta disponibilidad en recuperación de desastres (HADR - High Availability Disaster Recovery) resultado de la combinación de las soluciones de Clúster y Database Mirroring.

De “Failover Clustered” toma la parte de poder administrar recursos en grupos denominados “Availability Groups” y principalmente fallar entre nodos sin la necesidad de tener un disco compartido entre los nodos.

De “Mirroring” toma el sincronizar bases añadiendo la facultad de poder hacer uso delas replicas secundarias.

A continuación los pasos (sin entrar a detalle) de como poder establecer esta solución.

1.- Crear un “Windows Server Failover Cluster “con N nodos lo cual nos permitirá administrar recursos y monitorear la salud del servidor a través del quorum.

image

2.- El siguiente paso es instalar instancias de SQL Server como StandAlone en cada uno de los nodos .

Una vez realizado esto se procede a habilitar la funcionalidad de AlwaysOn.

3.- Desde “SQL Server Configuration Manager” seleccionamos los servicios del motor de SQL dándole botón derecho para seleccionar propiedades, después el tabulador [AlwaysOn High Availability] y habilitamos [Enable AlwaysOn Availabilty Groups]

image

Se pedira el reincio:

image

Nota: Se tiene que hacer en cada nodo que estará en la solución.

Una vez hecho el reinicio.

4.- A continuación se crean los “Availability Groups” que es un grupo de bases de datos disponibles que pueden hacer fallos entre ellas. El grupo soporta un conjunto de bases de datos primarias y hasta cuatro secundarias (que NO reemplazan a los respaldos)

Esto es, se tendrá copias de las bases de datos en múltiples servidores las cuales se podrán usar ,dependiendo su configuración, para correr respaldos, reportes, etc.

4.1 Usando “el SQL Server Management Studio” se conecta a la instancia principal

4.2 Se hace un respaldo FULL de las bases de datos que serán replicadas.

4.3 Bajo la carpeta de [AlwaysOn High Availability], seleccionamos -> [Availability Groups] -> [New Availability Group Wizard]

image

Se da el nombre al grupo de disponibilidad.

image

Se seleccionan la base de datos que estarán en el grupo.

image

A continuación se especifican en que nodos estarán las réplicas seleccionando el botón de [Add Replica]

image

Seleccionamos una a una las instancias en los otros nodos:

image

….

Una vez agregados los nodos tendremos las opciones de “Automatic Failover” , “Synchronous-commit” y “Readable Secondary”.

“Automatic Failover” como indica es el fallo a otro nodo automático.

“Synchronous-commit” Indica que el fallo será llevado acabo si la réplica secundaria esta sincronizada.

“Readable Secondary”. Es dando permiso para usar las réplicas de las bases de datos para lectura, donde ninguna operación DML/DDL será permitida. La opción de Read-Intent Only para clientes 2012 y se puede ver como una extensión de la opción [YES] pero donde solo permitirá dichos clientes con esta cadena de conexión.

image

* Nota: Las opciones del tabulador ofrecen personalizar la configuración.

La siguiente pantalla seleccionamos una carpeta compartida (con los permisos necesarios) en donde sincronizaremos la(s) base(s) de dato(s) de este grupo:

image

A continuación se hace una prueba de Validación:

image

Tenemos la pantalla de resumen:

image

Bajo “SQL Server Management Studio” tendremos nuestra definicion de Grupos, tambien notar el estado de las bases de datos cambian a que se esta sincronizando:

image

Bajo “Failover Cluster Manager” se ve el grupo creado

image

Mas información:

SQL Server 2012: Always On FAQs

https://blogs.msdn.com/b/srgolla/archive/2012/09/17/sql-server-2012-always-on-faqs.aspx

Overview of AlwaysOn Availability Groups (SQL Server)

https://msdn.microsoft.com/en-us/library/ff877884.aspx

Failover and Failover Modes (AlwaysOn Availability Groups)

https://msdn.microsoft.com/en-us/library/hh213151.aspx

AlwaysOn: Why there are two options to enable a secondary replica for read workload?

https://blogs.msdn.com/b/sqlserverstorageengine/archive/2011/12/22/alwayson-why-there-are-two-options-to-enable-a-secondary-replica-for-read-workload.aspx