Configurar o SQL Server em Linux com a ferramenta mssql-conf

Aplica-se a:SQL Server – Linux

O mssql-conf é um script de configuração instalado com o SQL Server 2017 (14.x) para o Red Hat Enterprise Linux, o SUSE Linux Enterprise Server e o Ubuntu. Ele modifica o mssql.conf file no qual os valores de configuração estão armazenados. Você pode usar o utilitário mssql-conf para definir os seguintes parâmetros:

Parâmetro Descrição
Agente Habilite o SQL Server Agent.
Autenticar com o Windows Configurações para autenticação do Windows Server Active Directory.
Ordenação Definir uma nova ordenação para o SQL Server em Linux.
Comentários do cliente Escolher se o SQL Server envia ou não comentários à Microsoft.
Perfil do Database Mail Definir o perfil padrão do Database Mail para o SQL Server em Linux.
Diretório de dados padrão Alterar o diretório padrão para novos arquivos de dados de banco de dados do SQL Server (.mdf).
Diretório de log padrão Alterar o diretório padrão para novos arquivos de log de banco de dados do SQL Server (.ldf).
Diretório padrão do banco de dados mestre Alterar o diretório padrão para o banco de dados master e os arquivos de log.
Nome padrão do arquivo de banco de dados mestre Altera o nome dos arquivos de banco de dados master.
Diretório de despejo padrão Alterar o diretório padrão para novos despejos de memória e outros arquivos de solução de problemas.
Diretório de log de erros padrão Altera o diretório padrão para novos arquivos do log de erros do SQL Server, do rastreamento do Profiler padrão, do XE da sessão de integridade do sistema e do XE da sessão do Hekaton.
Diretório de backup padrão Alterar o diretório padrão para novos arquivos de backup.
Tipo de despejo Escolher o tipo de arquivo de despejo de memória de despejo a ser coletado.
Edição Definir a edição do SQL Server.
Alta disponibilidade Habilitar grupos de disponibilidade.
Diretório de auditoria local Definir um diretório para adicionar arquivos de auditoria local.
Localidade Definir a localidade a ser usada pelo SQL Server.
Limite de memória Definir o limite de memória para o SQL Server.
Configurações de rede Configurações de rede adicionais para SQL Server.
Coordenador de Transações Distribuídas da Microsoft Configurar e solucionar problemas do MSDTC no Linux.
Porta TCP Alterar a porta em que o SQL Server escuta conexões.
TLS Configurar o protocolo TLS.
Sinalizadores de rastreamento Definem os sinalizadores de rastreamento que serão usados pelo serviço.

mssql-conf é um script de configuração que é instalado com o SQL Server 2019 (15.x) para Red Hat Enterprise Linux, SUSE Linux Enterprise Server e Ubuntu. Você pode usar esse utilitário para definir os seguintes parâmetros:

Parâmetro Descrição
Agente Habilitar o SQL Server Agent
Autenticar com o Windows Configurações para autenticação do Windows Server Active Directory.
Ordenação Definir uma nova ordenação para o SQL Server em Linux.
Comentários do cliente Escolher se o SQL Server envia ou não comentários à Microsoft.
Perfil do Database Mail Definir o perfil padrão do Database Mail para o SQL Server em Linux.
Diretório de dados padrão Alterar o diretório padrão para novos arquivos de dados de banco de dados do SQL Server (.mdf).
Diretório de log padrão Alterar o diretório padrão para novos arquivos de log de banco de dados do SQL Server (.ldf).
Diretório padrão de arquivos de banco de dados mestre Alterar o diretório padrão para os arquivos do banco de dados master na instalação existente do SQL.
Nome padrão do arquivo de banco de dados mestre Altera o nome dos arquivos de banco de dados master.
Diretório de despejo padrão Alterar o diretório padrão para novos despejos de memória e outros arquivos de solução de problemas.
Diretório de log de erros padrão Altera o diretório padrão para novos arquivos do log de erros do SQL Server, do rastreamento do Profiler padrão, do XE da sessão de integridade do sistema e do XE da sessão do Hekaton.
Diretório de backup padrão Alterar o diretório padrão para novos arquivos de backup.
Tipo de despejo Escolher o tipo de arquivo de despejo de memória de despejo a ser coletado.
Edição Definir a edição do SQL Server.
Alta disponibilidade Habilitar grupos de disponibilidade.
Diretório de auditoria local Definir um diretório para adicionar arquivos de auditoria local.
Localidade Definir a localidade a ser usada pelo SQL Server.
Limite de memória Definir o limite de memória para o SQL Server.
Coordenador de Transações Distribuídas da Microsoft Configurar e solucionar problemas do MSDTC no Linux.
Serviços de Machine Learning Aceitar os EULAs de R e Python para pacotes mlservices. Aplica-se somente ao SQL Server 2019 (15.x).
Configurações de rede Configurações de rede adicionais para SQL Server.
outboundnetworkaccess Habilitar o acesso à rede para extensões Java, R e Python dos Serviços de Machine Learning.
Porta TCP Alterar a porta em que o SQL Server escuta conexões.
TLS Configurar o protocolo TLS.
Sinalizadores de rastreamento Definem os sinalizadores de rastreamento que serão usados pelo serviço.

mssql-conf é um script de configuração instalado com o SQL Server 2022 (16.x) para o Red Hat Enterprise Linux e o Ubuntu. Você pode usar esse utilitário para definir os seguintes parâmetros:

