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.
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]
Se pedira el reincio:
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]
Se da el nombre al grupo de disponibilidad.
Se seleccionan la base de datos que estarán en el grupo.
A continuación se especifican en que nodos estarán las réplicas seleccionando el botón de [Add Replica]
…
Seleccionamos una a una las instancias en los otros nodos:
….
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.
* 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:
A continuación se hace una prueba de Validación:
Tenemos la pantalla de resumen:
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:
Bajo “Failover Cluster Manager” se ve el grupo creado
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?