Compartir a través de


Conceptos básicos sobre disponibilidad de SQL Server en implementaciones de Linux

Se aplica a:SQL Server en Linux

A partir de SQL Server, SQL Server 2017 (14.x) se admite en Linux y en Windows. Al igual que las implementaciones basadas en Windows de SQL Server, las bases de datos y las instancias de SQL Server deben tener una alta disponibilidad en Linux.

En este artículo se tratan los aspectos técnicos del planeamiento e implementación de instancias y bases de datos de SQL Server basadas en Linux de alta disponibilidad, y se resaltan las diferencias clave de las instalaciones basadas en Windows. Dado que SQL Server o Linux podrían ser nuevos para usted, en este artículo se analizan conceptos que quizá le resulten familiares.

Opciones de disponibilidad de SQL Server en implementaciones de Linux

Aparte de las copias de seguridad y la restauración, las mismas tres características de disponibilidad están presentes en las implementaciones basadas tanto en Linux como en Windows:

En Windows, las instancias de clúster de conmutación por error requieren un clúster de conmutación por error de Windows Server (WSFC) subyacente. Dependiendo del escenario de implementación, un grupo de disponibilidad suele requerir un WSFC subyacente, con la excepción de la nueva variante None en SQL Server 2017 (14.x). En Linux no hay un WSFC. La implementación en clúster en Linux se describe en Pacemaker para grupos de disponibilidad e instancias de clúster de conmutación por error en Linux.

Manual rápido de Linux

Aunque algunas instalaciones de Linux incluyen una interfaz, la mayoría no. Utilizas la línea de comandos para casi todo en la capa del sistema operativo. El término común para esta línea de comandos en el mundo de Linux es un shell, el más común es bash.

En Linux, necesita privilegios elevados para ejecutar muchos comandos, de forma similar a necesitar privilegios de administrador en Windows Server. Puede ejecutar comandos con privilegios elevados de dos maneras:

  1. Ejecute el comando como el usuario adecuado. Para cambiar a otro usuario, use el su comando . Si ejecuta su sin un nombre de usuario, entra en un shell como root si sabe la contraseña.

  2. Use sudo antes del comando . Este método es más común y seguro. Muchos ejemplos de este artículo usan sudo.

Estos son algunos comandos comunes. Cada comando tiene varios modificadores y opciones que puede investigar en línea:

  • cd: sirve para cambiar el directorio
  • chmod: sirve para cambiar los permisos de un archivo o un directorio.
  • chown: sirve para cambiar la propiedad de un archivo o un directorio.
  • ls: sirve para mostrar el contenido de un directorio.
  • mkdir: sirve para crear una carpeta (directorio) en una unidad.
  • mv: sirve para mover un archivo de una ubicación a otra.
  • ps: sirve para mostrar todos los procesos en funcionamiento.
  • rm: sirve para eliminar un archivo localmente en un servidor.
  • rmdir: sirve para eliminar una carpeta (directorio).
  • systemctl: sirve para iniciar, detener o habilitar servicios.
  • Comandos del editor de texto. En Linux hay varias opciones del editor de texto, como vi y emacs.

Tareas comunes para configurar la disponibilidad de SQL Server en Linux

En esta sección se describen las tareas comunes a todas las implementaciones de SQL Server basadas en Linux.

Asegúrese de que puede copiar archivos

Cualquier persona que administre SQL Server en Linux debe poder copiar archivos de un servidor a otro. Esta tarea es esencial para las configuraciones de AG.

Los problemas de permisos pueden existir en instalaciones basadas en Linux y Windows. Sin embargo, es posible que los usuarios de Windows que estén familiarizados con cómo copiar archivos del servidor al servidor no estén familiarizados con cómo se hace en Linux. Un método común es usar la utilidad scpde línea de comandos , que significa copia segura. En segundo plano, scp usa OpenSSH. SSH significa shell seguro. En función de la distribución de Linux, es posible que OpenSSH no esté instalado de por sí. Si no es así, debe instalar OpenSSH.

Para obtener más información sobre cómo configurar OpenSSH para la distribución de Linux, consulte:

Nota

A partir de SQL Server 2025 (17.x), no se admite SUSE Linux Enterprise Server (SLES).

Cuando usa scp, debe proporcionar las credenciales del servidor si no es el servidor de origen o de destino. Por ejemplo, el siguiente comando copia el archivo MyAGCert.cer en la carpeta especificada en el otro servidor:

scp MyAGCert.cer username@servername:/folder/subfolder

Debe tener permisos, y posiblemente propiedad, del archivo para copiarlo, por lo que es posible que tenga que usar chown antes de copiarlo. Del mismo modo, en el lado receptor, el usuario adecuado necesita acceso para manipular el archivo. Por ejemplo, para restaurar ese archivo de certificado, el usuario de mssql debe poder acceder a él.

También se puede usar Samba, que es la variante de Linux del Bloque de mensajes del servidor (SMB), para crear recursos compartidos a los que acceden las rutas de acceso UNC como \\SERVERNAME\SHARE. Para más información sobre cómo configurar Samba, vea los siguientes vínculos relativos a cada distribución:

Nota

A partir de SQL Server 2025 (17.x), no se admite SUSE Linux Enterprise Server (SLES).

También puede usar recursos compartidos SMB basados en Windows. Los recursos compartidos SMB no necesitan estar basados en Linux, siempre y cuando la parte del cliente de Samba esté configurada correctamente en el servidor Linux que hospeda SQL Server y el recurso compartido tenga el acceso adecuado. Para los clientes de un entorno mixto, este enfoque le permite usar la infraestructura existente para las implementaciones de SQL Server basadas en Linux.

La versión de Samba que implemente debe ser compatible con SMB 3.0. Cuando se agregó compatibilidad con SMB en SQL Server 2012 (11.x), era necesario que todos los recursos compartidos admitieran SMB 3.0. Si usa Samba para el recurso compartido y no para Windows Server, el recurso compartido basado en Samba debe usar Samba 4.0 o posterior y, idealmente, 4.3 o posterior, que admite SMB 3.1.1. Una buena fuente de información sobre SMB y Linux es SMB3 en Samba.

Por último, usar un recurso compartido de Network File System (NFS) es una opción. No puede usar NFS en implementaciones basadas en Windows de SQL Server y solo se puede usar para implementaciones basadas en Linux.

Configuración del firewall

De forma similar a Windows, las distribuciones de Linux tienen un firewall integrado. Si su organización usa un firewall externo para los servidores, es posible que pueda deshabilitar los firewalls en Linux. Sin embargo, independientemente de dónde habilite el firewall, debe abrir puertos. En la tabla siguiente se enumeran los puertos comunes necesarios para las implementaciones de SQL Server de alta disponibilidad en Linux.

Número de puerto Tipo Descripción
111 TCP/UDP NFS: rpcbind/sunrpc
135 TCP Samba (si se usa): asignador de puntos de conexión
137 UDP Samba (si se usa): servicio de nombres de NetBIOS
138 UDP Samba (si se usa): datagrama de NetBIOS
139 TCP Samba (si se usa): sesión de NetBIOS
445 TCP Samba (si se usa): SMB a través de TCP
1433 TCP SQL Server: puerto predeterminado; si lo desea, se puede cambiar por mssql-conf set network.tcpport <portnumber>.
2049 TCP, UDP NFS (si se usa)
2224 TCP Pacemaker: usado por pcsd
3121 TCP Pacemaker: indispensable si hay nodos remotos de Pacemaker
3260 TCP Iniciador iSCSI (si se usa): se puede modificar en /etc/iscsi/iscsid.config (RHEL), pero debe coincidir con el puerto del destino iSCSI.
5022 TCP SQL Server: puerto predeterminado usado para un punto de conexión de grupo de disponibilidad; se puede cambiar al crear el punto de conexión.
5403 TCP Pacemaker
5404 UDP Pacemaker: indispensable para Corosync si se usa un UDP de multidifusión
5405 UDP Pacemaker: indispensable para Corosync
21064 TCP Pacemaker: indispensable para los recursos que usan DLM
Variable TCP Puerto del punto de conexión de grupo de disponibilidad; el valor predeterminado es 5022.
Variable TCP NFS: puerto de LOCKD_TCPPORT (se encuentra en /etc/sysconfig/nfs en RHEL).
Variable UDP NFS: puerto de LOCKD_UDPPORT (se encuentra en /etc/sysconfig/nfs en RHEL).
Variable TCP/UDP NFS: puerto de MOUNTD_PORT (se encuentra en /etc/sysconfig/nfs en RHEL).
Variable TCP/UDP NFS: puerto de STATD_PORT (se encuentra en /etc/sysconfig/nfs en RHEL).

Para ver otros puertos que samba usa, consulte Uso de puertos de Samba.

Por el contrario, puede agregar el nombre del servicio en Linux como una excepción en lugar del puerto. Por ejemplo, use high-availability para Pacemaker. Consulte su distribución para conocer los nombres adecuados. En RHEL, por ejemplo, el comando que se va a agregar en Pacemaker es:

