Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server no Linux
Este artigo descreve como solucionar problemas do SQL Server em execução no Linux ou em um contêiner do Linux. Ao solucionar problemas do SQL Server no Linux, lembre-se de examinar os recursos compatíveis e as limitações conhecidas:
- Notas sobre a versão do SQL Server 2022 em Linux
- Notas sobre a versão do SQL Server 2019 em Linux
- Notas sobre a versão do SQL Server 2017 em Linux
Para obter respostas a perguntas frequentes, confira as Perguntas frequentes sobre o SQL Server em Linux.
Solucionar falhas de conexão
Se você tiver dificuldades para se conectar à sua instância do SQL Server no Linux, há algumas coisas a serem verificadas.
Caso não consiga se conectar localmente usando
localhost, tente usar o endereço IP 127.0.0.1. É possível que olocalhostnão esteja mapeado corretamente para esse endereço.Verifique se o nome do servidor ou o endereço IP pode ser acessado no computador cliente.
Para localizar o endereço IP de seu computador Ubuntu, execute o comando
ifconfigcomo no seguinte exemplo:sudo ifconfig eth0 | grep 'inet addr'Para o Red Hat, use o comando
ip addrcomo no seguinte exemplo:sudo ip addr show eth0 | grep "inet"Dica
Uma exceção a essa técnica está relacionada às VMs do Azure. Para VMs do Azure, localize o IP público da VM no portal do Azure.
Se aplicável, verifique se você abriu a porta do SQL Server (padrão 1433) no firewall.
Para VMs do Azure, verifique se você tem uma regra de grupo de segurança de rede para a porta padrão do SQL Server.
Verifique se o nome de usuário e a senha não contêm erros de digitação, espaços extras ou uso incorreto de maiúsculas.
Tente definir explicitamente o protocolo e o número da porta com o nome do servidor, como no seguinte exemplo:
tcp:servername,1433.Problemas de conectividade de rede também podem causar erros de conexão e tempos limite. Depois de verificar as informações de conexão e a conectividade de rede, tente estabelecer a conexão novamente.
Gerenciar o serviço SQL Server
A seção a seguir mostra como gerenciar a execução de contêineres Linux do SQL Server. Para gerenciar serviços para Linux, confira Iniciar, parar e reiniciar serviços do SQL Server no Linux.
Gerenciar a execução do contêiner Linux do SQL Server
Obtenha o status e a ID do contêiner Linux do SQL Server criado mais recentemente executando o seguinte comando (a ID está abaixo da coluna CONTAINER ID):
sudo docker ps -l
Você pode parar ou reiniciar o serviço SQL Server, conforme necessário, usando os seguintes comandos:
sudo docker stop <container ID>
sudo docker restart <container ID>
Dica
Para obter mais dicas de solução de problemas para contêineres Linux, confira Solução de problemas de contêineres do SQL Server no Docker.
Acessar os arquivos de log
O Mecanismo de Banco de Dados do SQL Server registra no arquivo /var/opt/mssql/log/errorlog nas instalações do Linux e do contêiner. Você precisa estar no modo superusuário para procurar arquivos nesse diretório.
O instalador registra-os em log aqui: /var/opt/mssql/setup-<time stamp representing time of install> Você pode procurar os arquivos errorlog com qualquer ferramenta compatível com UTF-16, como vim ou cat da seguinte maneira:
sudo cat errorlog
Se preferir, converta também os arquivos em UTF-8 para lê-los com more ou less com o seguinte comando:
sudo iconv -f UTF-16LE -t UTF-8 <errorlog> -o <output errorlog file>
Eventos estendidos
Os eventos estendidos podem ser consultados por meio de um comando SQL. Para obter mais informações, confira eventos estendidos.
Despejos de memória
Procure despejos no diretório de log do Linux. Verifique no diretório /var/opt/mssql/log os despejos do Linux Core (extensão .tar.gz2) ou minidespejos do SQL (extensão .mdmp).
Por exemplo, para exibir os principais despejos:
sudo ls /var/opt/mssql/log | grep .tar.gz2
Para despejos do SQL, use este script:
sudo ls /var/opt/mssql/log | grep .mdmp
Iniciar o SQL Server no modo de usuário único ou de configuração mínima
Iniciar o SQL Server no modo de configuração mínima
Esse modo será útil se a definição de um valor de configuração (por exemplo, sobrecarga de confirmação de memória) impediu o servidor de ser iniciado.
sudo -u mssql /opt/mssql/bin/sqlservr -f
Iniciar o SQL Server no modo de usuário único
Às vezes, pode ser necessário iniciar uma instância do SQL Server no modo de usuário único usando a opção de inicialização -m. Para obter mais informações, confira Parâmetros de inicialização. Por exemplo, você pode querer mudar as opções de configuração de servidor ou recuperar um banco de dados master danificado ou outro banco de dados do sistema.
Por exemplo, use o seguinte script para iniciar o SQL Server no modo de usuário único:
sudo -u mssql /opt/mssql/bin/sqlservr -m
Este script inicia o SQL Server no modo de usuário único com o sqlcmd:
sudo -u mssql /opt/mssql/bin/sqlservr -m sqlcmd
Sempre inicie o SQL Server no Linux com o usuário mssql para evitar futuros problemas de inicialização. Por exemplo: sudo -u mssql /opt/mssql/bin/sqlservr [STARTUP OPTIONS]
Se você tiver iniciado o SQL Server acidentalmente com outro usuário, altere a propriedade dos arquivos de banco de dados do SQL Server novamente para o usuário mssql antes de iniciar o SQL Server com systemd. Por exemplo, para alterar a propriedade de todos os arquivos de banco de dados em /var/opt/mssql para o usuário mssql, execute o comando a seguir:
chown -R mssql:mssql /var/opt/mssql/
Recompilar bancos de dados do sistema
Como último recurso, você pode optar por recompilar os bancos de dados master e model novamente para as versões padrão.
Aviso
Esse processo é perigoso, pois você poderá excluir todos os dados do sistema do SQL Server que você configurou, incluindo informações sobre seus bancos de dado de usuário (mas não os bancos de dados do usuário em si).
Posteriormente, você precisará anexar os bancos de dados de usuário à instância. Isso também excluirá outras informações armazenadas nos bancos de dados do sistema, inclusive:
- Informações de chave mestra do banco de dados (DMK)
- todos os certificados carregados em
master - a senha para a conta
sa - informações relacionadas ao trabalho de
msdb - informações de Database Mail do
msdb -
sp_configureopções
Você não poderá anexar novamente nenhum banco de dados de usuário criptografado com Transparent Data Encryption (TDE), a menos que também seja feito backup de seus certificados e chaves privadas.
Use essas etapas apenas se você entender as implicações.
Parar o Mecanismo de Banco de Dados do SQL Server
sudo systemctl stop mssql-serverExecutar sqlservr com o parâmetro
force-setupsudo -u mssql /opt/mssql/bin/sqlservr --force-setupSempre inicie o SQL Server no Linux com o usuário
mssqlpara evitar futuros problemas de inicialização.Depois de ver a mensagem "A recuperação foi concluída", pressione Ctrl+C. Isso desligará o SQL Server.
Reconfigure a senha
sa.sudo /opt/mssql/bin/mssql-conf set-sa-passwordCuidado
Sua senha deve seguir a política de senha padrão do SQL Server. Por padrão, a senha precisa ter pelo menos oito caracteres e conter caracteres de três dos seguintes quatro conjuntos: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As senhas podem ter até 128 caracteres. Use senhas longas e complexas.
Inicie o SQL Server e reconfigure o servidor, incluindo a restauração ou reanexação de qualquer banco de dados de usuário.
sudo systemctl start mssql-server
Melhorar o desempenho
Muitos fatores afetam o desempenho, incluindo design de banco de dados, hardware e demandas de carga de trabalho. Se desejar melhorar o desempenho, comece examinando as melhores práticas no artigo Melhores práticas de desempenho e diretrizes de configuração para o SQL Server em Linux. Em seguida, explore algumas das ferramentas disponíveis para solucionar problemas de desempenho.
- Monitorar o desempenho usando o Repositório de Consultas
- Exibições de gerenciamento dinâmico do sistema
- Painel de desempenho no SQL Server Management Studio
Problemas comuns
Não é possível se conectar à Instância remota do SQL Server.
Confira a seção de solução de problemas do artigo Conectar-se ao SQL Server em Linux.
A seguinte mensagem de erro é exibida:
ERROR: Hostname must be 15 characters or less.Esse é um problema conhecido que ocorre sempre que o nome do computador que está tentando instalar o pacote do SQL Server tem mais de 15 caracteres. Atualmente, não há soluções alternativas além da alteração do nome do computador. Você pode fazer isso editando
/etc/hostnamee/etc/hosts, alterando o nome do host, salvando cada arquivo e reiniciando o computador.A senha do administrador do sistema (
sa) deve ser redefinida, o que interrompe temporariamente o serviço do SQL Server.Caso esqueça a senha
saou precisar redefini-la por algum outro motivo, siga estas etapas.Entre no terminal do host, execute os seguintes comandos e siga os prompts para redefinir a senha
sa:sudo systemctl stop mssql-server sudo /opt/mssql/bin/mssql-conf setupCuidado
Sua senha deve seguir a política de senha padrão do SQL Server. Por padrão, a senha precisa ter pelo menos oito caracteres e conter caracteres de três dos seguintes quatro conjuntos: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As senhas podem ter até 128 caracteres. Use senhas longas e complexas.
Caracteres especiais em senhas podem causar erros ou falhas de logon.
Caso use alguns caracteres na senha do SQL Server, talvez precise fazer escape deles com uma barra invertida quando usá-los na linha de comando do Linux. Por exemplo, você precisará fazer escape do cifrão (
$) sempre que usá-lo em um script de shell/comando de terminal:Não funciona:
sudo sqlcmd -S myserver -U sa -P Test$$Funciona:
sqlcmd -S myserver -U sa -P Test\$\$
Conteúdo relacionado
Obter ajuda
- Ideias para SQL: Tem sugestões para melhorar o SQL Server?
- Microsoft Q&A (SQL Server)
- DBA Stack Exchange (marcação sql-server): Fazer perguntas sobre o SQL Server
- Stack Overflow (marcação sql-server): respostas a perguntas sobre desenvolvimento de SQL
- Informações e termos de licença do Microsoft SQL Server
- Opções de suporte para usuários empresariais
- Ajuda e comentários adicionais sobre o SQL Server
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 Editar a documentação do Microsoft Learn.