Parâmetro Descrição
Agente Habilitar o SQL Server Agent
Autenticação com o Microsoft Entra ID Configurações para autenticação com o Microsoft Entra ID (antigo Azure Active Directory).
Autenticar com o Windows Configurações para autenticação do Windows Server Active Directory.
Ordenação Definir uma nova ordenação para o SQL Server em Linux.
Comentários do cliente Escolher se o SQL Server envia ou não comentários à Microsoft.
Perfil do Database Mail Definir o perfil padrão do Database Mail para o SQL Server em Linux.
Diretório de dados padrão Alterar o diretório padrão para novos arquivos de dados de banco de dados do SQL Server (.mdf).
Diretório de log padrão Alterar o diretório padrão para novos arquivos de log de banco de dados do SQL Server (.ldf).
Diretório padrão de arquivos de banco de dados mestre Alterar o diretório padrão para os arquivos do banco de dados master na instalação existente do SQL.
Nome padrão do arquivo de banco de dados mestre Altera o nome dos arquivos de banco de dados master.
Diretório de despejo padrão Alterar o diretório padrão para novos despejos de memória e outros arquivos de solução de problemas.
Diretório de log de erros padrão Altera o diretório padrão para novos arquivos do log de erros do SQL Server, do rastreamento do Profiler padrão, do XE da sessão de integridade do sistema e do XE da sessão do Hekaton.
Diretório de backup padrão Alterar o diretório padrão para novos arquivos de backup.
Tipo de despejo Escolher o tipo de arquivo de despejo de memória de despejo a ser coletado.
Edição Definir a edição do SQL Server.
Alta disponibilidade Habilitar grupos de disponibilidade.
Diretório de auditoria local Definir um diretório para adicionar arquivos de auditoria local.
Localidade Definir a localidade a ser usada pelo SQL Server.
Limite de memória Definir o limite de memória para o SQL Server.
Coordenador de Transações Distribuídas da Microsoft Configurar e solucionar problemas do MSDTC no Linux.
Serviços de Machine Learning Aceitar os EULAs de R e Python para pacotes mlservices. Aplica-se somente ao SQL Server 2019 (15.x).
Configurações de rede Configurações de rede adicionais para SQL Server.
Acesso à rede de saída Habilitar o acesso à rede para extensões Java, R e Python dos Serviços de Machine Learning.
Porta TCP Alterar a porta em que o SQL Server escuta conexões.
TLS Configurar o protocolo TLS.
Sinalizadores de rastreamento Definem os sinalizadores de rastreamento que serão usados pelo serviço.

Dica

Algumas dessas configurações também podem ser definidas com variáveis de ambiente. Para obter mais informações, confira Definir configurações do SQL Server com variáveis de ambiente no Linux.

Dicas de uso

  • Para grupos de disponibilidade Always On e clusters de disco compartilhados, sempre faça as mesmas alterações de configuração em cada nó.

  • Para o cenário de cluster de disco compartilhado, não tente reiniciar o serviço mssql-server para aplicar as alterações. O SQL Server está em execução como um aplicativo. Em vez disso, coloque o recurso offline e, em seguida, novamente online.

  • Esses exemplos executam mssql-conf especificando o caminho completo: /opt/mssql/bin/mssql-conf. Se você optar por navegar até esse caminho, execute mssql-conf no contexto do diretório atual: ./mssql-conf.

  • Se você quiser modificar o arquivo mssql.conf dentro de um contêiner, crie um arquivo mssql.conf no host em que você tem o contêiner em execução com as configurações desejadas e reimplante o contêiner. Por exemplo, a adição a seguir ao arquivo mssql.conf habilita o SQL Server Agent.

    [sqlagent]
    enabled = true
    

    Você pode implantar seu contêiner com os seguintes comandos:

    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
    -p 5433:1433 --name sql1 \
    -v /container/sql1:/var/opt/mssql \
    -d mcr.microsoft.com/mssql/server:2019-latest
    

    Para obter mais informações, confira Criar os arquivos de configuração para serem usados pelo contêiner do SQL Server.

Habilitar o SQL Server Agent

A configuração sqlagent.enabled habilita o SQL Server Agent. Por padrão, o SQL Server Agent está desabilitado. Se sqlagent.enabled não está presente no arquivo de configurações mssql.conf, o SQL Server pressupõe internamente que o SQL Server Agent está desabilitado.

Para alterar essa configuração, use as seguintes etapas:

  1. Habilite o SQL Server Agent:

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    

Definir o perfil padrão do Database Mail para o SQL Server no Linux

O sqlagent.databasemailprofile permite que você defina o perfil padrão do DB Mail para alertas de email.

sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile <profile_name>

Logs de erros do SQL Agent

As configurações sqlagent.errorlogfile e sqlagent.errorlogginglevel permitem definir o caminho do arquivo de log do SQL Agent e o nível de registros em log, respectivamente.

sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogfile <path>

Os níveis de registros em log do SQL Agent são iguais aos seguintes valores de bitmask:

  • 1 = Erros
  • 2 = Avisos
  • 4 = Informações

Se você quiser capturar todos os níveis, use 7 como o valor.

sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogginglevel <level>

Configurar a autenticação do Microsoft Entra