sudo firewall-cmd --permanent --add-service=high-availability

Documentación del firewall

Nota

A partir de SQL Server 2025 (17.x), no se admite SUSE Linux Enterprise Server (SLES).

Instalación de paquetes de SQL Server para disponibilidad

En una instalación de SQL Server basada en Windows, algunos componentes se instalan incluso cuando se trata de una instalación de motor básica, mientras que otros no. En Linux, solo se instala el motor de SQL Server como parte del proceso de instalación. Todo lo demás es opcional. En el caso de las instancias de alta disponibilidad de SQL Server en Linux, se deben instalar dos paquetes con SQL Server:

  • Agente SQL Server (mssql-server-agent)
  • el paquete de alta disponibilidad (HA) (mssql-server-ha)

Aunque el Agente SQL Server es técnicamente opcional, es el programador predeterminado para los trabajos de SQL Server y es necesario mediante el trasvase de registros, por lo que se recomienda la instalación.

En SQL Server 2017 (14.x) con CU 4 y versiones posteriores, Agente SQL Server se incluye en el paquete motor de base de datos, pero aún necesita habilitarlo. En las instalaciones basadas en Windows, el Agente SQL Server no es opcional.

Nota

El Agente SQL Server es el programador de trabajos integrado para SQL Server. Se usa para programar tareas como copias de seguridad y mantenimiento rutinario. En Windows, el Agente SQL Server se ejecuta como un servicio independiente. En Linux, se ejecuta en el contexto de SQL Server.

Al configurar grupos de disponibilidad o FCI en una configuración basada en Windows, son compatibles con clústeres. La compatibilidad con clústeres significa que SQL Server tiene archivos DLL de recurso específicos que un WSFC conoce (sqagtres.dll y sqsrvres.dll para las instancias de clúster de conmutación por error; hadrres.dll para los grupos de disponibilidad) y que el WSFC usa para asegurarse de que la funcionalidad de agrupación en clúster de SQL Server funciona y lo hace correctamente.

Dado que la agrupación en clústeres es externa no solo por lo que respecta a SQL Server, sino también a Linux, Microsoft tuvo que codificar el equivalente de un archivo DLL de recurso para las implementaciones de grupos de disponibilidad o instancias de clúster de conmutación por error basadas en Linux. Este recurso es el mssql-server-ha paquete, también conocido como agente de recursos de SQL Server para Pacemaker. Para instalar el paquete mssql-server-ha, consulte Implementación de un clúster de Pacemaker para SQL Server en Linux.

En Linux, Full-Text Search (mssql-server-fts) e Integration Services (mssql-server-is) son paquetes opcionales de SQL Server y no son necesarios para un FCI (Failover Cluster Instance) o un AG (Grupo de Disponibilidad).

Asociados de alta disponibilidad y recuperación ante desastres de SQL Server

Para proporcionar alta disponibilidad y recuperación ante desastres para los servicios de SQL Server, elija entre una amplia variedad de herramientas líderes del sector. En esta sección se destacan las compañías asociadas de Microsoft que cuentan con soluciones de alta disponibilidad y recuperación ante desastres compatibles con Microsoft SQL Server.

Asociado Descripción
DH2i DxEnterprise es una solución de administración de disponibilidad para entornos de contenedor, Linux y Windows. Admite alta disponibilidad, reduce el tiempo de inactividad planeado y no planeado y simplifica la administración de recursos físicos y lógicos.

- Implementación de grupos de disponibilidad con DH2i DxEnterprise en Kubernetes
- Tutorial: Configuración de un grupo de disponibilidad Always On de tres nodos con DH2i DxEnterprise
HPE Serviceguard HPE SGLX A ofrece opciones de recuperación y supervisión contextuales para cargas de trabajo de instancias de clúster de conmutación por error y grupos de disponibilidad Always On. Maximice el tiempo de actividad con HPE SGLX sin comprometer el rendimiento ni la integridad de los datos.

- Tutorial: Configuración de un grupo de disponibilidad Always On de tres nodos con HPE Serviceguard para Linux.
Pacemaker Pacemaker es un administrador de recursos de clúster de alta disponibilidad código abierto. Con Corosync, un sistema de comunicación de grupo de código abierto, Pacemaker puede detectar errores de componentes y organizar los procedimientos de conmutación por error necesarios para minimizar las interrupciones en las aplicaciones.

- Pacemaker para grupos de disponibilidad e instancias de clúster de conmutación por error en Linux
- Implementación de un clúster de Pacemaker para SQL Server en Linux