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. |
Conector do SQL Server | Configure o nível de log para o Conector do SQL Server. |
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 arquivomssql.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 arquivomssql.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:
Habilite o SQL Server Agent:
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
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
= Erros2
= Avisos4
= 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.
Primeiro faça backup de todos os bancos de dados de usuário no servidor.
Use o procedimento armazenado sp_detach_db para desanexar os bancos de dados de usuário.
Execute a opção
set-collation
e siga os prompts:sudo /opt/mssql/bin/mssql-conf set-collation
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.
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.
Execute o script mssql-conf como raiz com o comando
set
paratelemetry.customerfeedback
. O exemplo a seguir desativa os comentários do cliente, especificandofalse
.sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
Reinicie o serviço SQL Server:
sudo systemctl restart mssql-server
Para obter mais informações, confira Configurar a coleta de dados de uso e diagnóstico para o SQL Server no Linux e o 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:
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
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
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
Reinicie o serviço SQL Server:
sudo systemctl restart mssql-server
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
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:
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
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
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 comandoset
: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.
Interromper o serviço do SQL Server:
sudo systemctl stop mssql-server
Mova os arquivos
master.mdf
emastlog.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
Iniciar o serviço do SQL Server:
sudo systemctl start mssql-server
Observação
Quando o SQL Server não pode localizar os arquivos
master.mdf
emastlog.ldf
no diretório especificado, uma cópia modelo dos bancos de dados do sistema é criada automaticamente no diretório especificado e o SQL Server é 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 são atualizados no novo banco de dadosmaster
. Você precisará interromper o SQL Server e mover omaster.mdf
e omastlog.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:
Interromper o serviço do SQL Server:
sudo systemctl stop mssql-server
Use mssql-conf para alterar os nomes esperados do banco de dados
master
para os arquivos de log e de dados domaster
com o comandoset
: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 nomeadosmaster.mdf
emastlog.ldf
.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
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:
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
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
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
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:
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
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
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
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:
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
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
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
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.
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
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 VADfiltered
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çãocoredump.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.
- Configurar o grupo de disponibilidade Always On do SQL Server para alta disponibilidade no Linux
- Configurar um grupo de disponibilidade do SQL Server para escala de leitura no Linux
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.
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
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
Execute o script mssql-conf como raiz com o comando
set
paratelemetry.userrequestedlocalauditdirectory
:sudo /opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /tmp/audit
Reinicie o serviço SQL Server:
sudo systemctl restart mssql-server
Para obter mais informações, confira Configurar a coleta de dados de uso e diagnóstico para o SQL Server no 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.
O exemplo a seguir altera a localidade para francês (1036):
sudo /opt/mssql/bin/mssql-conf set language.lcid 1036
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.
Execute o script mssql-conf como raiz com o comando
set
paramemory.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
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 (padrão). A desativação da demanda de memória inibe os sinais que o SQL Server usa para limitar o uso de memória física para memory.memorylimitmb , o que faz com que o uso ultrapasse esse limite. |
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. Para obter mais informações, confira Habilitar backup e restauração de VDI em contêineres. Os valores podem ser true ou false (padrão). |
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:
Execute o script mssql-conf como raiz com o comando
set
paranetwork.rpcport
:sudo /opt/mssql/bin/mssql-conf set network.rpcport <rcp_port>
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, Habilitar o rastreamento de diagnóstico para MS DTC em um computador Windows 10.
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 o nível de log do Conector do SQL Server para Azure Key Vault
No SQL Server 2022 (16.x) CU 14 e versões posteriores, o SQL Server em Linux oferece suporte ao Gerenciamento Extensível de Chaves TDE com o Azure Key Vault. É possível definir o nível de registros em log para um dos seguintes valores:
Nível | Descrição |
---|---|
0 (padrão) |
Informações |
1 |
Erro |
2 |
Nenhum log |
Para alterar o nível de log do Conector do SQL Server, use o seguinte exemplo:
sudo /opt/mssql/bin/mssql-conf set sqlconnector.logginglevel 1
Para obter mais informações, consulte Usar o Conector do SQL Server com recursos de criptografia do SQL.
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:
Execute o script mssql-conf como raiz com o comando
set
paranetwork.tcpport
:sudo /opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>
Reinicie o serviço SQL Server:
sudo systemctl restart mssql-server
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:
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
Você pode habilitar vários sinalizadores de rastreamento especificando-os separadamente:
sudo /opt/mssql/bin/mssql-conf traceflag 2345 3456 on
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
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.
O exemplo a seguir limpa a opção
network.tcpport
.sudo /opt/mssql/bin/mssql-conf unset network.tcpport
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. Há um exemplo disso em Configurar coleta de dados de uso e diagnóstico para o SQL Server no 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
Conteúdo relacionado
- Definir configurações do SQL Server com variáveis de ambiente no Linux
- Escolher a ferramenta correta para gerenciar o SQL Server no Linux
- Configurar e personalizar contêineres do SQL Server no Linux
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