A partir do SQL Server 2022 (16.x), você pode configurar o Microsoft Entra ID para o SQL Server. Para configurar o Microsoft Entra ID, você deve instalar a extensão do Azure para SQL Server após a instalação do SQL Server. Para obter informações sobre como configurar o Microsoft Entra ID, consulte Tutorial: configurar a autenticação do Microsoft Entra para o SQL Server.

Alterar o caminho de certificação padrão do Microsoft Entra ID

Por padrão, o arquivo de certificado do Microsoft Entra é armazenado em /var/opt/mssql/aadsecrets/. Você poderá alterar esse caminho se usar um repositório de certificados ou uma unidade criptografada. Para alterar o caminho, você pode usar o seguinte comando:

sudo /opt/mssql/bin/mssql-conf set network.aadcertificatefilepath /path/to/new/location.pfx

No exemplo anterior, /path/to/new/location.pfx é seu caminho preferido incluindo o nome do certificado.

O certificado para a autenticação do Microsoft Entra, baixado pela extensão do Azure para o SQL Server, é armazenado nessa localização. Não é possível alterar isso para /var/opt/mssql/secrets.

Observação

Após a instalação do SQL Server, o caminho de certificação do Microsoft Entra ID pode ser alterado a qualquer momento, mas deve ser alterado antes de habilitar o Microsoft Entra ID.

Opções de configuração do Microsoft Entra ID

As opções a seguir são usadas pela autenticação do Microsoft Entra para uma instância do SQL Server em execução no Linux.

Aviso

Os parâmetros do Microsoft Entra ID são configurados pela extensão do Azure para SQL Server e não devem ser reconfigurados manualmente. Eles estão listados aqui para fins informativos.

Opção Descrição
network.aadauthenticationendpoint Ponto de extremidade para a autenticação do Microsoft Entra
network.aadcertificatefilepath Caminho para arquivo de certificado para autenticação no Microsoft Entra ID
network.aadclientcertblacklist Lista de bloqueados do certificado do cliente do Microsoft Entra ID
network.aadclientid GUID do cliente Microsoft Entra
network.aadfederationmetadataendpoint Ponto de extremidade para metadados de federação do Microsoft Entra
network.aadgraphapiendpoint Ponto de extremidade para API do Graph do Azure AD
network.aadgraphendpoint Ponto de extremidade do Graph do Azure AD
network.aadissuerurl URL do emissor do Microsoft Entra
network.aadmsgraphendpoint Pontos de extremidade do MS Graph do Microsoft Entra
network.aadonbehalfofauthority Microsoft Entra ID em nome da autoridade
network.aadprimarytenant GUID do locatário primário do Microsoft Entra
network.aadsendx5c Microsoft Entra ID Send X5C
network.aadserveradminname Nome da conta do Microsoft Entra que será tornada sysadmin
network.aadserveradminsid SID da conta do Microsoft Entra que será tornada sysadmin
network.aadserveradmintype Tipo da conta do Microsoft Entra que será tornada sysadmin
network.aadserviceprincipalname Nome da entidade de serviço do Microsoft
network.aadserviceprincipalnamenoslash Nome da entidade de serviço do Microsoft, sem barra “/”
network.aadstsurl URL do STS do Microsoft Entra

Configurar a autenticação do Windows Active Directory

A opção setup-ad-keytab pode ser usada para criar um keytab, mas o usuário e os SPNs (Nomes da Entidade de Serviço) devem ter sido criados para usar essa opção. O utilitário do Active Directory, adutil, pode ser usado para criar usuários, SPNs e keytabs.

Para ver opções sobre como usar setup-ad-keytab, execute o seguinte comando:

sudo /opt/mssql/bin/mssql-conf setup-ad-keytab --help

A opção validate-ad-config valida a configuração para a autenticação do Active Directory.

Alterar a ordenação do SQL Server

A opção set-collation altera o valor da ordenação para qualquer um dos agrupamentos compatíveis. Para fazer essa alteração, o serviço SQL Server precisa ser interrompido.

  1. Primeiro faça backup de todos os bancos de dados de usuário no servidor.

  2. Use o procedimento armazenado sp_detach_db para desanexar os bancos de dados de usuário.

  3. Execute a opção set-collation e siga os prompts:

    sudo /opt/mssql/bin/mssql-conf set-collation
    
  4. O utilitário mssql-conf tentará alterar para o valor de ordenação especificado e reiniciar o serviço. Se houver erros, ele reverterá a ordenação para o valor anterior.

  5. Restaure os backups de banco de dados do usuário.

Para obter uma lista de agrupamentos compatíveis, execute a função sys.fn_helpcollations: SELECT Name from sys.fn_helpcollations().

Configurar os comentários do cliente

A configuração telemetry.customerfeedback determina se o SQL Server envia comentários à Microsoft ou não. Por padrão, esse valor é definido como true para todas as edições. Para alterar o valor, execute os seguintes comandos:

Importante

Você não pode desligar os comentários do cliente para edições gratuitas do SQL Server, Express e Developer.

  1. Execute o script mssql-conf como raiz com o comando set para telemetry.customerfeedback. O exemplo a seguir desativa os comentários do cliente, especificando false.

    sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
    
  2. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    

Para obter mais informações, consulte Configurar a coleta de dados de uso e diagnóstico do SQL Server em Linux e Suplemento de privacidade do SQL Server.

Alterar a localização padrão do diretório de dados ou de log

