SQL Server em Linux: Problemas conhecidos

As seções a seguir descrevem problemas conhecidos com SQL Server em Linux.

Geral

A tabela a seguir lista os problemas mais comuns com SQL Server em Linux.

Problema Resolução
O comprimento do nome do host onde o SQL Server está instalado deve ser de 15 caracteres ou menos. Altere o nome em /etc/hostname para um valor com 15 caracteres ou menos.
Ajustar manualmente o relógio do sistema para trás faz o SQL Server parar de atualizar o tempo interno do sistema no Mecanismo de Banco de Dados. Reinicie SQL Server.
Há suporte apenas para instalações de instância única. Para ter mais de uma instância em um determinado host, considere usar máquinas virtuais ou contêineres Linux.
SQL Server Configuration Manager não consegue se conectar a SQL Server em Linux. não há suporte para Gerenciador de Configurações no Linux. Use mssql-conf para gerenciar SQL Server em Linux em vez disso.
O idioma padrão da conta sa é inglês. Altere o idioma da conta sa com a instrução ALTER LOGIN.
O provedor OLE DB registra em log o seguinte aviso:

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.
Nenhuma ação é necessária. O provedor OLE DB utiliza uma assinatura SHA256. O Mecanismo de Banco de Dados do SQL Server não valida corretamente o .dll assinado.
O comando de redefinição de senha em mssql-conf gera o seguinte erro:

Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information.
A mensagem de erro é um falso negativo. A redefinição da senha é bem-sucedida, e você pode continuar usando a nova senha.

Aplica-se somente a: imagens de contêiner do SQL Server 2022 (16.x).

Bancos de dados

  • Você não pode mover o master banco de dados com a mssql-conf utilidade. Você pode mover outros bancos de dados do sistema com mssql-conf.

  • Ao restaurar um banco de dados com backup em SQL Server no Windows, você deve usar a cláusula WITH MOVE na instrução Transact-SQL. Para obter mais informações, consulte Igra um banco de dados SQL Server de Windows para Linux usando backup e restauração.

  • Determinados algoritmos (conjuntos de criptografia) para TLS (Transport Layer Security) não funcionam corretamente com SQL Server em Linux. Esse comportamento causa falhas de conexão quando você tenta se conectar ao SQL Server e problemas para estabelecer conexões entre réplicas em grupos de alta disponibilidade.

    Para resolver esse problema, modifique o mssql.conf script de configuração do SQL Server em Linux para desabilitar suítes de cifras problemáticas:

    1. Adicione a seguinte seção a /var/opt/mssql/mssql.conf. O símbolo de exclamação (!) nega a expressão. Esse sinal de negação instrui o OpenSSL a não usar a suíte de cifras que vem em seguida.

      [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 com o comando a seguir.

      sudo systemctl restart mssql-server
      
  • Você não pode restaurar bancos de dados do SQL Server 2014 (12.x) no Windows que usam In-Memory OLTP no SQL Server no Linux. Se o banco de dados SQL Server 2014 (12.x) usar In-Memory OLTP, primeiro atualize os bancos de dados para uma versão mais recente do SQL Server no Windows. Depois, mova-o para o SQL Server em Linux, com backup/restauração ou desanexação/anexação.

  • O Linux atualmente não suporta a ADMINISTER BULK OPERATIONS permissão do usuário.

  • Você não pode restaurar backups compactados com Transparent Data Encryption (TDE), criados com o SQL Server 2019 (15.x) CU 16 e versões posteriores, em versões anteriores de CU do SQL Server 2019 (15.x). Para obter mais informações, consulte CORREÇÃO: o erro 3241 ocorre durante a execução de RESTORE LOG ou RESTOREDATABASE.

    Você ainda pode usar o SQL Server 2019 (15.x) CU 16 e versões posteriores para restaurar backups compactados com TDE feitos com versões anteriores de CU do SQL Server 2019 (15.x).

  • Ao instalar o SQL Server 2022 (16.x) no Ubuntu 22.04, você poderá ver a seguinte mensagem de erro: Failed to start Mecanismo de Banco de Dados do Microsoft SQL Server. Se você analisar o log de erros, verá um caminho incorreto para os bancos de dados do sistema.

    Para solucionar esse problema, inicie a instância no modo de usuário único e use ALTER DATABASE ... MODIFY FILE para mover o local configurado dos bancos de dados do sistema para o local padrão /var/opt/mssql/data. Depois de fazer essa alteração, reinicie o serviço.

Rede

Recursos que envolvem conexões TCP de saída do sqlservr processo, como servidores vinculados, PolyBase ou grupos de disponibilidade, podem não funcionar se ambas as seguintes condições se aplicarem:

  • O servidor de destino é especificado como um nome de host e não como um endereço IP.

  • A instância de origem tem IPv6 desabilitado no kernel. Para verificar se o sistema tem o IPv6 habilitado no kernel, todos os testes a seguir precisam ser aprovados:

    • cat /proc/cmdline imprime a linha de comando de inicialização do kernel atual. A saída não deve conter ipv6.disable=1.
    • O diretório /proc/sys/net/ipv6/ precisa existir.
    • Um programa C que chame socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) deve ter sucesso. A chamada de sistema deve retornar um fd != -1 e não pode falhar com EAFNOSUPPORT.

