Alta disponibilidad Microsoft SQL Server con SafeKit: Instale el módulo sqlserver.safe para la conmutación por error
Guía de instalación rápida de alta disponibilidad para Microsoft SQL Server
Esta guía explica cómo configurar un clúster mirror para Microsoft SQL Server utilizando SafeKit, garantizando la conmutación por error automática y la replicación síncrona sin necesidad de almacenamiento compartido.
Para obtener ayuda, puedes usar SafeKit AI 🤖.
1. Descripción general
- Arquitectura: utiliza un sistema de dos nodos (primario/secundario).
- Protección de datos: implementa la replicación síncrona en tiempo real para una pérdida de datos nula (RPO = 0).
2. Instalación
- Software: Instale el motor SafeKit en ambos servidores.
- Módulo: Descargue el módulo de aplicación
sqlserver.safepreconfigurado.
3. Configuración
- Consola web: configure las carpetas específicas que contienen los archivos Microsoft SQL Server.
- Supervisión: Inicie la supervisión y protección de la aplicación Microsoft SQL Server.
Limitaciones de alta disponibilidad SafeKit
| Límite / Requisito | Motivo e impacto | Alternativa recomendada |
|---|---|---|
| Tamaño de la replicación: unos pocos TB | Tiempo de resincronización tras un fallo (paso 3): • Red de 1 Gb/s ≈ 3 horas/TB • Red de 10 Gb/s ≈ 1 hora/TB (dependiendo del rendimiento de escritura del disco) | • Utilizar almacenamiento compartido externo (más caro, más complejo). |
| Número de archivos: < 1 000 000 | • Rendimiento del tiempo de resincronización después de una falla (paso 3). • Tiempo necesario para comparar cada archivo entre ambos nodos. | • Coloque los numerosos archivos que se van a replicar en un disco duro virtual o en una máquina virtual. • En este caso, solo se replicarán y resincronizarán los archivos que representan el disco duro virtual o la máquina virtual. |
| Capacidad de conmutación por error: ≤ 32 máquinas virtuales | • Cada máquina virtual se ejecuta en un módulo mirror independiente. • Máximo de 32 módulos mirror que se ejecutan en el mismo clúster. | • Utilizar un almacenamiento compartido externo y otra solución de clúster de máquinas virtuales (más cara y más compleja). |
| Arquitectura de red: red LAN/VLAN entre sitios remotos | • Conmutación por error automática de la dirección IP virtual con 2 nodos en la misma subred. • Buen ancho de banda para la resincronización (paso 3). • Baja latencia para la replicación sincrónica: normalmente < 5 ms RTT; los valores más altos deben validarse con la tasa de escritura de la aplicación. | • Si los dos nodos están en subredes diferentes (común en la nube), utilice otras opciones de reenvío: un balanceador de carga, las CLI del proveedor de la nube, BGP o la redirección de DNS. • Utilice soluciones de copia de seguridad con replicación asíncrona para redes con alta latencia. |
Descripción general de la solución SafeKit/Microsoft SQL Server
Para obtener una descripción detallada de la solución, consulte 💡 La alta disponibilidad más sencilla Microsoft SQL Server: replicación síncrona y conmutación por error de 2 nodos.
Instalación de la solución SafeKit/Microsoft SQL Server en Windows (sqlserver.safe)
Requisitos previos
Necesita tener Microsoft SQL Server instalado en 2 nodos (máquinas virtuales o servidores físicos).
SafeKit funciona con todas las versiones de SQL, incluido SQL Express.
Las bases de datos del sistema SQL (como master.mdf y mastlog.ldf) deben estar ubicadas en los mismos directorios en ambos nodos. Los directorios se configurarán como replicados en el paso 4 de la configuración paso a paso.
SQL también debe estar instalado en la misma ubicación en el sistema de archivos de ambos nodos porque la base de datos de recursos SQL de solo lectura se encuentra en el binario y es necesaria para la conmutación por error. Esta base de datos no necesita ser replicada.
Las bases de datos de usuario de SQL (.mdf y .ldf) deben estar ubicadas en los mismos directorios en ambos nodos. Los directorios se configurarán como replicados en el paso 4 de la configuración paso a paso.
Instalación de paquetes en Windows
- Descargue e instale la versión gratuita de SafeKit en 2 nodos Windows.
Nota: la versión gratuita incluye todas las funciones SafeKit. Al final del período de prueba, puede activar las claves de licencia permanentes sin desinstalar el paquete. - Una vez completada la instalación del paquete, seleccione “Establecer credenciales de la consola y reglas de firewall ahora” y configure una contraseña para el usuario admin de la consola SafeKit.
Establezca la misma contraseña en todos los nodos. - Excluya de los análisis antivirus C:/safekit/ (el directorio de instalación predeterminado) y todas las carpetas replicadas que vaya a definir.
Los antivirus pueden tener dificultades para detectar SafeKit debido a su estrecha integración con el sistema operativo, los mecanismos de IP virtual, la replicación en tiempo real y el reinicio de los servicios críticos.
Instalación del módulo en Windows
- Descargue el módulo sqlserver.safe. El módulo es gratuito. Contiene los archivos userconfig.xml y los scripts de reinicio.
- Coloque sqlserver.safe en C:/safekit/Application_Modules/generic.
Descargar sqlserver.safe (Windows) >
Configuración paso a paso de la solución SafeKit/Microsoft SQL Server
Requisitos previos
- Microsoft SQL Server instalada en 2 nodos.
- Los datos replicados totales se limitan a unos pocos terabytes; más allá de esto, el tiempo de resincronización se vuelve significativo.
- Interconexión mínima de 1 Gb/s entre nodos (se recomiendan 10 Gb/s para una resincronización más rápida).
- La conmutación por error de IP requiere que ambos nodos estén en la misma LAN o LAN extendida (L2); las redes L3 enrutadas no son compatibles (excepto con balanceadores de carga en la nube 🛠️).
1. Inicie la consola SafeKit
- Inicie la consola web en un navegador en un nodo del clúster conectándose a
http://localhost:9010. - Introduzca
admincomo nombre de usuario y la contraseña definida durante la instalación.
También puede ejecutar la consola en un navegador en una estación de trabajo externa al clúster.
⚠️ La configuración de SafeKit se realiza en ambos nodos desde un único navegador.
ℹ️ Para proteger la consola web, consulte 🛠️ 11. Protección del servicio web SafeKit en la Guía del usuario.