As configurações filelocation.defaultdatadir e filelocation.defaultlogdir alteram a localização em que o novo banco de dados e os arquivos de log são criados. Por padrão, esse local é /var/opt/mssql/data. Para alterar essas configurações, use as seguintes etapas:

  1. Crie o diretório de destino para novos arquivos de log e de dados de bancos de dados. O exemplo a seguir cria um diretório /tmp/data:

    sudo mkdir /tmp/data
    
  2. Altere o proprietário e o grupo do diretório para o usuário mssql:

    sudo chown mssql /tmp/data
    sudo chgrp mssql /tmp/data
    
  3. Use mssql-conf para alterar o diretório de dados padrão com o comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /tmp/data
    
  4. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    
  5. Agora, todos os arquivos de banco de dados para os novos bancos de dados criados serão armazenados nessa nova localização. Caso deseje alterar a localização dos arquivos de log (.ldf) dos novos bancos de dados, use o seguinte comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /tmp/log
    
  6. Esse comando também pressupõe que um diretório/tmp/log exista e que esteja sob o usuário e grupo mssql.

Alterar a localização do diretório padrão de arquivos de banco de dados master

A configuração filelocation.masterdatafile e filelocation.masterlogfile altera a localização em que o Mecanismo de Banco de Dados do SQL Server procura os arquivos de banco de dados master. Por padrão, esse local é /var/opt/mssql/data.

Para alterar essas configurações, use as seguintes etapas:

  1. Crie o diretório de destino para novos arquivos de log de erros. O exemplo a seguir cria um diretório /tmp/masterdatabasedir:

    sudo mkdir /tmp/masterdatabasedir
    
  2. Altere o proprietário e o grupo do diretório para o usuário mssql:

    sudo chown mssql /tmp/masterdatabasedir
    sudo chgrp mssql /tmp/masterdatabasedir
    
  3. Use mssql-conf para alterar o diretório de banco de dados master padrão para os dados mestres e os arquivos de log com o comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /tmp/masterdatabasedir/master.mdf
    sudo /opt/mssql/bin/mssql-conf set filelocation.masterlogfile /tmp/masterdatabasedir/mastlog.ldf
    

    Observação

    Além de mover os dados mestres e os arquivos de log, isso também move a localização padrão para todos os outros bancos de dados do sistema.

  4. Interromper o serviço do SQL Server:

    sudo systemctl stop mssql-server
    
  5. Mova os arquivos master.mdf e mastlog.ldf:

    sudo mv /var/opt/mssql/data/master.mdf /tmp/masterdatabasedir/master.mdf
    sudo mv /var/opt/mssql/data/mastlog.ldf /tmp/masterdatabasedir/mastlog.ldf
    
  6. Iniciar o serviço do SQL Server:

    sudo systemctl start mssql-server
    

    Observação

    Se o SQL Server não puder localizar os arquivos master.mdf e mastlog.ldf no diretório especificado, uma cópia modelo dos bancos de dados do sistema será criada automaticamente no diretório especificado e SQL Server será inicializado com êxito. No entanto, metadados como bancos de dados de usuário, logons de servidor, certificados de servidor, chaves de criptografia, trabalhos do SQL Agent ou senha de logon de SA antiga não serão atualizados no novo banco de dados master. Você precisará interromper o SQL Server e mover o master.mdf e o mastlog.ldf antigos para a nova localização especificada e iniciar o SQL Server para continuar usando os metadados existentes.

Alterar o nome dos arquivos de banco de dados master

A configuração filelocation.masterdatafile e filelocation.masterlogfile altera a localização em que o Mecanismo de Banco de Dados do SQL Server procura os arquivos de banco de dados master. Você também pode usar isso para alterar o nome dos arquivos de log e do banco de dados master.

Para alterar essas configurações, use as seguintes etapas:

  1. Interromper o serviço do SQL Server:

    sudo systemctl stop mssql-server
    
  2. Use mssql-conf para alterar os nomes esperados do banco de dados master para os arquivos de log e de dados do master com o comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /var/opt/mssql/data/masternew.mdf
    sudo /opt/mssql/bin/mssql-conf set filelocation.mastlogfile /var/opt/mssql/data/mastlognew.ldf
    

    Importante

    Você só pode alterar o nome dos arquivos de log e do banco de dados master após o SQL Server ter sido iniciado com êxito. Antes da execução inicial, o SQL Server espera que os arquivos sejam nomeados master.mdf e mastlog.ldf.

  3. Altere o nome dos arquivos de log e de dados do banco de dados master:

    sudo mv /var/opt/mssql/data/master.mdf /var/opt/mssql/data/masternew.mdf
    sudo mv /var/opt/mssql/data/mastlog.ldf /var/opt/mssql/data/mastlognew.ldf
    
  4. Iniciar o serviço do SQL Server:

    sudo systemctl start mssql-server
    

Alterar a localização padrão de despejo do diretório

A configuração filelocation.defaultdumpdir altera a localização padrão em que a memória e os despejos SQL são gerados sempre que há uma falha. Por padrão, esses arquivos são gerados em /var/opt/mssql/log.

