SQL Server Always On Availability Group (Linux, Pacemaker)
SQL ServerNivel: AvanzadoDuración: 120–180 minA partir de tres servidores Linux (RHEL 9 o Ubuntu 22.04) con SQL Server 2022 instalado, crea un Always On AG gestionado por Pacemaker: mssql-server-ha, hadr.hadrenabled, mirroring endpoints con autenticación por certificado, AG con CLUSTER_TYPE = EXTERNAL (3 réplicas síncronas o 2 síncronas + configuration-only), automatic seeding, cluster pacemaker/corosync/pcs, fencing (STONITH), recurso ocf:mssql:ag, recurso de IP del listener y constraints, listener y prueba de failover planificado. El resultado es un AG en el que Pacemaker hace failover automático cuando cae el primary y la IP del listener se mueve con el primary.
Instale antes cada nodo con Instalación de SQL Server en Linux. Para Windows y WSFC: Always On AG (Windows); para la operación diaria y las averías de un AG instalado: Operación de AG.
Topología: 3 nodos Linux: 3 réplicas síncronas o 2 síncronas + una réplica configuration-only
Antes de empezar
- SQL Server 2022 instalado en los tres nodos con la misma versión y CU (instalación en Linux)…; en el nodo configuration-only puede ser también Express…, … es sysadmin. Contraseña: read -rsp 'Contraseña: ' SQLCMDPASSWORD; export SQLCMDPASSWORD y sudo --preserve-env=SQLCMDPASSWORD bash <script>.sh.
- En cada nodo, la salida de hostname y el @@SERVERNAME de SQL Server son idénticos y coinciden con el nombre de la lista de nodos. Si no coinciden, el recurso de Pacemaker no encuentra la réplica (RESOLVING).
- Los nodos se resuelven entre sí por nombre (DNS o /etc/hosts) y están abiertos estos puertos: SQL …/tcp, endpoint …/tcp, Pacemaker 2224/tcp, 3121/tcp, 5403/tcp, 21064/tcp, 5404–5405/udp. La IP del listener (…) no está en uso.
- En cada nodo están activos la suscripción de RHEL y el High Availability Add-On (repositorio rhel-9-for-x86_64-highavailability-rpms).
- La hora de los nodos está sincronizada por NTP (chronyd / systemd-timesyncd); corosync y los certificados son sensibles a las diferencias de hora.
- …La dirección de BMC (iLO/iDRAC/IPMI) de cada nodo es accesible desde los nodos; el usuario de fencing tiene permiso para apagar/encender.…vCenter (…) es accesible desde los nodos por 443/tcp; la cuenta de fencing tiene permisos de operaciones de energía sobre estas VM.… Red Hat solo da soporte a los métodos de fencing soportados (para la misma plataforma de virtualización).
- Las contraseñas están preparadas y en el gestor de contraseñas: master key de SQL, copia de la private key del certificado, login …, usuario hacluster…, cuenta de fencing…. Los pasos las solicitan sin mostrarlas en pantalla.
- Ventana de mantenimiento: los servicios de SQL Server se reinician una vez (hadr.hadrenabled) y la prueba de failover corta el listener unos segundos.
Fases de la guía
- Preparar los nodos — Añadir los nombres de los nodos al archivo hosts · Abrir en el firewall los puertos de SQL, del endpoint y de Pacemaker
- SQL Server: agente de HA, Always On y endpoints — Instalar el agente de HA de SQL Server (mssql-server-ha) · Habilitar Always On y reiniciar SQL Server · Iniciar la sesión AlwaysOn_health en el arranque · Crear el login de SQL Server y el archivo de contraseña para Pacemaker · Crear el certificado del endpoint y hacer su copia (nodo 1) · Copiar los archivos del certificado a los demás nodos (nodo 1) …
- Availability Group (CLUSTER_TYPE = EXTERNAL) — Crear el AG (nodo 1) · Unir el secondary al AG: … · Pasar la base de datos a recovery FULL, hacer copia y añadirla al AG (nodo 1) · Supervisar el automatic seeding y la sincronización (nodo 1)
- Cluster Pacemaker — Instalar Pacemaker, corosync y pcs · Asignar la contraseña de hacluster e iniciar pcsd · Limpiar la configuración de cluster predeterminada de Ubuntu · Crear e iniciar el cluster (nodo 1) · Configurar el fencing (STONITH) (nodo 1) · Ajustar las propiedades del cluster (nodo 1) …
- Listener — Crear el listener (nodo 1) · Probar la conexión a través del listener
- Verificación y prueba de failover — Comprobar la salud del AG · Prueba de failover planificado: … pasa a primary · Volver: … vuelve a ser primary
- Después de la instalación — Sincronizar logins, jobs y objetos de servidor · Configurar copias de seguridad y supervisión