2. Configurar las direcciones de los nodos
- Introduzca las direcciones IP de los nodos, pulse la
Tab keypara comprobar la conectividad y rellene los nombres de los nodos. Si node1 o node2 tienen un color rojo, compruebe la conectividad del navegador con ambos nodos y compruebe el cortafuegos en ambos nodos para solucionar problemas 🛠️. - A continuación, haga clic en
Save and applypara guardar la configuración. - Compruebe el mensaje
Success✅ en ambos nodos. - Si se produce un
Failurede configuración ❌ en un nodo, abra el acordeón ▼ de ese nodo y revise los mensajes. Tenga en cuenta que puede utilizar la IA SafeKit 🤖 para obtener ayuda.
ℹ️ Si lo desea, puede agregar una nueva LAN and nodes (el primer ➕) para crear un segundo latido y una red de replicación dedicada.
ℹ️ Si hace clic en Advanced configuration, se mostrará el archivo cluster.xml. Este archivo se rellena automáticamente mediante la consola y se implementa en los nodos.

3. Seleccione un módulo
- En
New module, haga clic en el módulosqlserver.safe.
ℹ️ En el banner azul de la parte superior, el nodo 🛜 node1 representa el nodo de conexión de la consola. Este nodo retransmite las solicitudes al node2 cuando es necesario.
ℹ️ La consola busca xxx.safe en el directorio Application_Modules/generic/ en el nodo de conexión (node1) si colocó un módulo allí durante la instalación.

4. Configurar el módulo
- En
Module startup at boot, elija un inicio automático del módulo al arrancar sin demora. - En
Macros/SERVICES, introduzca los nombres de los servicios de su aplicación, en el orden de inicio, separados por comas. Consulte esta captura de pantalla para ver un ejemplo visual de los servicios Milestone XProtect 🖼️. - En
Heartbeat networks, debe tener una única red de latidos en la que se realiza la replicación. Si ha añadido una LAN privada en el paso 2, puede configurar dos latidos con el flujo de replicación en la LAN privada. - En
Virtual IP addresses, introduzca una dirección IP virtual. Una dirección IP virtual es una dirección IP estándar en la misma red IP (misma subred) que las direcciones IP de ambos nodos.
Los clientes de la aplicación deben configurarse con la dirección IP virtual (o el nombre DNS asociado a la dirección IP virtual).
La dirección IP virtual se conmuta automáticamente en caso de fallo. - En
Replicated directories, establezca las rutas de los directorios que se van a replicar. Compruebe que existen en ambos nodos y que contienen los datos de la aplicación.
La replicación de datos y de registros es esencial para una base de datos.
Puede crear directorios replicados adicionales según sea necesario.
Consulte esta captura de pantalla para ver un ejemplo visual de la replicación SQL Milestone XProtect 🖼️. - En
Checkers, podrá configurar las comprobaciones si es necesario, como la supervisión de procesos, las comprobaciones personalizadas, TCP, ping o comprobaciones de división de clúster.
Por ejemplo, si un nombre de proceso se muestra enMonitored processes/services, se supervisará con una acción de reinicio en caso de fallo. La configuración de un nombre de proceso incorrecto hará que el módulo se detenga justo después de su inicio.
ℹ️ Si hace clic en Advanced configuration, se mostrará el archivo userconfig.xml. Este archivo se rellena automáticamente en la consola y se implementa en los nodos con los scripts de reinicio.
ℹ️ En una implementación en la nube, no es necesario configurar una dirección IP virtual en SafeKit. La IP virtual se gestiona a nivel balanceador de carga de la nube 🛠️
ℹ️ Cuando se aplica la configuración SafeKit, el startup type de los servicios se establece automáticamente en Manual en los servicios Windows. Esto garantiza que los servicios no se inicien automáticamente cuando el sistema arranca, sino que se inicien solo cuando se inicia el propio módulo (lo mismo se aplica en Linux).