Para configurar essa nova localização, use os seguintes comandos:

  1. Crie o diretório de destino para novos arquivos de despejo. O exemplo a seguir cria um diretório /tmp/dump:

    sudo mkdir /tmp/dump
    
  2. Altere o proprietário e o grupo do diretório para o usuário mssql:

    sudo chown mssql /tmp/dump
    sudo chgrp mssql /tmp/dump
    
  3. Use mssql-conf para alterar o diretório de dados padrão com o comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /tmp/dump
    
  4. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    

Alterar a localização padrão do diretório de arquivos de log de erros

A configuração filelocation.errorlogfile altera a localização em que o novo log de erros, o rastreamento padrão do Profiler, os arquivos XE da sessão de integridade do sistema e os arquivos XE da sessão do Hekaton são criados. Por padrão, esse local é /var/opt/mssql/log. O diretório no qual o arquivo de log de erros do SQL Server é definido passa a ser o diretório de logs padrão para outros logs.

Para alterar essas configurações:

  1. Crie o diretório de destino para novos arquivos de log de erros. O exemplo a seguir cria um diretório /tmp/logs:

    sudo mkdir /tmp/logs
    
  2. Altere o proprietário e o grupo do diretório para o usuário mssql:

    sudo chown mssql /tmp/logs
    sudo chgrp mssql /tmp/logs
    
  3. Use mssql-conf para alterar o nome do arquivo de log de erros padrão com o comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.errorlogfile /tmp/logs/errorlog
    
  4. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    

A configuração errorlog.numerrorlogs permite que você especifique o número de logs de erros mantidos antes de reiniciar o ciclo do log.

Alterar a localização padrão de backup do diretório

A configuração filelocation.defaultbackupdir altera a localização padrão em que os arquivos de backup são gerados. Por padrão, esses arquivos são gerados em /var/opt/mssql/data.

Para configurar essa nova localização, use os seguintes comandos:

  1. Crie o diretório de destino para novos arquivos de backup. O exemplo a seguir cria um diretório /tmp/backup:

    sudo mkdir /tmp/backup
    
  2. Altere o proprietário e o grupo do diretório para o usuário mssql:

    sudo chown mssql /tmp/backup
    sudo chgrp mssql /tmp/backup
    
  3. Use mssql-conf para alterar o diretório de backup padrão com o comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /tmp/backup
    
  4. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    

Especificar configurações de despejo de núcleo

Se ocorrer uma exceção ou falha em um dos processos de SQL Server, o SQL Server criará um despejo de memória. Capturar um despejo de memória pode levar muito tempo e ocupar um espaço significativo. Para economizar recursos e evitar despejos de memória repetidos, você pode desabilitar a captura automática de despejo usando a opção coredump.disablecoredump.

sudo /opt/mssql/bin/mssql-conf set coredump.disablecoredump <true or false>

Os usuários ainda podem gerar despejos de memória manualmente quando o despejo de memória automático está desabilitado (coredump.disablecoredump definido como true).

Há duas opções para controlar o tipo de despejo de memória que o SQL Server coleta: coredump.coredumptype e coredump.captureminiandfull. Eles estão relacionados às duas fases da captura de despejo principal.

A primeira fase da captura é controlada pela configuração coredump.coredumptype, que determina o tipo de arquivo de despejo gerado durante uma exceção. A segunda fase é habilitada quando a configuração coredump.captureminiandfull. Se coredump.captureminiandfull for definido como true, o arquivo de despejo especificado por coredump.coredumptype e um segundo minidespejo serão gerados. Definir coredump.captureminiandfull como false desabilita a segunda tentativa de captura.

  1. Decida se deseja capturar o minidespejo e o despejo completo com a configuração coredump.captureminiandfull.

    sudo /opt/mssql/bin/mssql-conf set coredump.captureminiandfull <true or false>
    

    Padrão: false

  2. Especifique o tipo de arquivo de despejo com a configuração coredump.coredumptype.

    sudo /opt/mssql/bin/mssql-conf set coredump.coredumptype <dump_type>
    

    Padrão: miniplus

    A tabela a seguir lista os possíveis valores de coredump.coredumptype.

    Type Descrição
    mini Mini é o menor tipo de arquivo de despejo. Ele usa as informações do sistema Linux para determinar threads e módulos no processo. O despejo contém apenas os módulos e pilhas de thread do ambiente de host. Ele não contém referências de memória indiretas nem globais.
    miniplus O MiniPlus é semelhante ao mini, mas inclui memória adicional. Ele entende os mecanismos internos do SQLPAL e o ambiente de host, adicionando as seguintes regiões de memória ao despejo:

    – Vários globais
    – Toda a memória acima de 64 TB
    – Todas as regiões nomeadas encontradas em /proc/$pid/maps
    – Memória indireta de threads e pilhas
    – Informações de thread, incluindo TEBs (blocos de ambiente de thread) associados e PEBs (blocos de ambiente de processo)
    – Informações do módulo
    – Árvore de VMM e de VAD
    filtered Filtrado usa um design baseado em subtração em que toda a memória no processo é incluída, a menos que seja especificamente excluída. O design entende os mecanismos internos do SQLPAL e o ambiente de host, excluindo certas regiões do despejo.
    full Completo é um despejo de processo completo que inclui todas as regiões localizadas em /proc/$pid/maps. Isso não é controlado pela configuração coredump.captureminiandfull.

Edition

A edição do SQL Server pode ser alterada usando a opção set-edition. Para alterar a edição do SQL Server, é necessário primeiro parar o serviço SQL Server. Para obter mais informações sobre edições do SQL Server em Linux disponíveis, confira Edições do SQL Server.

