SQL Server nos proporciona una serie de soluciones de alta disponibilidad y recuperación ante desastres que ayudan a que los datos que sirven a los sistemas críticos estén disponibles durante el mayor tiempo posible con el menor tiempo de inactividad posible. Estas soluciones de alta disponibilidad y recuperación ante desastres proporcionadas por Microsoft SQL Server se analizan en el artículo sobre soluciones de alta disponibilidad y registro de transacciones de SQL Server.
En este artículo, mostraremos cómo instalar y configurar un sitio de grupo de disponibilidad y configurarlo para cumplir con los requisitos de la empresa. Pero comencemos con una breve descripción general de la función Grupo de disponibilidad siempre activo para familiarizarse con ella.
Resumen
SQL Server Always-on Availability Group, presentado en la versión de SQL Server 2012, es una solución de alta disponibilidad y recuperación ante desastres de nivel empresarial que se basa en la función de clústeres de conmutación por error de Windows Server, en la que una o varias bases de datos pueden actuar como un grupo de disponibilidad y fallado como una sola unidad.
El grupo de disponibilidad es un contenedor para un conjunto de bases de datos que se alojan en una réplica principal, contiene la copia de lectura y escritura de las bases de datos y, sincronizado con hasta ocho réplicas secundarias, contiene una copia de solo lectura de estas bases de datos.
Como alternativa a la característica de creación de reflejo de la base de datos, se puede usar el grupo de disponibilidad Always on para reducir la carga en la instancia principal al configurar las réplicas secundarias para manejar la carga de trabajo de solo lectura y las operaciones de copia de seguridad. De esta forma, el grupo de disponibilidad siempre activo se puede utilizar para mejorar la disponibilidad de las bases de datos y mejorar la utilización de recursos de SQL Server para todas las réplicas.
El proceso de sincronización entre las réplicas del grupo de disponibilidad se puede realizar en uno de los dos modos de disponibilidad admitidos:
- Modo de confirmación síncrona :en este modo de disponibilidad, la réplica principal esperará a que las réplicas secundarias, hasta dos réplicas secundarias sincrónicas, confirmen la escritura del registro en su archivo de registro de transacciones de la base de datos, antes de confirmarlo en la réplica principal. Este modo de disponibilidad aumenta el nivel de disponibilidad de datos por encima del precio de latencia de la transacción.
- Modo de confirmación asíncrona :este modo de disponibilidad se usa principalmente para sincronizar con las réplicas de recuperación ante desastres, que se distribuyen en centros de datos distantes, donde la réplica principal no esperará a las réplicas secundarias, para confirmar el fortalecimiento del registro para confirmar la transacción en el lado principal, proporcionando menos datos nivel de disponibilidad y menor latencia de transacciones.
El proceso de conmutación por error de los Grupos de disponibilidad siempre activos, en el que se cambiará el rol principal entre las réplicas, puede ser realizado manualmente por el administrador de la base de datos o automáticamente por el propio SQL Server en caso de cualquier falla a nivel de servidor, teniendo en cuenta que esto la conmutación por error no ocurrirá en caso de problemas a nivel de la base de datos, como la corrupción de la base de datos.
Para cada grupo de disponibilidad, se puede crear un nombre de servidor para proporcionar a los clientes la capacidad de conectarse directamente a la réplica principal o a las réplicas de solo lectura sin recuperar los nombres y roles de las instancias de SQL Server subyacentes dentro del grupo de disponibilidad. Este nombre de servidor se llama Oyente de grupo de disponibilidad .
Escenario de demostración
Después de proporcionar una breve introducción a la función Grupo de disponibilidad siempre activo, estamos listos para configurar un Grupo de disponibilidad y configurarlo correctamente. En esta demostración, crearemos un grupo de disponibilidad para replicar la base de datos AdventureWorks2017 entre dos instancias de SQL Server; SQL1 y SQL2, con SQL Server 2017 ya instalado en estos servidores.
Con fines de prueba y demostración, los servicios de SQL Server en las instancias de SQL1 y SQL2 se ejecutan con la cuenta de servicio ay\sqladmin, que tiene los permisos adecuados en estas instancias de SQL Server.
Cómo empezar
Como se mencionó en la descripción general de este artículo, la función de grupo de disponibilidad siempre activo se basa en la función de clúster de conmutación por error de Windows Server. Por lo tanto, debemos crear un sitio de clústeres de conmutación por error sobre el cual definiremos el sitio del grupo de disponibilidad.
Crear un clúster de conmutación por error
En primer lugar, debemos asegurarnos de que la función Failover Clustering esté instalada en todas las réplicas que participarán en el sitio del grupo de disponibilidad. Esto se puede realizar abriendo el panel del Administrador del servidor en cada réplica y eligiendo la opción Agregar roles y funciones en el menú Administrar, luego verifique e instale el Clustering de conmutación por error característica de esos asistentes, como se muestra a continuación:
Después de instalar la función de clústeres de conmutación por error, abra el Administrador de clústeres de conmutación por error ventana en una de las réplicas, utilizando una cuenta de administrador local autorizada con privilegios de administrador de dominio que le permitan crear ese nombre de clúster en el directorio activo, y haga clic en Crear clúster opción, como se muestra a continuación:
Desde el asistente para crear clústeres abierto , consulte las instrucciones proporcionadas en Antes de comenzar ventana y haga clic en Siguiente para continuar:
En la página siguiente, proporcione el nombre o la IP de las réplicas que participarán en el grupo de disponibilidad y luego haga clic en Siguiente para continuar:
Después de eso, debe especificar si desea ejecutar la prueba de validación del clúster, para validar que los recursos disponibles en estos servidores sean compatibles con la función Failover Clustering, antes de crear el Failover Cluster o no. Siempre se recomienda realizar la prueba de validación en ese paso antes de intentar crear el sitio del clúster de conmutación por error.
Esto lo dirigirá al Asistente para validar una configuración . En la primera página del asistente de validación, consulte las instrucciones del asistente y haga clic en Siguiente para proceder:
Después de eso, debe especificar si desea ejecutar todas las validaciones del clúster de conmutación por error, que es la opción recomendada, o seleccionar pruebas específicas más rápidas. En esta demostración, elegiremos la opción recomendada por Microsoft y realizaremos todas las pruebas de validación, luego haremos clic en Siguiente para continuar:
Y puede revisar las pruebas de validación que se realizarán dentro de este asistente de validación y confirmar para continuar haciendo clic en Siguiente , de la siguiente manera:
Cuando se complete el proceso de validación, puede hacer clic en el botón Ver informe para revisar el resultado de la prueba de validación o exportarlo a otro ingeniero para solucionar cualquier problema enfrentado, o hacer clic en Finalizar directamente para iniciar el proceso de creación del clúster, como se muestra a continuación:
Por ahora, verificamos que nuestros servidores sean compatibles con los requisitos de la función Failover Clustering y podemos continuar creando el sitio de Failover Clustering. En el Punto de Acceso para Administrar el Cluster ventana, proporcione un nombre único y una dirección IP para el clúster de conmutación por error, luego haga clic en Siguiente para continuar:
Después de eso, revise la configuración de creación de clústeres que proporcionó y asegúrese de eliminar la marca junto a Agregar todo el almacenamiento elegible al clúster , ya que la característica Always on Availability Group funciona con almacenamiento dedicado para cada servidor y NO almacenamiento compartido. Si está de acuerdo con la configuración, haga clic en Siguiente para proceder:
Una vez que el sitio de Failover Clustering se haya creado correctamente, el asistente le notificará con un mensaje que el sitio de Failover Clustering se ha creado completamente, como se muestra a continuación:
Puede verificar que el sitio del clúster de conmutación por error se haya creado correctamente abriendo el Administrador de clústeres de conmutación por error, que le mostrará el sitio del clúster creado y todos los componentes de ese clúster como se muestra a continuación:
Para mantener el sitio del clúster de conmutación por error en el mejor modo de disponibilidad, debe configurar el quórum del clúster que controla cuándo mantener el clúster de conmutación por error en línea o desconectarlo según los votos de los nodos y los recursos. Para configurar el quórum del clúster, haga clic con el botón derecho en el nombre del clúster, en el administrador de clústeres de conmutación por error, y elija Configurar ajustes de quórum del clúster. opción de Más acciones menú, como se muestra a continuación. Para obtener información detallada sobre la configuración de quórum que incluye la función Grupo de disponibilidad siempre activo, consulte Modos de quórum de clúster de conmutación por error de Windows en Grupos de disponibilidad siempre activos de SQL Server:
Habilitar siempre la función de grupo de disponibilidad
Después de crear el clúster de conmutación por error, sobre el cual se creará el grupo de disponibilidad, debemos habilitar la característica del grupo de disponibilidad siempre activo y conectarlo al sitio del clúster de conmutación por error que se usará.
Para habilitar la función Grupo de disponibilidad siempre activo, abra el Administrador de configuración de SQL Server -> Servicios de SQL Server, luego haga clic con el botón derecho en el servicio de SQL Server y elija la opción Propiedades. Desde la ventana de propiedades del servicio de SQL Server, vaya a Disponibilidad permanente. y marque la casilla "Habilitar siempre en grupos de disponibilidad ”, debajo del nombre del clúster de conmutación por error detectado automáticamente, como se muestra a continuación:
Tenga en cuenta que este cambio debe realizarse en todas las réplicas que participarán en el grupo de disponibilidad y tendrá efecto después de reiniciar el servicio de SQL Server, como se muestra a continuación:
Crear nuevo grupo de disponibilidad permanente
Después de habilitar la función Grupo de disponibilidad siempre activo, comenzaremos a crear el nuevo Grupo de disponibilidad expandiendo el nodo Alta disponibilidad siempre activo, en el Explorador de objetos de SSMS, luego haga clic con el botón derecho en el nodo Grupos de disponibilidad y seleccione Nuevo Asistente para grupos de disponibilidad , como se muestra a continuación:
La primera página del asistente Nuevo grupo de disponibilidad es la página Introducción, en la que puede encontrar una breve descripción de los pasos que se realizarán en este asistente para crear un nuevo Grupo de disponibilidad. Revise el resumen provisto y luego haga clic en Siguiente para continuar:
En Especificar opciones de grupo de disponibilidad ventana, debe especificar el nombre del grupo de disponibilidad, el tipo de clúster, según la versión de SQL Server y el sistema operativo utilizado en las réplicas, donde puede elegir entre Clustering de conmutación por error de Windows Server , no EXTERNO de Windows clúster o NINGUNO si no se utiliza ningún clúster.
Esta página también le permite habilitar la detección de salud a nivel de base de datos opción, que verifica cuando una base de datos ya no está en estado en línea, y realiza la conmutación por error automática del grupo de disponibilidad y habilita las transacciones distribuidas en grupos de disponibilidad para cada base de datos, como se muestra a continuación:
Después de eso, debe seleccionar las bases de datos que participarán en ese grupo de disponibilidad. El asistente verificará las solicitudes previas de la base de datos para agregarla al grupo de disponibilidad, incluido el modelo de recuperación completa de la base de datos y que se realice una copia de seguridad completa de esa base de datos antes de agregarla. Después de cumplir con los requisitos para que se incluyan las bases de datos, actualice la lista de bases de datos, verifique la base de datos y luego haga clic en Siguiente para continuar:
En la página siguiente, debajo de Réplicas ficha, debe agregar todas las réplicas de SQL Server que participarán en este grupo de disponibilidad y hospedar una copia de las bases de datos incluidas. Después de agregar las réplicas, puede elegir hasta tres instancias para configurarlas con el modo de disponibilidad de confirmación sincrónica y permitir la conmutación por error automática entre estas réplicas y el resto de réplicas que se configurarán con el modo de confirmación asincrónica. También puede decidir si configurar cada réplica como secundaria legible para conexiones de solo lectura o réplica legible con intención de lectura para manejar la carga de trabajo de solo lectura dirigida automáticamente por el agente de escucha, como se muestra a continuación:
En la pestaña Puntos finales, verifique la configuración de los puntos finales de conexión que se usarán para la comunicación entre las réplicas, donde debe asegurarse de que el puerto TCP usado esté habilitado en las reglas de firewall de todas las réplicas y que la cuenta de servicio proporcionada tenga Permiso de conexión en el extremo de las réplicas, como se muestra a continuación:
En la pestaña Preferencias de respaldo, debe especificar la ubicación donde se ejecutarán los trabajos de respaldo en el grupo de disponibilidad. Le permite realizar una copia de seguridad automática desde la réplica secundaria como opción preferida, la secundaria como obligatoria, la principal como obligatoria o en cualquier réplica. Según esta opción, puede crear el plan de mantenimiento para realizar una copia de seguridad de las bases de datos que participan en el grupo de disponibilidad, como se muestra a continuación:
Desde la misma ventana, también puede definir la configuración del agente de escucha del grupo de disponibilidad, en la página Agente de escucha o continuar sin crear el agente de escucha por ahora y realizar la creación más adelante. En esta demostración, configuraremos el oyente después de crear el grupo de disponibilidad, como se muestra a continuación:
Además, puede usar la página Enrutamiento de solo lectura para definir la lista de enrutamiento de solo lectura, que se usa para controlar la carga de trabajo de solo lectura dentro de los secundarios. Para obtener más información, consulte Cómo configurar el enrutamiento de solo lectura para un grupo de disponibilidad en SQL Server 2016:
En la página siguiente, debe especificar el mecanismo que se utilizará para el proceso de sincronización de datos inicial entre las réplicas principal y secundaria, con la capacidad de realizar la sincronización de forma automática o manual al unir la secundaria al grupo de disponibilidad y sincronizar las bases de datos. más tarde manualmente.
Hay dos métodos de sincronización automática disponibles en ese asistente, el primero es especificar una carpeta compartida para copiar las copias de seguridad completas y del registro de transacciones temporalmente y realizar la restauración automáticamente, que usaremos aquí en esta demostración, o usar un método de inicialización directa sin realizando una copia de seguridad, como se describe en SQL Server 2016 Always On Availability Group with Direct Seeding:
Para utilizar la Copia de seguridad de registro y base de datos completa método, necesitamos crear una carpeta compartida y proporcionar las cuentas de servicios de SQL Server para las réplicas permisos de lectura y escritura en esa carpeta, como se muestra a continuación:
Después de eso, el asistente Nuevo grupo de disponibilidad realizará una verificación de validación de toda la configuración antes de continuar con el proceso de creación del grupo de disponibilidad. Si hay algún error, puede solucionarlo directamente, luego actualice la página y haga clic en Siguiente para proceder:
En la etapa final, el asistente le proporcionará un resumen de todas las configuraciones del asistente para revisarlo y luego haga clic en Finalizar para comenzar a crear el grupo de disponibilidad, como se muestra a continuación:
Cuando se complete el asistente, le mostrará el resultado de cada paso y si se enfrenta a algún error. De lo contrario, mostrará un mensaje que indica que el grupo de disponibilidad se creó correctamente sin problemas, como se muestra a continuación:
También puede validar que el grupo de disponibilidad Always on se haya creado y configurado correctamente mediante el Explorador de objetos de SSMS, comprobando que las bases de datos participantes estén en un estado sincronizado en todas las réplicas y que las réplicas y las bases de datos estén en línea en el estado Always on. Nodo de alta disponibilidad, como se muestra a continuación:
También puede conectarse a la réplica principal, con la palabra principal junto al nombre del grupo de disponibilidad, y verificar la página de propiedades del grupo de disponibilidad, con la capacidad de realizar las mismas tareas que realizamos en el Asistente para nuevo grupo de disponibilidad, como agregar nuevas réplicas. , agregando una nueva base de datos, cambiando la configuración de cada réplica, cambiando las preferencias de respaldo y definiendo una lista de enrutamiento de solo lectura, como se muestra a continuación:
Crear escucha de grupo de disponibilidad permanente
El último paso para configurar el grupo de disponibilidad es crear el agente de escucha del grupo de disponibilidad que se usará al conectarse a las réplicas principal y secundaria sin especificar el nombre de la réplica.
Para crear el agente de escucha del grupo de disponibilidad, haga clic con el botón derecho en el nodo Agente de escucha del grupo de disponibilidad debajo del nodo del grupo de disponibilidad creado y elija Agregar agente de escucha. opción. Desde el nuevo escucha de grupo de disponibilidad abierto ventana, proporcione el nombre de ese agente de escucha, el puerto TCP que se usará para conectarse a ese agente de escucha y la dirección IP estática que se asignará al agente de escucha, luego haga clic en Aceptar. para crearlo Cuando el agente de escucha se crea correctamente, la ventana se cerrará automáticamente y el nombre del agente de escucha se mostrará debajo del nodo Agente de escucha, como se muestra a continuación:
Para conectarse al grupo de disponibilidad usando el nombre del agente de escucha, proporcione el nombre o la IP del agente de escucha con el número de puerto TCP en Conectar al servidor y se conectará directamente al nodo principal, como se muestra a continuación:
Proceso de conmutación por error de prueba
Después de probar la conexión con el escucha del grupo de disponibilidad y las réplicas, debemos realizar una prueba importante para la conmutación por error, para asegurarnos de que la función principal se moverá entre las réplicas sin ningún problema, y que las bases de datos estarán accesibles y en el estado sincronizado después de la conmutación por error.
Para realizar una conmutación por error manual, haga clic con el botón derecho en el nombre del grupo de disponibilidad y elija Conmutación por error. opción, como se muestra a continuación:
La primera página del Grupo de disponibilidad de conmutación por error asistente es la página de Introducción, que proporciona un resumen de las acciones que se pueden realizar en ese asistente. Revisa la introducción y haz clic en Siguiente para continuar:
En la página siguiente, seleccione qué nodo actuará como la nueva réplica principal, asegurándose de que no se pierdan datos cuando se realice la operación de conmutación por error, luego haga clic en Siguiente para continuar:
Después de eso, debe conectarse a la nueva réplica principal que seleccione para asegurarse de que esta réplica esté en línea y accesible, como se muestra a continuación:
Luego revise sus opciones dentro del asistente de conmutación por error en la página de resumen y haga clic en Finalizar para iniciar el proceso de conmutación por error:
Cuando se complete la conmutación por error, revise la página de resultados para asegurarse de que no haya ningún problema durante el proceso de conmutación por error, como se muestra a continuación:
Desde el Explorador de objetos de SSMS, la función de la réplica SQL1 se cambiará directamente a Secundaria, como se muestra a continuación:
En este artículo, describimos en detalle los pasos que deben realizarse para prepararse para la creación del sitio del grupo de disponibilidad y cómo crear y configurar el sitio del grupo de disponibilidad siempre activo. En el próximo artículo, veremos cómo solucionar los problemas que puede enfrentar con un sitio de grupo de disponibilidad existente. Estén atentos.