5. Editar guiones (opcional)
- Este paso es opcional y se puede omitir en la mayoría de los casos, ya que los scripts de reinicio ya están preconfigurados para reiniciar los servicios definidos en el paso anterior.
- Por lo tanto, haga clic directamente en
Next step. start_prim.ps1inicia todos los servicios en el orden especificado en la listaSERVICES, mientras questop_prim.ps1detiene todos los servicios en el orden inverso.- Además,
start_prim.ps1comprueba el inicio de cada servicio y detiene el módulo si algún servicio no se inicia correctamente.

6. Cifrado de la comunicación (opcional)
- Mantenga el cifrado de la comunicación entre los nodos.

7. Guardar y aplicar
Save and applyla configuración y los scripts en ambos nodos.

8. Verifique que la configuración se haya realizado correctamente
- Compruebe el mensaje
Success✅ en ambos nodos y haga clic enMonitor modules. - Si se produce un
Failurede configuración ❌ en un nodo, abra el acordeón ▼ de ese nodo y revise los mensajes. Tenga en cuenta que puede utilizar la IA SafeKit 🤖 para obtener ayuda.
⚠️ En Linux, es posible que obtenga un error en este paso si los directorios replicados son puntos de montaje. 🛠️ Consulte SK-0030 para resolver el problema.

9. Inicie el nodo con los datos actualizados
- Si el nodo 1 tiene los directorios replicados actualizados, selecciónelo y ⋯
Force start▶As primary.
Cuando se inicie el nodo 2, todos los datos se copiarán del nodo 1 al nodo 2.
⚠️ Si elige la opción incorrecta, corre el riesgo de sincronizar datos obsoletos en ambos nodos.
⚠️ También se supone que la aplicación Microsoft SQL Server está detenida en el nodo 1 para que SafeKit instale los mecanismos de replicación y luego inicie la aplicación en el script start_prim.
⚠️ Utilice Start para los inicios posteriores: SafeKit conserva el servidor más actualizado. Iniciar As primary es un inicio especial la primera vez o durante operaciones excepcionales.

10. Espere a que la transición sea a ALONE (verde)
- El nodo 1 debe alcanzar el estado ALONE (verde), lo que significa que la IP virtual está configurada y que el script
start_primse ha ejecutado en el nodo 1.
⚠️ Si no se alcanza ALONE (verde) o si no se inicia la aplicación, analice el motivo con el registro del módulo 🖼️ del nodo 1.
- Haga clic en el icono de registro 🔍 del
node1para abrir el registro del módulo y buscar mensajes de error, como un verificador que detecta un error y detiene el módulo. - Haga clic en
start_primen el registro: los mensajes de salida del script se muestran a la derecha y se pueden detectar errores, como un servicio que se inició incorrectamente. - Utiliza la IA SafeKit 🤖 para obtener ayuda con los mensajes de registro.
⚠️ Si el clúster está en estado WAIT (red) not uptodate, STOP (red) not uptodate, detenga el nodo WAIT y fuerce su inicio como primario 🖼️.

11. Iniciar nodo 2
- ⋯
Startel nodo 2 con su menú contextual. - Espere al SECOND estado (verde).
ℹ️ El nodo 2 permanece en el SECOND estado (naranja) mientras se resincronizan los directorios replicados (copia del nodo 1 al nodo 2).
- Esto puede tardar un tiempo, dependiendo del tamaño de los archivos que se van a resincronizar en los directorios replicados y del ancho de banda de la red.
- Para ver el progreso de la copia, consulte el registro del módulo 🖼️ y los recursos de replicación 🖼️ del nodo 2. Utilice la IA SafeKit 🤖 para obtener ayuda con los mensajes de registro.