Alta disponibilidade

A opção hadr.hadrenabled habilita grupos de disponibilidade na instância do SQL Server. O comando a seguir habilita os grupos de disponibilidade definindo hadr.hadrenabled para 1. É preciso reiniciar o SQL Server para que essa configuração entre em vigor.

sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled  1
sudo systemctl restart mssql-server

Para obter informações sobre como isso é usado com grupos de disponibilidade, confira os dois artigos a seguir.

Definir o diretório de auditoria local

A configuração telemetry.userrequestedlocalauditdirectory habilita a auditoria local e permite que você defina o diretório em que os logs de auditoria local são criados.

  1. Crie um diretório de destino para novos logs de Auditoria Local. O exemplo a seguir cria um diretório /tmp/audit:

    sudo mkdir /tmp/audit
    
  2. Altere o proprietário e o grupo do diretório para o usuário mssql:

    sudo chown mssql /tmp/audit
    sudo chgrp mssql /tmp/audit
    
  3. Execute o script mssql-conf como raiz com o comando set para telemetry.userrequestedlocalauditdirectory:

    sudo /opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /tmp/audit
    
  4. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    

Para obter mais informações, consulte Configurar a coleta de dados de uso e diagnóstico do SQL Server em Linux.

Alterar a localidade do SQL Server

A configuração language.lcid altera a localidade do SQL Server para qualquer LCID (identificador de idioma) com suporte.

  1. O exemplo a seguir altera a localidade para francês (1036):

    sudo /opt/mssql/bin/mssql-conf set language.lcid 1036
    
  2. Reinicie o serviço do SQL Server para aplicar as alterações:

    sudo systemctl restart mssql-server
    

Definir o limite de memória

A configuração memory.memorylimitmb controla a quantidade de memória física (em MB) disponível para o SQL Server. O padrão é 80% da memória física, a fim de evitar condições de memória insuficiente.

Importante

A configuração memory.memorylimitmb limita a quantidade de memória física disponível para o processo do SQL Server. A configuração memória máxima do servidor (MB) pode ser usada para ajustar a quantidade de memória disponível para o pool de buffers do SQL Server, mas nunca pode exceder a quantidade de memória física disponível para o SQL Server. Para obter mais informações sobre a opção de configuração do servidor memória máxima do servidor (MB) confira Opções de configuração da memória do servidor.

  1. Execute o script mssql-conf como raiz com o comando set para memory.memorylimitmb. O exemplo a seguir altera a memória disponível para o SQL Server para 3,25 GB (3.328 MB).

    sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 3328
    
  2. Reinicie o serviço do SQL Server para aplicar as alterações:

    sudo systemctl restart mssql-server
    

Necessidades de memória adicional

As opções a seguir estão disponíveis para as configurações de memória.

Opção Descrição
memory.disablememorypressure Desabilita a demanda de memória do SQL Server. Os valores podem ser true ou false.
memory.memory_optimized Habilita ou desabilita recursos de otimização de memória no SQL Server – capacitação de arquivo de memória persistente, proteção de memória. Os valores podem ser true ou false.
memory.enablecontainersharedmemory Aplicável somente para contêineres do SQL Server. Use essa configuração para habilitar a memória compartilhada dentro de contêineres do SQL Server. Por padrão, ele é definido como false. Os valores podem ser true ou false.

Configurar MSDTC

As configurações network.rpcport e distributedtransaction.servertcpport são usadas para definir o MSDTC (Coordenador de Transações Distribuídas da Microsoft). Para alterar essas configurações, execute os seguintes comandos:

  1. Execute o script mssql-conf como raiz com o comando set para network.rpcport:

    sudo /opt/mssql/bin/mssql-conf set network.rpcport <rcp_port>
    
  2. Em seguida, defina a configuração distributedtransaction.servertcpport:

    sudo /opt/mssql/bin/mssql-conf set distributedtransaction.servertcpport <servertcpport_port>
    

Além de definir esses valores, você também deve configurar o roteamento e atualizar o firewall para a porta 135. Para obter mais informações sobre esse processo, confira Como configurar o Coordenador de Transações Distribuídas da Microsoft (MSDTC) no Linux.

Há várias outras configurações de mssql-conf que você pode usar para monitorar e solucionar problemas do MSDTC. A tabela a seguir descreve resumidamente essas configurações. Para obter mais informações o uso delas, confira os detalhes no artigo de suporte do Windows, Como habilitar o rastreamento de diagnóstico para o MS DTC.

