Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
masternã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 MOVEna 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.confpara SQL Server on Linux desabilitar conjuntos de criptografia problemáticos seguindo estas etapas: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-SHAReinicie 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 OPERATIONSnã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 FILEpara 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/cmdlineimprime a linha de comando de inicialização do kernel atual. A saída não deve conteripv6.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 umfd != -1e não falhar comEAFNOSUPPORT.
-
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=1da 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 definindonet.ipv6.conf.all.disable_ipv6 = 1na configuraçãosysctl(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 dosqlservrfuncionem.
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
fallocatee criação de arquivos esparsos, comuns nos sistemas de arquivos modernos.Localize somente os diretórios
/var/opt/mssqlna 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
nolockao 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_LCIDpara especificar sua escolha de idioma.sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setupQuando você executa
mssql-conf setupe 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.
Pesquisa de Texto Completo
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:
- Postagem no blog anunciando o suporte do SSIS para Linux.
- Instalar SQL Server Integration Services (SSIS) no Linux
- Extrair, transformar e carregar dados no Linux com o SSIS
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.
Como pré-requisito,
cgroup-v1precisa ser habilitado de acordo com Usar cgroupfs para gerenciar manualmente cgroups do Red Hat Enterprise Linux 9 da Red Hat.Em seguida, siga as instruções para instalar o SQL Machine Learning Services conforme documentado.
Desabilite o isolamento do namespace de rede.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1Reinicie o serviço do
mssql-launchpaddpara 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).