12. Compruebe que el clúster está operativo
- Compruebe que el clúster esté en verde/verde con los servicios Microsoft SQL Server ejecutándose en el nodo PRIM y no en el nodo SECOND.
En este estado, solo los cambios dentro de los archivos se replican en tiempo real.
⚠️ Los componentes que son clientes de los servicios Microsoft SQL Server deben configurarse con la dirección IP virtual. La configuración se puede realizar con un nombre DNS (si se ha creado un nombre DNS y se ha asociado con la dirección IP virtual).

13. Pruebas
- Detenga el nodo PRIM desplazándose hacia abajo en su menú contextual y haciendo clic en
Stop. - Verifique que haya una conmutación por error en el SECOND nodo, que debería quedar ALONE (en verde).
- Y con Microsoft Management Console (MMC) en Windows o con líneas de comandos en Linux, compruebe la conmutación por error de los servicios Microsoft SQL Server (detenidos en el nodo 1 en el script
stop_prime iniciados en el nodo 2 en el scriptstart_prim).
⚠️ Si no se alcanza ALONE (verde) en el node2 o si la aplicación no se inicia, analice el motivo con el registro del módulo 🖼️ del nodo 2.
- Haga clic en el icono de registro 🔍 del
node2para abrir el registro del módulo y buscar mensajes de error, como un verificador que detecta un error y detiene el módulo. - Haga clic en
start_primen el registro: los mensajes de salida del script se muestran a la derecha y se pueden detectar errores, como un servicio que se inició incorrectamente. - Utiliza la IA SafeKit 🤖 para obtener ayuda con los mensajes de registro.
⚠️
- Si todo está bien, inicie un inicio en node1, que resincronizará los directorios replicados desde node2.
- Si las cosas van mal, detenga node2 y fuerce al nodo 1 a iniciarse como primario 🖼️, que se reiniciará con sus datos localmente saludables en el momento de la detención.
ℹ️ Encuentre más detalles, junto con vídeos, en la formación en línea SafeKit.

14. Soporte
- Para obtener soporte, haga 2
SnapshotsSafeKit (2 archivos .zip), una para cada nodo.
ℹ️ Más información sobre el soporte aquí.

Demostración de la solución mirror SafeKit
Vídeo SafeKit: Agrupación en clúster a nivel de aplicación (8:47)
En este vídeo, descubra cómo SafeKit implementa un clúster HA mirror sin la complejidad de una SAN. Aunque esta demostración utiliza Microsoft SQL Server, la solución funciona de forma idéntica para otras bases de datos y aplicaciones.
Capítulos
- 🎬 2 nodos con SQL Server (0:32)
- 🎬 Configura el clúster y el módulo mirror.safe (3:58)
- 🎬 Iniciar y probar la replicación, migración y conmutación por error de SQL en caso de fallo (4:17)
Implementación paso a paso
- 🛠️ Lee la guía sobre cómo configurar un clúster mirror en Windows
- 🛠️ Lee la guía sobre cómo configurar un clúster mirror en Linux
🔍 Explora SafeKit
Encuentre información sobre las características, arquitecturas, vídeos, documentación y la prueba gratuita de SafeKit.
| Recurso | Descripción | Enlace |
|---|---|---|
| Características principales | Descubra por qué SafeKit es una solución de alta disponibilidad sencilla y rentable. | Descubre las características clave |
| Casos de uso | Descubra cómo SafeKit mantiene disponibles las aplicaciones y la infraestructura críticas. | Explora los casos de uso |
| Modelo de implementación | SafeKit proporciona alta disponibilidad sin necesidad de una SAN o almacenamiento compartido. | Explore el modelo de implementación |
| Estrategias de alta disponibilidad | Compare la alta disponibilidad de las máquinas virtuales con la alta disponibilidad de las aplicaciones. | Compare las dos estrategias |
| Especificaciones técnicas | Compruebe los requisitos técnicos y las limitaciones de los clústeres de SafeKit. | Lea las especificaciones técnicas |
| Vídeos | Vea demostraciones de la configuración de SafeKit y de la conmutación por error automática. | Mira los vídeos técnicos |
| Arquitectura | Aprenda cómo el clúster mirror replica archivos en tiempo real y gestiona la conmutación por error. | Explora la arquitectura Mirror |
| Arquitectura | Descubra cómo el clúster farm equilibra el tráfico de la red y gestiona la conmutación por error. | Explora la arquitectura Farm |
| Comparación de productos | Compare SafeKit con los clústeres tradicionales de alta disponibilidad. | Compare las soluciones |
| Recursos técnicos | Encuentre la documentación técnica, descargue SafeKit y acceda a la versión de prueba gratuita. | Acceda a la documentación y a la prueba gratuita |
| Módulos de aplicación | Utilice los módulos SafeKit preconfigurados para configurar la alta disponibilidad de sus aplicaciones. | Explora los módulos de la aplicación |