AGUARDE... CARREGANDO...

Criando um E-mail de CheckList Diário no SQL Server

 

checklist

Olá Pessoal,

No dia 07/03/2010 eu fiz meu primeiro post para esse blog: Apresentação

Contudo, foi no dia 24/03/2010 que eu comecei a ficar conhecido no mundo SQL Server. O meu post Criando um CheckList Automático do Banco de Dados bombou!!! Recebi muitos acessos, comentários e a partir disso conheci muitas pessoas novas da comunidade SQL aumentando bastante meu networking.

Hoje, 7 anos depois, esse CheckList em Excel já foi substituído por um Checklist em HTML que vem no corpo do e-mail, conforme esse exemplo abaixo:

Exemplo E-mail com o CheckList do Banco de Dados

Eu implanto esse Checklist em todos os clientes que sou responsável pelo SQL Server e também ministrei até outubro-2016 um workshop pago (3 horas) de como implantar esse Checklist.

Aí que vem a boa notícia, agora que já se passaram 6 meses do meu último workshop pago de como implantar esse CheckList, conforme prometido, estou compartilhando ele grátis com vocês.

Certamente ele tem muita coisa que pode ser melhorada e conto com vocês para dar esse feedback e evoluirmos o CheckList.

Quem já tem esse meu CheckList (alunos ou clientes) também serão beneficiados,  pois estou liberando com algumas melhorias desde o último treinamento em Outubro.

Vamos ao que interessa…

Porque criar um Checklist de monitoramento do Banco de Dados?

Essa é uma maneira simples e rápida de fazer uma checagem em vários itens do seu banco de dados. Com isso, você ganha um bom tempo e não precisa conferir essas informações manualmente, como eu fazia no inicio da carreira sem o Checklist.

Antes de você sair de casa, você já tem o Checklist ali no seu e-mail. Pode olhar no celular e já tomar alguma ação caso seja algo importante.

O que será monitorado com o Checklist

Vamos monitorar esses itens abaixo no CheckList:

1) Disponibilidade do SQL Server
2) Espaço em disco
3) Informações dos Arquivos .MDF
4) Informações dos Arquivos .LDF
5) Crescimento das Bases
6) Crescimento das Tabelas
7) Utilização Disco Writes
8) Utilização Disco Reads
9) Bases sem Backup nas últimas 16 horas
10) Backup FULL e Diferencial
11) Queries em Execução a mais de 2 horas
12) Jobs em Execução
13) Jobs Alterados
14) Jobs que Falharam
15) Jobs Demorados
16) Queries Demoradas Dia Anterior
17) Queries Demoradas – Últimos 10 dias
18) Contadores
19) Conexões Abertas por Usuários
20) Fragmentação dos Índices
21) WAITS Stats Dia Anterior
22) Alertas Sem CLEAR
23) Alertas do Dia Anterior
24) Login Failed
25) Error Log do SQL Server

 

Pré-Requisitos

Para configurar o envio desse CheckList, temos alguns pré-requisitos:

  • Configurar o SQL Server para enviar e-mail (claro)
  • Usuário do SQL com acesso para criar e excluir um arquivo em uma pasta no servidor (isso será necessário na rotina que monitora queries lentas)
  • Criar uma database para logar informações
    • Utilizo uma database com nome “Traces” nos Scripts. Se quiser usar uma base com outro nome, boa sorte no replace de todos os scripts.
Rotinas para logar informações do BD

Algumas das informações que são enviadas no CheckList são coletadas na hora da execução diretamente do SQL Server. Contudo, algumas informações temos que criar um histórico delas para poder enviar no CheckList.

Dessa forma, as rotinas abaixo precisam ser criadas para que o CheckList envie as informações:

1) Server Side Trace guardando as queries que demoram mais de X segundos

Essa rotina já tinha no meu Blog:

Esse trace fica habilitado 24 horas nos meus clientes.

O ponto importante aqui é que cada ambiente tem sua particularidade. Eu monitoro queries que demoram mais de 3 segundos em um ambiente, 5 segundos em outro ambiente e 10 segundos em outro ambiente. Então você deve adaptar essa rotina a sua realidade. Não deixe logar muita informação (sugestão de 3 à 5 mil queries por dia no máximo).

Teste o procedimento em homologação antes de colocar em produção.

2) Rotina para guardar o tamanho das tabela

3) Rotina para guardar o log de contadores

4) Rotina para guardar a fragmentação dos índices

5) Rotina para guardar os Waits Stats

Ainda não tinha publicado uma rotina dessa no meu Blog.

6) Rotina para guardar informações de Leitura e Escrita dos arquivos de dados e log.

Ainda não tinha publicado uma rotina dessa no meu Blog.

Scripts e informações para implantação

Segue abaixo os Scripts que serão utilizados para criar todo esse CheckList:

Segue abaixo o vídeo com a explicação de como executar os scripts:

É isso ai galera… Script prontinho e simples de implantar como viram no vídeo.

Espero que tenha contribuído para tornar seu dia a dia de DBA um pouco mais simples.

Aproveitem o Checklist sem moderação e indiquem para seus conhecidos que possuem um banco SQL Server para que eles também possma usar.

Gostou desse Post?

Curta, comente, compartilhe com os coleguinhas…

Assine meu canal no Youtube e curta minha Página no Facebook para receber Dicas de Leituras e Eventos sobre SQL Server.

Até a próxima.

Abraços,

Fabrício Lima

Microsoft Data Platform MVP

Consultor e Instrutor SQL Server

Trabalha com SQL Server desde 2006

22 thoughts on “Criando um E-mail de CheckList Diário no SQL Server

  1. Estou com um problema no momento que roda o step 3 do desabilita o trace (exclui o arquivo de trace antigo).No historico esta dando a segunte mensagem: Message
    The job failed. The Job was invoked by Schedule 1019 (DBA – Traces Banco de Dados). The last step to run was step 4 (Cria o Trace).

    Sabe o que pode ser? já ate mudei o comando para Del “C:\Temp\Duracao.trc” /F /Q mas não resolveu o problema

    1. Olá Miqueias,

      Verifique se esse caminho existe e se o usuário do SQL Server Agent possui os devidos acessos nessa pasta (acesso FULL). Já tive alguns problemas com isso e tive que alterar na configuração de segurança da pasta.

      Abraço.

      Fabrício

        1. Miqueias,

          Verifica no “Configuration Manager” qual o usuário que está sendo utilizado na coluna “Log On As” pelo “SQL Server Agent” da sua instância.

          Abraço.

          Fabrício

  2. Fabricio, Muito bom seu post e seu material. Estou estudando-os.
    Tenho um cliente que ainda esta utilizando o Sybase ASE 12.0.
    Não sou DBA, estou apenas auxiliando ele na manutenção da base com a experiência que tenho.
    Sabe se essas suas rotinas podem ser adaptadas para o SYBASE, já que é avo do SQL Server?

    Obrigado

Deixe uma resposta

%d blogueiros gostam disto: