SQL Server en Linux: problemas conocidos

En las secciones siguientes se describen los problemas conocidos con SQL Server en Linux.

General

En la tabla siguiente se enumeran los problemas más comunes con SQL Server en Linux.

Problema Resolución
La longitud del nombre de host donde se instala SQL Server debe ser de 15 caracteres o menos. Cambia el nombre /etc/hostname a un valor de 15 caracteres o más corto.
Configurar manualmente la hora del sistema hacia atrás hace que SQL Server deje de actualizar la hora interna del sistema dentro del Motor de base de datos. Reinicie SQL Server.
Solo se admiten las instalaciones de instancia única. Para tener más de una instancia en un host dado, considera usar máquinas virtuales o contenedores Linux.
Administrador de configuración de SQL Server no se puede conectar a SQL Server en Linux. Administrador de configuración no se admite en Linux. Use mssql-conf para administrar SQL Server en Linux en su lugar.
El idioma predeterminado de la cuenta sa es inglés. Cambie el idioma de la cuenta sa con la instrucción ALTER LOGIN.
El proveedor OLE DB registra la advertencia siguiente:

Failed to verify the Authenticode signature of 'C:\binn\msoledbsql.dll'. Signature verification of SQL Server DLLs will be skipped. Genuine copies of SQL Server are signed. Failure to verify the Authenticode signature might indicate that this isn't an authentic release of SQL Server. Install a genuine copy of SQL Server or contact customer support.
No hace falta realizar ninguna acción. El proveedor de OLE DB utiliza una firma SHA256. El Motor de base de datos de SQL Server no valida el .dll firmado correctamente.
El comando de restablecer contraseña en mssql-conf muestra el siguiente error:

Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information.
El mensaje de error es un falso negativo. El restablecimiento de contraseña funciona y puedes seguir usando la nueva contraseña.

Aplica a: solo imágenes de contenedor de SQL Server 2022 (16.x).

Bases de datos

  • No puedes mover la master base de datos con la mssql-conf utilidad. Puedes mover otras bases de datos del sistema con mssql-conf.

  • Al restaurar una base de datos de la que se ha realizado una copia de seguridad en SQL Server en Windows, debe usar la cláusula WITH MOVE en la instrucción Transact-SQL. Para obtener más información, consulte Migrar una base de datos de SQL Server de Windows a Linux mediante copias de seguridad y restauración.

  • Algunos algoritmos (conjuntos de cifrado) para la seguridad de la capa de transporte (TLS) no funcionan correctamente con SQL Server en Linux. Este comportamiento provoca fallos de conexión cuando intentas conectarte a SQL Server y problemas para establecer conexiones entre réplicas en grupos de alta disponibilidad.

    Para resolver este problema, modifica el mssql.conf script de configuración de SQL Server en Linux para desactivar los conjuntos de cifrado problemáticos:

    1. Agregue la siguiente sección a /var/opt/mssql/mssql.conf. El símbolo de exclamación (!) niega la expresión. Esta negación indica a OpenSSL que no utilice el conjunto de cifrados que sigue.

      [network]
      tlsciphers=AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!ECDHE-RSA-AES128-GCM-SHA256:!ECDHE-RSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES128-GCM-SHA256:!ECDHE-ECDSA-AES256-SHA384:!ECDHE-ECDSA-AES128-SHA256:!ECDHE-ECDSA-AES256-SHA:!ECDHE-ECDSA-AES128-SHA:!ECDHE-RSA-AES256-SHA384:!ECDHE-RSA-AES128-SHA256:!ECDHE-RSA-AES256-SHA:!ECDHE-RSA-AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-DSS-AES256-SHA256:!DHE-DSS-AES128-SHA256:!DHE-DSS-AES256-SHA:!DHE-DSS-AES128-SHA:!DHE-DSS-DES-CBC3-SHA:!NULL-SHA256:!NULL-SHA
      
    2. Reinicie SQL Server con el comando siguiente.

      sudo systemctl restart mssql-server
      
  • No puedes restaurar SQL Server bases de datos de 2014 (12.x) en Windows que usan In-Memory OLTP para SQL Server en Linux. Si la base de datos de SQL Server 2014 (12.x) usa In-Memory OLTP, actualice primero las bases de datos a una versión más reciente de SQL Server en Windows. Luego, muévelo a SQL Server en Linux, con copia de seguridad/restauración, o desvíalo/conecta.

  • Linux actualmente no soporta el ADMINISTER BULK OPERATIONS permiso de usuario.

  • No puedes restaurar copias de seguridad comprimidas con Cifrado de datos transparente (TDE) hechas con SQL Server 2019 (15.x), CU 16 y versiones posteriores a versiones anteriores de SQL Server 2019 (15.x). Para obtener más información, vea FIX: Error 3241 se produce durante la ejecución de RESTORE LOG o RESTOREDATABASE.

    Aún puedes usar SQL Server 2019 (15.x), CU 16 y versiones posteriores para restaurar copias de seguridad comprimidas en TDE, hechas con versiones anteriores de SQL Server 2019 (15.x).

  • Al instalar SQL Server 2022 (16.x) en Ubuntu 22.04, es posible que vea el siguiente mensaje de error: Failed to start Motor de base de datos de Microsoft SQL Server. Si revisa el registro de errores, verá una ruta de acceso incorrecta para las bases de datos del sistema.

    Para resolver el problema, inicie la instancia en modo de usuario único y use ALTER DATABASE ... MODIFY FILE para mover la ubicación configurada de las bases de datos del sistema a la ubicación predeterminada /var/opt/mssql/data. Después de hacer este cambio, reinicia el servicio.

Red

Las características que implican conexiones TCP salientes desde el sqlservr proceso, como servidores enlazados, PolyBase o grupos de disponibilidad, podrían no funcionar si se aplican ambas condiciones:

  • El servidor de destino se especifica como un nombre de host, y no como una dirección IP.

  • La instancia de origen tiene deshabilitado IPv6 en el kernel. Para verificar si el sistema tiene IPv6 habilitado en el kernel, todas las pruebas siguientes necesitan completarse sin errores:

    • cat /proc/cmdline imprime la línea de comandos de arranque del kernel actual. El resultado no tiene que contener ipv6.disable=1.
    • El directorio /proc/sys/net/ipv6/ debe existir.
    • Un programa C que llame socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) debería tener éxito. La llamada de sistema debe devolver un fd != -1 y no debe fallar con EAFNOSUPPORT.

El error exacto depende de la característica. En el caso de servidores vinculados, verá un error de tiempo de espera de inicio de sesión. Para los grupos de disponibilidad, el ALTER AVAILABILITY GROUP JOIN DDL en el secundario falla tras cinco minutos con un download configuration timeout error.

Para solucionar este problema, emplee una de las siguientes opciones:

  • Use direcciones IP en lugar de nombres de host para especificar el destino de la conexión TCP.

  • Habilite IPv6 en el kernel; para hacerlo, quite ipv6.disable=1 de la línea de comandos de arranque. El método depende de la distribución de Linux y el cargador de arranque que use (por ejemplo, grub). Si quiere deshabilitar IPv6, puede hacerlo si establece net.ipv6.conf.all.disable_ipv6 = 1 en la configuración de sysctl (por ejemplo, /etc/sysctl.conf). Aunque esta configuración impide que el adaptador de red del sistema obtenga una dirección IPv6, permite que funcionen las características de sqlservr.

TLS 1.3 no se admite en SQL Server 2022

Aplica a: SQL Server 2022 (16.x) solo.

Aunque TLS 1.3 se admite en SQL Server 2022 (16.x) para Windows, debe usar TLS 1.2 en Linux.

Nota:

TLS 1.3 es compatible con SQL Server 2025 (17.x) en Ubuntu 22.04, Ubuntu 24.04, RHEL 9 y RHEL 10. TLS 1.3 está habilitado de forma predeterminada.

Sistema de archivos de red (NFS)

Si usa recursos compartidos remotos de NFS (Network File System) en producción, tenga en cuenta los siguientes requisitos de compatibilidad:

  • Use NFS versión 4.2 o versiones posteriores. Las versiones anteriores de NFS no admiten las características necesarias, como fallocate y la creación de archivos dispersos, que son comunes a los sistemas de archivos modernos.

  • Solo los /var/opt/mssql directorios son compatibles con el montaje NFS. No se admiten otros archivos, como los archivos binarios del sistema SQL Server.

  • Asegúrese de que los clientes de NFS usen la opción nolock al montar el recurso compartido remoto.

Conectividad IPv6 con autenticación de Microsoft Entra

Si el servidor o contenedor está habilitado para IPv6, asegúrese de que las direcciones IPv6 sean accesibles y enrutables. Si IPv6 no está totalmente configurado, es posible que se produzca un error en las solicitudes de autenticación a Microsoft Entra ID debido a puntos de conexión IPv6 inaccesibles.

Para controlar el comportamiento de la resolución DNS de IPv6 en SQL Server 2022 CU 19 y versiones posteriores, establezca la network.ipv6dnsrecordslimit opción en mssql-conf. Para obtener más información, consulte network.ipv6dnsrecordslimit.

Localización

  • Si usa una configuración regional distinta del inglés (en_us) durante la configuración, tendrá que usar la codificación UTF-8 en el terminal o en la sesión de Bash. Si usa la codificación ASCII, puede que se muestre un error parecido a la siguiente salida:

    UnicodeEncodeError: el códec 'ascii' no puede codificar el carácter u'\xf1' en la posición 8: ordinal no está dentro del rango de(128)

    Si no puedes usar codificación UTF-8, ejecuta setup con la MSSQL_LCID variable environment para especificar tu elección de lenguaje.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • Cuando ejecutas mssql-conf setup y realizas una instalación de SQL Server en otro idioma, puede que veas caracteres extendidos incorrectos tras el texto localizado, "Configuring SQL Server... ". O bien, para instalaciones basadas en alfabetos no latinos, es posible que la frase falte por completo. La frase que falta tendría que mostrar la siguiente cadena localizada:

    El PID de licencias se procesó correctamente. La nueva edición es [Edición <nombre>].

    Esta cadena aparece solo con fines informativos y no afecta a la instalación de SQL Server.