Opção Descrição
distributedtransaction.allowonlysecurerpccalls Configurar chamadas RPC somente seguras para transações distribuídas
distributedtransaction.fallbacktounsecurerpcifnecessary Configurar chamadas RPC somente de segurança para transações distribuídas
distributedtransaction.maxlogsize Tamanho do arquivo de log de transações do DTC em MB. O padrão é 64 MB
distributedtransaction.memorybuffersize Tamanho do buffer circular no qual os rastreamentos são armazenados. Esse tamanho está em MB e o padrão é 10 MB
distributedtransaction.servertcpport Porta do servidor RPC do MSDTC
distributedtransaction.trace_cm Rastreamentos no gerenciador de conexões
distributedtransaction.trace_contact Rastreia o pool de contatos e os contatos
distributedtransaction.trace_gateway Rastreia a origem do gateway
distributedtransaction.trace_log Rastreamento de log
distributedtransaction.trace_misc Rastreamentos que não podem ser categorizados em outras categorias
distributedtransaction.trace_proxy Rastreamentos gerados no proxy do MSDTC
distributedtransaction.trace_svc Rastreia a inicialização do serviço e do arquivo .exe
distributedtransaction.trace_trace A infraestrutura de rastreamento propriamente dita
distributedtransaction.trace_util Rastreia rotinas do utilitário que são chamadas de vários locais
distributedtransaction.trace_xa Origem de rastreamento do XATM (Gerenciador de Transação XA)
distributedtransaction.tracefilepath Pasta na qual os arquivos de rastreamento devem ser armazenados
distributedtransaction.turnoffrpcsecurity Habilitar ou desabilitar a segurança RPC para transações distribuídas

Aceitar EULAs dos Serviços de Machine Learning

A adição de pacotes R ou Python de machine learning ao Mecanismo de Banco de Dados exige que você aceite os termos de licenciamento para as distribuições de código aberto do R e do Python. A tabela a seguir enumera todas as opções ou comandos disponíveis relacionados a EULAs de mlservices. O mesmo parâmetro de EULA é usado para R e Python, dependendo do que você instalou.

# For all packages: database engine and mlservices
# Setup prompts for mlservices EULAs, which you need to accept
sudo /opt/mssql/bin/mssql-conf setup

# Add R or Python to an existing installation
sudo /opt/mssql/bin/mssql-conf setup accept-eula-ml

# Alternative valid syntax
# Adds the EULA section to the INI and sets acceptulam to yes
sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y

# Rescind EULA acceptance and removes the setting
sudo /opt/mssql/bin/mssql-conf unset EULA accepteulaml

Você também pode adicionar a aceitação de EULA diretamente ao arquivo mssql.conf:

[EULA]
accepteula = Y
accepteulaml = Y

Habilitar acesso à rede de saída

O acesso à rede de saída para extensões R, Python e Java no recurso de Serviços de Machine Learning do SQL Server está desabilitado por padrão. Para habilitar as solicitações de saída, defina a propriedade booliana outboundnetworkaccess usando o mssql-conf.

Depois de definir a propriedade, reinicie o serviço SQL Server Launchpad para ler os valores atualizados do arquivo INI. Uma mensagem de reinicialização lembrará você sempre que uma configuração relacionada à extensibilidade for modificada.

# Adds the extensibility section and property.
# Sets "outboundnetworkaccess" to true.
# This setting is required if you want to access data or operations off the server.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1

# Turns off network access but preserves the setting
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 0

# Removes the setting and rescinds network access
sudo /opt/mssql/bin/mssql-conf unset extensibility.outboundnetworkaccess

Você também pode adicionar o outboundnetworkaccess diretamente ao arquivo mssql.conf:

[extensibility]
outboundnetworkaccess = 1

Alterar a porta TCP

A configuração network.tcpport altera a porta TCP em que o SQL Server escuta conexões. Por padrão, essa porta é definida para 1433. Para alterar a porta, execute os seguintes comandos:

  1. Execute o script mssql-conf como raiz com o comando set para network.tcpport:

    sudo /opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>
    
  2. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    
  3. Ao se conectar ao SQL Server agora, você deve especificar a porta personalizada com uma vírgula (,) após o nome do host ou o endereço IP. Por exemplo, para se conectar com o sqlcmd, você usará o seguinte comando:

    sqlcmd -S localhost,<new_tcp_port> -U test -P test
    

Especificar configurações de TLS

As opções a seguir configuram o TLS para uma instância do SQL Server em execução no Linux.

Opção Descrição
network.forceencryption Se for 1, SQL Server forçará a criptografia de todas as conexões. Por padrão, essa opção é 0.
network.tlscert O caminho absoluto para o arquivo de certificado que SQL Server usa para TLS. Exemplo: /etc/ssl/certs/mssql.pem o arquivo de certificado deve ser acessível pela conta mssql. A Microsoft recomenda restringir o acesso ao arquivo usando o chown mssql:mssql <file>; chmod 400 <file>.
network.tlskey O caminho absoluto para o arquivo de chave privada que SQL Server usa para TLS. Exemplo: /etc/ssl/private/mssql.key o arquivo de certificado deve ser acessível pela conta mssql. A Microsoft recomenda restringir o acesso ao arquivo usando o chown mssql:mssql <file>; chmod 400 <file>.
network.tlsprotocols Uma lista separada por vírgula de quais protocolos TLS são permitidos pelo SQL Server. O SQL Server sempre tenta negociar o protocolo mais forte permitido. Se o cliente não der suporte para nenhum protocolo permitido, o SQL Server rejeitará a tentativa de conexão. Para compatibilidade, todos os protocolos compatíveis são permitidos por padrão (1.2, 1.1 e 1.0). Se os clientes dão suporte ao protocolo TLS 1.2, a Microsoft recomenda que ele seja o único permitido.
network.tlsciphers Especifica quais codificações são permitidas pelo SQL Server para protocolo TLS. Essa cadeia de caracteres deve ser formatada segundo o formato de lista de codificação do OpenSSL. Em geral, não é necessário alterar essa opção.
Por padrão, são permitidas as seguintes codificações:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
network.kerberoskeytabfile Caminho para o arquivo keytab do Kerberos

