Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server em Linux
Este artigo descreve como solucionar problemas do SQL Server em execução no Linux ou em um contêiner Linux. Ao solucionar problemas do SQL Server no Linux, lembre-se de revisar os recursos suportados e as limitações conhecidas:
- Notas de versão do SQL Server 2022 no Linux
- Notas de versão do SQL Server 2019 no Linux
- Notas de versão do SQL Server 2017 no Linux
Para obter respostas às perguntas frequentes, consulte as Perguntas frequentes sobre o SQL Server no Linux.
Solucionar problemas de falhas de conexão
Se você tiver dificuldade para se conectar à sua instância do Linux SQL Server, há algumas coisas a verificar.
Se não conseguires conectar-te localmente usando o
localhost, tenta usar o endereço IP 127.0.0.1. É possível quelocalhostnão esteja devidamente mapeado para este endereço.Verifique se o nome do servidor ou o endereço IP está acessível a partir da máquina cliente.
Para encontrar o endereço IP da sua máquina Ubuntu, você pode executar o
ifconfigcomando como no exemplo a seguir:sudo ifconfig eth0 | grep 'inet addr'Para Red Hat, você pode usar o
ip addrcomando como no exemplo a seguir:sudo ip addr show eth0 | grep "inet"Sugestão
Uma exceção a essa técnica está relacionada às VMs do Azure. Para VMs do Azure, localize o IP público para a 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 utilizador e a senha não contêm erros de digitação, espaços extra ou maiúsculas e minúsculas incorretas.
Tente definir explicitamente o protocolo e o número da porta com o nome do servidor, como no exemplo a seguir:
tcp:servername,1433.Problemas de conectividade de rede também podem causar erros de conexão e tempos limites. Depois de verificar as informações de conexão e a conectividade de rede, tente a conexão novamente.
Gerenciar o serviço SQL Server
A seção a seguir mostra como gerenciar a execução de contêineres do SQL Server Linux. Para gerenciar serviços para Linux, consulte Iniciar, parar e reiniciar serviços do SQL Server no Linux.
Gerenciar a execução do contêiner Linux do SQL Server
Você pode obter o status e a ID do contêiner do SQL Server Linux criado mais recentemente executando o seguinte comando (A ID está na CONTAINER ID coluna):
sudo docker ps -l
Você pode parar ou reiniciar o serviço do SQL Server conforme necessário usando os seguintes comandos:
sudo docker stop <container ID>
sudo docker restart <container ID>
Sugestão
Para obter mais dicas de solução de problemas para contêineres Linux, consulte Solucionar problemas de contêineres do SQL Server Docker.
Aceder aos ficheiros de registo
O Mecanismo de Banco de Dados do SQL Server registra no /var/opt/mssql/log/errorlog arquivo nas instalações do Linux e do contêiner. Você precisa estar no modo de superusuário para navegar neste diretório.
Os registos do instalador estão aqui: /var/opt/mssql/setup-<time stamp representing time of install> Pode navegar pelos errorlog arquivos com qualquer ferramenta que seja compatível com UTF-16, como vim ou cat, assim:
sudo cat errorlog
Se preferir, você também pode converter os arquivos para UTF-8 para lê-los com mais ou menos com o seguinte comando:
sudo iconv -f UTF-16LE -t UTF-8 <errorlog> -o <output errorlog file>
Eventos prolongados
Os eventos estendidos podem ser consultados por meio de um comando SQL. Para obter mais informações, consulte eventos estendidos.
Relatórios de falha
Procura os dumps no diretório de registos no Linux. Verifique no diretório /var/opt/mssql/log para dumps do Linux Core (com extensão .tar.gz2) ou minidumps SQL (com extensão .mdmp).
Por exemplo, para exibir dumps principais:
sudo ls /var/opt/mssql/log | grep .tar.gz2
Para exportações SQL, utilize este script:
sudo ls /var/opt/mssql/log | grep .mdmp
Inicie o SQL Server em configuração mínima ou no modo de usuário único
Inicie o SQL Server no modo de configuração mínima
Este modo é útil se a definição de um valor de configuração (por exemplo, sobrecomprometimento de memória) impedir que o servidor seja iniciado.
sudo -u mssql /opt/mssql/bin/sqlservr -f
Iniciar o SQL Server no modo de usuário único
Às vezes, talvez seja necessário iniciar uma instância do SQL Server no modo de usuário único usando a opção -mde inicialização . Para obter mais informações, consulte parâmetros de inicialização. Por exemplo, talvez você queira alterar as opções de configuração do 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 sqlcmd:
sudo -u mssql /opt/mssql/bin/sqlservr -m sqlcmd
Você deve sempre iniciar o SQL Server no Linux com o mssql usuário para evitar problemas de inicialização futuros. Por exemplo: sudo -u mssql /opt/mssql/bin/sqlservr [STARTUP OPTIONS]
Se iniciar acidentalmente o SQL Server com outro usuário, deverá alterar a propriedade dos arquivos de base de dados do SQL Server de volta para o usuário mssql antes de iniciar o SQL Server com systemd. Por exemplo, para alterar a propriedade de todos os ficheiros de base de dados em /var/opt/mssql para o utilizador mssql, execute o seguinte comando:
chown -R mssql:mssql /var/opt/mssql/
Reconstruir bancos de dados do sistema
Como último recurso, você pode optar por reconstruir os master bancos de dados e model de volta às versões padrão.
Advertência
Esse processo é perigoso, porque você pode excluir todos os dados do sistema SQL Server que você configurou, incluindo informações sobre seus bancos de dados de usuário (mas não os próprios bancos de dados de usuário).
Você precisa anexar os bancos de dados de usuário à instância posteriormente. Também elimina outras informações armazenadas nas bases de dados do sistema, incluindo:
- informações sobre a chave mestra do banco de dados (DMK)
- quaisquer certificados carregados em
master - a palavra-passe da
saconta - informações relacionadas ao trabalho de
msdb - Informações do Database Mail a partir de
msdb -
sp_configureOpções
Não é possível reanexar nenhum banco de dados de usuário criptografado com criptografia de dados transparente (TDE), a menos que seus certificados e chaves privadas também sejam copiados.
Use estes passos apenas se entender as implicações.
Parar o Mecanismo de Banco de Dados do SQL Server
sudo systemctl stop mssql-serverExecutar sqlservr com o
force-setupparâmetrosudo -u mssql /opt/mssql/bin/sqlservr --force-setupVocê deve sempre iniciar o SQL Server no Linux com o
mssqlusuário para evitar problemas de inicialização futuros.Depois de ver a mensagem "A recuperação está concluída", pressione Ctrl+C. Isso desliga o SQL Server.
Reconfigure a
sasenha.sudo /opt/mssql/bin/mssql-conf set-sa-passwordAtenção
A sua palavra-passe deve seguir a política de palavra-passe padrão do SQL Server . Por padrão, a senha deve ter pelo menos oito caracteres e conter caracteres de três dos quatro conjuntos a seguir: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.
Inicie o SQL Server e reconfigure o servidor, incluindo a restauração ou reanexação de bancos de dados de usuários.
sudo systemctl start mssql-server
Melhorar o desempenho
Muitos fatores afetam o desempenho, incluindo o design do banco de dados, o hardware e as demandas de carga de trabalho. Se você estiver procurando melhorar o desempenho, comece analisando as práticas recomendadas no artigo, Práticas recomendadas de desempenho e diretrizes de configuração para o SQL Server no Linux. Em seguida, explore algumas das ferramentas disponíveis para solucionar problemas de desempenho.
- Monitorar o desempenho usando o Repositório de Consultas
- Visualizações de gerenciamento dinâmico do sistema
- Painel de desempenho no SQL Server Management Studio
Problemas comuns
Você não pode se conectar à sua instância remota do SQL Server.
Consulte a seção de solução de problemas do artigo, Conectar-se ao SQL Server no Linux.
Você vê a mensagem de erro:
ERROR: Hostname must be 15 characters or less.Esse é um problema conhecido que acontece sempre que o nome da máquina que está tentando instalar o pacote do SQL Server tem mais de 15 caracteres. Atualmente, não há nenhuma solução alternativa além de alterar o nome da máquina. Você pode fazer isso editando tanto
/etc/hostnamequanto/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 o serviço do SQL Server temporariamente.Se você esquecer a
sasenha ou precisar redefini-la por algum outro motivo, siga estas etapas.Entre no terminal host, execute os seguintes comandos e siga as instruções para redefinir a
sasenha:sudo systemctl stop mssql-server sudo /opt/mssql/bin/mssql-conf setupAtenção
A sua palavra-passe deve seguir a política de palavra-passe padrão do SQL Server . Por padrão, a senha deve ter pelo menos oito caracteres e conter caracteres de três dos quatro conjuntos a seguir: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.
Caracteres especiais em senhas podem causar erros ou falhas de login.
Se utilizares alguns caracteres na senha do SQL Server, poderás precisar de escapar a esses caracteres com uma barra invertida ao usá-los na linha de comando do Linux. Por exemplo, você deve escapar do cifrão (
$) sempre que usá-lo em um comando/shell script 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 (tag sql-server): Faça perguntas sobre o SQL Server
- Stack Overflow (tag sql-server): respostas a perguntas de desenvolvimento SQL
- Termos e informações de licença do Microsoft SQL Server
- Opções de suporte para utilizadores empresariais
- Ajuda e comentários adicionais do SQL Server
Contribuir para a documentação do SQL
Você sabia que você mesmo pode editar conteúdo SQL? Se o fizer, não só ajudará a melhorar a nossa documentação, como também será creditado como contribuidor da página.
Para obter mais informações, consulte Editar a documentação do Microsoft Learn.