No todos los filtros están disponibles con esta versión, incluidos los filtros de Microsoft Office documentos. Para obtener una lista de los filtros admitidos, consulte Install SQL Server Full-Text Search en Linux.

SQL Server Integration Services (SSIS)

No se admite el paquete mssql-server-is en SUSE Linux Enterprise Server (SLES). El paquete está compatible con Ubuntu y Red Hat Enterprise Linux (RHEL).

Los paquetes de Integration Services pueden utilizar conexiones ODBC en Linux. Esta funcionalidad funciona con los controladores SQL Server y MySQL ODBC, y también debería funcionar con cualquier controlador Unicode ODBC que cumpla la especificación ODBC. En el momento de diseño, proporciona una DSN o una cadena de conexión para conectar a los datos ODBC; también puedes usar autenticación de Windows. Para obtener más información, vea la entrada de blog que anuncia la compatibilidad con ODBC en Linux.

Esta versión no soporta las siguientes funciones cuando ejecutas paquetes SSIS en Linux:

  • Integration Services Base de datos del catálogo
  • Ejecución programada de paquetes por Agente SQL Server
  • Autenticación de Windows
  • Componentes de terceros
  • Captura de cambios de datos (CDC)
  • Escalabilidad horizontal de Servicios de integración
  • Azure Feature Pack para SSIS
  • Compatibilidad con Hadoop y HDFS
  • conector de Microsoft para SAP BW

Para una lista de componentes SSIS integrados con soporte limitado o nulo, consulte Soporte de funciones y consideraciones para SQL Server Integration Services (SSIS) en Linux.

Para obtener más información sobre SSIS en Linux, vea los artículos siguientes:

SQL Server Management Studio (SSMS)

Las siguientes limitaciones se aplican a SQL Server Management Studio en Windows conectados a SQL Server en Linux.

  • No se admiten los planes de mantenimiento.

  • No se admite el Data Warehouse de Gestión (MDW) ni el recopilador de datos en SQL Server Management Studio.

  • SQL Server Management Studio componentes de interfaz de usuario que tienen Windows autenticación o opciones de registro de eventos de Windows no funcionan con Linux. Todavía puede usar estas características con otras opciones, como los inicios de sesión de SQL Server.

  • No puedes modificar el número de archivos de registro para conservarlos.

Alta disponibilidad y recuperación ante desastres

Aplica a: SQL Server 2022 (16.x) solo.

Al ejecutar SQL Server 2022 (16.x) CU 16 y versiones anteriores, en RHEL 9 como una aplicación confinada con SELinux habilitada, es posible que la agrupación en clústeres de Pacemaker no funcione según lo previsto. Debes instalar SQL Server 2022 (16.x) como una aplicación libre con SELinux activado para aprovechar las capacidades de clustering de Pacemaker. Este problema se resuelve en SQL Server 2022 (16.x) CU 17.

Servicios de Machine Learning

Aplica a: SQL Server 2022 (16.x) solo.

Para los paquetes de SQL Server 2022 (16.x) para RHEL 9 y Ubuntu 22.04, ten en cuenta estos cgroup-v1 requisitos previos antes de instalar Machine Learning Services.

  1. Como requisito previo, habilita cgroup-v1 , como se documenta en Using cgroupfs, para gestionar manualmente cgroups Red Hat Enterprise Linux 9 desde Red Hat.

  2. A continuación, siga las instrucciones para instalar SQL Machine Learning Services como se documenta.

  3. Deshabilite el aislamiento del espacio de nombres de red.

    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Reinicie el servicio mssql-launchpadd para que los cambios entren en vigor.

    sudo systemctl restart mssql-launchpadd
    

Problemas conocidos de SQL Server 2025

Los siguientes problemas afectan a SQL Server 2025 (17.x).

SQL Server en Linux no se puede iniciar en máquinas con arquitectura de CPU híbrida

Issue: es posible que las instancias de SQL Server en Linux no se inicien si la máquina usa una CPU de arquitectura híbrida intel 12th Gen o posterior y el sistema operativo host es Linux.

Es posible que vea un mensaje de error similar al siguiente resultado:

Reason: 0x00000004 Message: ASSERT: Expression=(result * DrtlGetProcessorCoreCount() == DrtlGetProcessorCount()) File=LibOS\Windows\Kernel\SQLPal\common\dk\sos\src\sosnumap.cpp Line=208

Si desea usar un sistema operativo host linux, puede solucionar el problema deshabilitando los núcleos de eficiencia (núcleos E) en el BIOS. Si usas contenedores o un hipervisor como Hyper-V en Windows (incluyendo WSL), el problema no te afecta.

Los modelos ONNX locales no se admiten en sistemas operativos Linux

CREATE EXTERNAL MODEL los modelos ONNX locales hospedados directamente en la SQL Server no están disponibles actualmente para Linux en SQL Server 2025 (17.x).