Para obter um exemplo de como usar as configurações de protocolo TLS, confira Criptografar conexões para o SQL Server no Linux.

Configurações de rede

Confira o Tutorial: usar a autenticação do Active Directory com o SQL Server em Linux para obter informações abrangentes sobre como usar a autenticação do Active Directory com o SQL Server em Linux.

As opções a seguir são configurações de rede adicionais que podem ser definidas por meio do mssql-conf.

Opção Descrição
network.disablesssd Desabilita a consulta a SSSD para obter informações de conta do Active Directory e utilizar chamadas LDAP por padrão. Os valores podem ser true ou false.
network.enablekdcfromkrb5conf Habilita a pesquisa de informações do KDC por meio de krb5.conf. Os valores podem ser true ou false.
network.forcesecureldap Força o uso de LDAPS para entrar em contato com o controlador de domínio. Os valores podem ser true ou false.
network.ipaddress Endereço IP para conexões de entrada.
network.kerberoscredupdatefrequency Tempo em segundos entre as verificações de credenciais Kerberos que precisam ser atualizadas. O valor é um inteiro.
network.privilegedadaccount Usuário privilegiado do Active Directory a ser usado para a autenticação do Active Directory. O valor é <username>. Para saber mais, confira Tutorial: Usar autenticação do Azure Active Directory com o SQL Server em Linux
uncmapping Mapeia o caminho UNC para um caminho local. Por exemplo, sudo /opt/mssql/bin/mssql-conf set uncmapping //servername/sharename /tmp/folder.
ldaphostcanon Defina se o OpenLDAP deve canonizar nomes de host durante a etapa de associação. Os valores podem ser true ou false.

Habilitar ou desabilitar os sinalizadores de rastreamento

A opção de traceflag habilita ou desabilita o sinalizadores de rastreamento para a inicialização do serviço SQL Server. Para habilitar/desabilitar um sinalizador de rastreamento, use os seguintes comandos:

  1. Para habilitar um sinalizador de rastreamento, use o comando a seguir. Por exemplo, para o sinalizador de rastreamento 1234:

    sudo /opt/mssql/bin/mssql-conf traceflag 1234 on
    
  2. Você pode habilitar vários sinalizadores de rastreamento especificando-os separadamente:

    sudo /opt/mssql/bin/mssql-conf traceflag 2345 3456 on
    
  3. De modo semelhante, você pode desabilitar um ou mais sinalizadores de rastreamento habilitados, especificando-os e adicionando o parâmetro off:

    sudo /opt/mssql/bin/mssql-conf traceflag 1234 2345 3456 off
    
  4. Reinicie o serviço do SQL Server para aplicar as alterações:

    sudo systemctl restart mssql-server
    

Remover uma configuração

Para remover a definição de qualquer configuração feita com mssql-conf set, chame mssql-conf com a opção unset e o nome da configuração. Isso limpa a configuração, retornando-a efetivamente ao valor padrão.

  1. O exemplo a seguir limpa a opção network.tcpport.

    sudo /opt/mssql/bin/mssql-conf unset network.tcpport
    
  2. Reinicie o serviço SQL Server.

    sudo systemctl restart mssql-server
    

Exibir as configurações atuais

Para exibir as configurações definidas, execute o seguinte comando para gerar o conteúdo do arquivo mssql.conf como saída:

sudo cat /var/opt/mssql/mssql.conf

As configurações que não foram exibidas neste arquivo usam os valores padrão. A próxima seção fornece um arquivo mssql.conf de exemplo.

Exibir várias opções

Para exibir as diversas opções que podem ser configuradas usando o utilitário mssql-conf, execute o comando help:

sudo /opt/mssql/bin/mssql-conf --help

Os resultados oferecem várias opções de configuração e uma breve descrição para cada uma das configurações.

Formato mssql.conf

O arquivo /var/opt/mssql/mssql.conf a seguir fornece um exemplo para cada configuração. Você pode usar esse formato para fazer alterações manualmente no arquivo mssql.conf conforme necessário. Se você alterar o arquivo manualmente, deverá reiniciar o SQL Server antes que as alterações sejam aplicadas. Para usar o arquivo mssql.conf com o Docker, você deverá fazer com que o Docker persista seus dados. Primeiro, adicione um arquivo mssql.conf completo ao diretório de host e, em seguida, execute o contêiner. Veja um exemplo em Configurar a coleta de dados de uso e diagnóstico do SQL Server em Linux.

[EULA]
accepteula = Y

[coredump]
captureminiandfull = true
coredumptype = full

[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/

[hadr]
hadrenabled = 0

[language]
lcid = 1033

[memory]
memorylimitmb = 4096

[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0

[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7

[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit

[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456
[EULA]
accepteula = Y
accepteulaml = Y

[coredump]
captureminiandfull = true
coredumptype = full

[distributedtransaction]
servertcpport = 51999

[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/

[hadr]
hadrenabled = 0

[language]
lcid = 1033

[memory]
memorylimitmb = 4096

[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
rpcport = 13500
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0

[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7

[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit

[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456

Contribua com a documentação do SQL

Você sabia que pode editar conteúdo do SQL por conta própria? Ao fazer isso, além de melhorar nossa documentação, você também será creditado como um colaborador da página.

Para obter mais informações, confira Como contribuir para a documentação do SQL Server