O erro exato depende do recurso. Para servidores vinculados, você verá um erro de tempo limite de logon. Para grupos de disponibilidade, o ALTER AVAILABILITY GROUP JOIN DDL no secundário falha após cinco minutos com erro download configuration timeout.

Para encontrar uma solução alternativa para esse problema, faça uma das seguintes opções:

  • Use IPs em vez de nomes do host para especificar o destino da conexão TCP.

  • Habilite o IPv6 no kernel removendo ipv6.disable=1 da linha de comando de inicialização. O método depende da distribuição Linux e do bootloader, como o grub. Se você deseja que o IPv6 seja desabilitado, ainda pode desativá-lo definindo net.ipv6.conf.all.disable_ipv6 = 1 na configuração sysctl (por exemplo, /etc/sysctl.conf). Embora essa configuração impeça que o adaptador de rede do sistema obtenha um endereço IPv6, ela permite que os recursos do sqlservr funcionem.

O TLS 1.3 não tem suporte no SQL Server 2022

Vale apenas: SQL Server 2022 (16.x).

Embora o TLS 1.3 tenha suporte no SQL Server 2022 (16.x) para Windows, você deve usar o TLS 1.2 no Linux.

Observação

O TLS 1.3 tem suporte para SQL Server 2025 (17.x) no Ubuntu 22.04, Ubuntu 24.04, RHEL 9 e RHEL 10. O TLS 1.3 está habilitado por padrão.

NFS (sistema de arquivos de rede)

Se você usar compartilhamentos remotos NFS (Network File System) em produção, observe os seguintes requisitos de suporte:

  • Use o NFS versão 4.2 ou versões posteriores. As versões mais antigas do NFS não dão suporte aos recursos necessários, como fallocate e criação de arquivos esparsos, comuns nos sistemas de arquivos modernos.

  • Apenas os /var/opt/mssql diretórios são suportados na montagem NFS. Outros arquivos, como os binários do sistema SQL Server, não têm suporte.

  • Verifique se os clientes NFS usam a opção nolock ao montar o compartilhamento remoto.

Conectividade IPv6 com autenticação de Microsoft Entra

Se o servidor ou contêiner estiver habilitado para IPv6, verifique se os endereços IPv6 são acessíveis e roteáveis. Se o IPv6 não estiver totalmente configurado, as solicitações de autenticação para Microsoft Entra ID poderão falhar devido a pontos de extremidade IPv6 inacessíveis.

Para controlar o comportamento de resolução de DNS IPv6 no SQL Server 2022 19 e versões posteriores, defina a opção network.ipv6dnsrecordslimit em mssql-conf. Para obter mais informações, consulte network.ipv6dnsrecordslimit.

Localização

  • Se a sua localidade não for inglês (en_us) durante a instalação, você precisará usar a codificação UTF-8 em sua sessão/terminal de Bash. Se você usar a codificação ASCII, poderá ver um erro semelhante ao seguinte resultado:

    UnicodeEncodeError: 'ascii' codec não pode codificar o caractere u'\xf1' na posição 8: ordinal não está no intervalo(128)

    Se você não conseguir usar codificação UTF-8, execute o setup com a MSSQL_LCID variável ambiente para especificar sua escolha de linguagem.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • Quando você executa mssql-conf setup e realiza uma instalação do SQL Server em idioma diferente do inglês, talvez você veja caracteres estendidos incorretos após o texto localizado "Configuring SQL Server...". Ou, para instalações não baseadas em latim, a frase pode estar completamente ausente. A frase ausente deve exibir a seguinte cadeia de caracteres localizada:

    O PID de licenciamento foi processado com êxito. A nova edição é [<Nome> edição].

    Essa string aparece apenas para fins informativos e não afeta a instalação do SQL Server.

