Compartilhar via


SQL Server on Linux: Problemas conhecidos

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

Geral

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

Problema Resolução
O comprimento do nome do host em que SQL Server está instalado precisa ter 15 caracteres ou menos. Altere o nome em /etc/hostname para um valor de 15 caracteres ou menos.
Definir manualmente o tempo do sistema para trás no tempo faz com que SQL Server pare de atualizar o tempo interno do sistema dentro do Database Engine. Reinicie SQL Server.
Há suporte apenas para instalações de instância única. Se quiser ter mais de uma instância em um determinado host, considere usar máquinas virtuais ou contêineres do Linux.
SQL Server Configuration Manager não consegue se conectar a SQL Server on Linux. Nenhum.
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 é assinado usando SHA256. O SQL Server Database Engine não valida corretamente o .dll assinado.
O comando Redefinir senha usando mssql-conf lança 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 de senha foi bem-sucedida e você pode continuar usando a nova senha.

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

Bancos de dados

  • O banco de dados master não pode ser movido com o utilitário mssql-conf. Outros bancos de dados do sistema podem ser movidos usando 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 on Linux. Isso resulta em falhas de conexão ao tentar se conectar a SQL Server e problemas ao estabelecer conexões entre réplicas em grupos de alta disponibilidade.

    Para resolver esse problema, modifique o script de configuração mssql.conf para SQL Server on Linux desabilitar conjuntos de criptografia problemáticos seguindo estas etapas:

    1. Adicione a seguinte seção a /var/opt/mssql/mssql.conf. O símbolo de exclamação (!) nega a expressão. Isso informa ao OpenSSL para não usar o conjunto de criptografia a seguir.

      [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
      
  • Bancos de dados do SQL Server 2014 (12.x) em Windows que usam In-Memory OLTP não podem ser restaurados 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. Em seguida, você pode movê-lo para o SQL Server no Linux, utilizando backup/restauração ou as opções de desanexar/anexar.

  • A permissão do usuário ADMINISTER BULK OPERATIONS não é compatível no Linux no momento.

  • Backups compactados por TDE que são feitos usando o SQL Server 2019 (15.x) CU 16 e versões posteriores não podem ser restaurados para versões anteriores do SQL Server 2019 (15.x). Para obter mais informações, confira CORREÇÃO: o erro 3241 ocorre durante a execução de RESTORE LOG ou RESTORE DATABASE.

    Backups compactados com Transparent Data Encryption (TDE) que são feitos usando versões anteriores do SQL Server 2019 (15.x) ainda podem ser restaurados usando o SQL Server 2019 (15.x) CU 16 e versões posteriores.

  • Ao instalar o SQL Server 2022 (16.x) no Ubuntu 22.04, você poderá ver a seguinte mensagem de erro: Failed to start Microsoft SQL Server Database Engine. 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

Os recursos que envolvem conexões TCP de saída no processo do sqlservr, como os servidores vinculados, PolyBase ou grupos de disponibilidade, talvez não funcionem se ambas as seguintes condições forem atendidas:

  • 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 em C que chama socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) deve ser bem-sucedido – o syscall deve retornar um fd != -1 e não 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 DDL no ALTER AVAILABILITY GROUP JOIN secundário falhará após cinco minutos com um 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

Aplica-se a: SQL Server 2022 (16.x) apenas.

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.

  • Localize somente os diretórios /var/opt/mssql 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.

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: o codec 'ascii' não pode codificar o caractere u'\xf1' na posição 8: ordinal fora do intervalo (128)

    Se não for possível usar a codificação UTF-8, você deverá executar a instalação usando a variável de ambiente MSSQL_LCID para especificar sua escolha de idioma.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • Quando você executa mssql-conf setup e executa uma instalação não em inglês de SQL Server, caracteres estendidos incorretos podem ser exibidos após o texto localizado: "Configurando 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].

    Esta cadeia de caracteres é exibida somente para fins informativos, não afeta a instalação bem-sucedida do SQL Server de forma alguma.

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.

SQL Server Integration Services (SSIS)

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

Os pacotes do Integration Services podem usar as conexões ODBC no Linux. Essa funcionalidade foi testada com o SQL Server e os drivers ODBC do MySQL, mas também deve funcionar com qualquer driver ODBC Unicode que observe a especificação ODBC. Durante o design, você pode fornecer um DSN ou uma cadeia de conexão para se 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.

Não há suporte para os seguintes recursos nesta versão ao executar 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
  • CDA (captura de dados de alterações)
  • Expansão do Integration Services
  • Azure Feature Pack para SSIS
  • Suporte para Hadoop e HDFS
  • Microsoft Connector para SAP BW

Para obter uma lista de componentes internos do SSIS que não têm suporte no momento ou que têm suporte com limitações, confira Limitações e problemas conhecidos do 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 on 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 da interface do usuário do SQL Server Management Studio que têm opções de Autenticação do Windows ou log de eventos do Windows não funcionam no Linux. Você ainda pode usar esses recursos com outras opções, como logons SQL Server.

  • O número de arquivos de log a serem retidos não pode ser modificado.

Alta disponibilidade e recuperação de desastre

Aplica-se a: SQL Server 2022 (16.x) somente.

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

Serviços de Machine Learning

Aplica-se a: Somente SQL Server 2022 (16.x).

Para pacotes do SQL Server 2022 (16.x) para RHEL 9 e Ubuntu 22.04, há alguns pré-requisitos a serem considerados cgroup-v1, antes de instalar os Serviços de Machine Learning.

  1. Como pré-requisito, cgroup-v1 precisa ser habilitado de acordo com Usar cgroupfs para gerenciar manualmente cgroups do 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 on Linux falha ao iniciar em computadores com arquitetura de CPU híbrida

Issue: Instâncias de SQL Server no Linux podem falhar a iniciar se o computador usar uma CPU de arquitetura híbrida Intel 12th Gen ou posterior, e o sistema operacional 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ê usar contêineres ou um hipervisor como Hyper-V em Windows (incluindo o WSL), você não será afetado.

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).