Troubleshooting – Parte 1

Troubleshooting – Parte 1

Tempo de leitura: 5 minutos

Olá pessoal, espero que estejam bem. Hoje venho falar de algo muito necessário no dia a dia, isso mesmo TROUBLESHOOTING. Quem me conhecce sabe que sou fanático por alguns itens em específicos relacionados ao SQL Server, e um deles é esse assunto, além de Internals, T-SQL, Performance e Tuning.  Parece brincadeira, mas, costumo dizer para os meus mentorados,” SQL é fácil, comece do básico, seja master no básico”, isso não serve apenas para os meus mentorados, mas, para os DBAs (todos os levels) e os aspirantes a se tornarem DBA.  Parece brincadeira o que vou dizer, mas,  tem algo que o pessoal sempre ignora e que traz informações muitos relevantes do SQL Server. Por isso, hoje gostaria de dedicar o post sobre esse assunto, o ERROR LOG.  Vamos lá

O que é o ErrorLog do SQL Server?

O Error Log do SQL Server é um arquivo de log que registra eventos e erros que ocorrem durante o funcionamento do SQL Server. Ele contém informações sobre erros de sistema, falhas de disco, eventos de segurança, problemas de rede e outras informações relevantes para diagnosticar problemas e monitorar a integridade do servidor SQL.

O Error Log é armazenado como um arquivo de texto em um local definido pelo usuário, geralmente na pasta de dados do SQL Server. Ele é atualizado automaticamente pelo SQL Server conforme os eventos ocorrem e pode ser acessado por meio do Management Studio ou por meio de consultas Transact-SQL.

O Error Log é uma ferramenta útil para os administradores de banco de dados monitorarem a saúde e o desempenho do servidor SQL e para ajudá-los a identificar e corrigir problemas. Ele pode ser usado para rastrear eventos e erros específicos que ocorreram em um determinado momento e também pode ser usado para pesquisar eventos em um período de tempo específico.

Quando devo utilizar o error log do SQL Server? 

O Error Log do SQL Server é uma ferramenta importante que pode ser usada pelos administradores de banco de dados em várias situações, como:

  • Diagnóstico de problemas: O Error Log pode ajudar a identificar e diagnosticar problemas relacionados ao SQL Server, como falhas de disco, problemas de rede, erros de sistema, eventos de segurança e outros problemas que podem afetar o desempenho ou a disponibilidade do servidor.
  • Monitoramento da integridade do servidor: O Error Log pode ser usado para monitorar a integridade do servidor SQL e identificar potenciais problemas antes que eles se tornem críticos. Isso inclui a monitoração de eventos como falhas de disco, erros de sistema e problemas de rede.
  • Suporte técnico: O Error Log é uma fonte valiosa de informações para os técnicos de suporte que estão resolvendo problemas relacionados ao SQL Server. Eles podem usar as informações registradas no Error Log para identificar problemas específicos que estão afetando o sistema e determinar as ações corretivas necessárias.
  • Auditoria: O Error Log pode ser usado como parte de um processo de auditoria para monitorar a atividade do SQL Server e garantir a conformidade com as políticas e regulamentos relevantes.

Em resumo, o Error Log do SQL Server é uma ferramenta essencial que pode ser usada pelos administradores de banco de dados para monitorar e solucionar problemas relacionados ao servidor SQL, bem como para ajudar na auditoria e conformidade regulatória.

Quais tipos de problemas posso diagnosticar com o error log?