Nem todos os filtros estão disponíveis com esta versão, incluindo filtros para documentos Microsoft Office. Para obter uma lista de filtros com suporte, consulte Instalar pesquisa de SQL Server Full-Text no Linux.

SSIS (SQL Server Integration Service)

O pacote mssql-server-is não é compatível com o SLES (SUSE Linux Enterprise Server). O pacote é suportado no Ubuntu e Red Hat Enterprise Linux (RHEL).

Os pacotes do Integration Services podem usar as conexões ODBC no Linux. Essa funcionalidade funciona com os drivers SQL Server e MySQL ODBC, e também deve funcionar com qualquer driver Unicode ODBC que atenda à especificação ODBC. No momento do projeto, forneça uma DSN ou uma cadeia de conexão para conectar aos dados ODBC; você também pode usar autenticação do Windows. Para saber mais, confira a postagem no blog que anunciou o suporte do ODBC para Linux.

Esta versão não suporta os seguintes recursos quando você executa pacotes SSIS no Linux:

  • Integration Services Banco de dados de catálogo
  • Execução agendada do pacote por SQL Server Agent
  • Autenticação Windows
  • Componentes de terceiros
  • Captura de dados de alteração (CDC)
  • Scale Out do Integration Services
  • Azure Feature Pack para SSIS
  • Suporte para Hadoop e HDFS
  • Conector do Microsoft para SAP BW

Para uma lista de componentes SSIS embutidos com suporte limitado ou nenhum, veja Suporte a recursos e considerações para SQL Server Integration Services (SSIS) no Linux.

Para saber mais sobre o SSIS no Linux, confira os seguintes artigos:

SQL Server Management Studio (SSMS)

As limitações a seguir se aplicam a SQL Server Management Studio em Windows conectados a SQL Server em Linux.

  • Não há suporte para planos de manutenção.

  • Não há suporte para o MDW (Data Warehouse de gerenciamento) e o coletor de dados no SQL Server Management Studio.

  • Os componentes de interface do usuário do SQL Server Management Studio que têm opções de Autenticação do Windows ou de log de eventos do Windows não funcionam com o Linux. Você ainda pode usar esses recursos com outras opções, como logons SQL Server.

  • Você não pode modificar o número de arquivos de log a manter.

Alta disponibilidade e recuperação de desastre

Vale apenas: SQL Server 2022 (16.x).

Quando você executa o SQL Server 2022 (16.x) e versões anteriores, no RHEL 9 como um aplicativo confinado com o SELinux habilitado, o agrupamento de clusters do Pacemaker pode não funcionar conforme esperado. Você deve instalar o SQL Server 2022 (16.x) como um aplicativo livre com o SELinux ativado para usar as capacidades de clustering do Pacemaker. Esse problema é resolvido no SQL Server 2022 (16.x) CU 17.

Serviços de Machine Learning

Vale apenas: SQL Server 2022 (16.x).

Para os pacotes SQL Server 2022 (16.x) para RHEL 9 e Ubuntu 22.04, considere esses cgroup-v1 pré-requisitos antes de instalar o Machine Learning Services.

  1. Como pré-requisito, ative cgroup-v1, conforme documentado em Uso do cgroupfs para gerenciar manualmente os cgroups no Red Hat Enterprise Linux 9 da Red Hat.

  2. Em seguida, siga as instruções para instalar o SQL Machine Learning Services conforme documentado.

  3. Desabilite o isolamento do namespace de rede.

    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Reinicie o serviço do mssql-launchpadd para que as alterações entrem em vigor.

    sudo systemctl restart mssql-launchpadd
    

Problemas conhecidos no SQL Server 2025

Os problemas a seguir afetam SQL Server 2025 (17.x).

SQL Server em Linux falha ao iniciar em computadores com arquitetura de CPU híbrida

Problema: pode haver falha na inicialização das instâncias do SQL Server no Linux se o computador usar uma CPU de arquitetura híbrida Intel 12ª Geração ou posterior, e o sistema operacional do host for Linux.

Você pode ver uma mensagem de erro semelhante ao exemplo abaixo:

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

Se você quiser usar um sistema operacional host Linux, poderá contornar o problema desabilitando núcleos de eficiência (núcleos E) em seu BIOS. Se você usa containers ou um hipervisor como Hyper-V no Windows (incluindo WSL), o problema não te afeta.

Modelos ONNX locais sem suporte em sistemas operacionais Linux

CREATE EXTERNAL MODEL modelos ONNX locais hospedados diretamente no SQL Server não estão disponíveis no momento para Linux no SQL Server 2025 (17.x).