O Error Log do SQL Server pode ajudar a identificar e diagnosticar uma ampla variedade de problemas relacionados ao servidor SQL. Alguns exemplos incluem:

  • Erros de conexão: O Error Log pode registrar erros de conexão que podem ajudar a diagnosticar problemas de rede ou problemas de configuração do SQL Server que impedem os usuários de se conectarem ao servidor.
  • Problemas de disco: O Error Log pode registrar erros relacionados ao disco, como falhas de leitura/gravação ou erros de E/S, que podem indicar problemas com o hardware do disco ou com as configurações de armazenamento do SQL Server.
  • Problemas de memória: O Error Log pode registrar erros relacionados à memória, como falhas de alocação de memória ou vazamentos de memória, que podem indicar problemas com a configuração da memória ou com o uso excessivo de memória pelo SQL Server.
  • Problemas de segurança: O Error Log pode registrar eventos de segurança, como tentativas de login falhadas, tentativas de acesso não autorizadas ou erros de autenticação, que podem indicar tentativas de invasão ou problemas de configuração de segurança.
  • Problemas de desempenho: O Error Log pode registrar informações sobre consultas que estão demorando muito tempo para serem executadas ou que estão consumindo muitos recursos do servidor. Isso pode ajudar os administradores a identificar consultas problemáticas e otimizá-las para melhorar o desempenho do servidor.
  • Problemas de replicação: O Error Log pode registrar erros relacionados à replicação, como falhas na sincronização de dados entre bancos de dados, que podem indicar problemas com a configuração ou o desempenho da replicação.
  • Esses são apenas alguns exemplos de problemas que podem ser identificados e diagnosticados usando o Error Log do SQL Server. Em geral, o Error Log é uma ferramenta importante que pode ajudar os administradores a identificar problemas de qualquer natureza que afetem o desempenho ou a disponibilidade do servidor SQL.

Pode me apresentar um exemplo prático TC ? Já era hora de fazer essa pergunta. Pelo SSMS, você pode ir pelo seguinte caminho:

 

 

Basta da dois cliques no “Current” e a a seguinte tela se abrirá, vale lembrar que você pode selecionar mais de um arquivo, mas, quanto maior a quantidade dos arquivos e seu tamanho, ele pode demorar a carregar, travar o SSMS e coisas do tipo.

 

 

Temos outra solução via script que possa ser mais “útil” no meu dia a dia? Claro, vamos abordar ela também.

Com T-SQL é possível usar o comando sp_readerrorlog (ou xp_readerrorlog) para rodar direto no SSMS e trazer os dados. Uma das vantages dessa abordagem é poder filtrar por qual arquivo você quer filtra (assim como no SSMS), mas, você pode passar fragmentos do texto que deseja procurar dentro do arquivo e etc (você pode usar o link que deixei como referência pra aprender mais)

Antes de pular para o próximo exemplo de como usar essa procedure utilizando parâmetros, vamos olhar para o log e  avaliar que informações ele retorna, isso vai reforçar o meu argumento inicial “Não menospreze o ERROR LOG”

Dado o print, o que podemos ver:

  • Hora que o SQL Iniciou e sua versão
  • Edição e informações do SO
  • Qual o Id do processo que o SQL Server tem no Windows (PID do Task Manager)
  • Quantos sockets,cores e processadores lógicos
  • Quantidade de memória RAM
  • Funcionalidades habilitadas (Soft Numa e QDS)
  • Nome da instancia
  • Qual porta o meu SQL está ouvindo (52097) que não é a padrão ( falarei disso em um próximo artigo)
  • E algumas infos sobre o tempdb

OBS – Eu omiti algumas linhas do error log original pra caber tudo em um único print

Viu só? Se um banco de dados ou o SQL não subir devido há algum problema é no error log que ele vai colocar isso e muitas outras coisas. Todo DBA deve sempre olhar o error log como parte do seu checklist. Existem muitos artigos na internet que mostram como automatizar isso (também farei um artigo sobre isso). Dado isso, que outros parâmetros posso utilizar?

Você pode passar o parâmetro Tipo do Log e retornar logs do SQL Agent Logs

Ou até mesmo olhar para o error do SQ (parâmetro 1) e filtrar por mensagem de ERRO ou Warning, após um restart do SQL Server ou instalação de um Service Pack ou Cumulative update

Referência – sp_readerrorlog (Transact-SQL) – SQL Server | Microsoft Learn

Abs e até próxima, TC

 

 

 

Deixe uma resposta

%d blogueiros gostam disto: