Nesse artigo será abordado o envio de relatórios formatados em HTML,
utilizando o SQL Agent e o Database Mail. O exemplo descrito monitora os discos
do servidor, permitindo a visualização de espaço total, livre e o percentual
livre de cada unidade.
O monitoramento automatizado do banco de dados é uma tarefa importantíssima para o DBA, pois é através dele que são obtidas informações sobre a disponibilidade e saúde do ambiente quando o profissional não está em seu horário de trabalho.
Obviamente, esses dados servem para alertar o administrador sobre um problema que está acontecendo ou para preveni-lo de um problema que poderá acontecer.
Alguns monitoramentos indispensáveis devem ser contemplados no projeto de manutenção do ambiente. Vejamos:
· Disponibilidade da instância e seus bancos de dados;
· Utilização dos datafiles e transaction logs;
· Consumo de recursos: CPU, disco e memória;
· Rastreamento de queries mais lentas;
· Situação dos índices (o quanto estão fragmentados);
· Ocorrência de locks;
· Jobs em execução acima do esperado;
· Falha em Jobs agendados;
· Disco I/O;
· Verificação de erros no errorlog;
· Situação das rotinas de backup.
Essas são apenas algumas checagens que devem ser realizadas periodicamente. No entanto, torna-se inviável o DBA verificar todos esses pontos em todos os servidores que ele administra. Para isso existe o monitoramento automatizado e, consequentemente, existem diversas soluções que podem ser adotadas.
Em empresas cujo investimento não é um problema, são implementadas ferramentas dedicadas para tal propósito. Alguns exemplos são: Microsoft System Center, Nimsoft, Zabbix, entre outros.
Porém, em empresas que esse investimento não pode ser pago e que, inclusive, o time de DBAs é reduzido, podem-se obter excelentes resultados de monitoramento configurando a gama de recursos que o SQL Server já tem a oferecer nativamente, sem custo adicional algum.
Em diversas empresas há apenas um ou dois DBAs, o que exige mais controle e conhecimento dos ambientes de banco de dados, considerando que se houver algum problema, o próprio terá que resolver rapidamente.
Portanto, ao configurar verificações mais importantes, já damos ao DBA mais tranquilidade e poder de ação com antecedência. Outro ponto importante é a melhoria contínua do desempenho no banco de dados.
Com um monitoramento adequado, pode-se rastrear e melhorar queries mais lentas, verificação de locks constantes, jobs custosos, fragmentação de índices, crescimento dos datafiles e mais uma série de outras análises, o que tornará a aplicação mais eficiente após ações tomadas em cima desses dados.
Esse artigo irá abordar a combinação de scripts T-SQL que gera relatórios em HTML de uma determinada análise do ambiente, o SQL Agent para agendar essa análise em períodos regulares e o Database Mail para envio do relatório gerado.
O Database Mail
O Database Mail é uma solução para envio de mensagens do mecanismo de banco de dados do SQL Server. Por padrão, o recurso vem desativado e é possível ativá-lo por meio do assistente de configuração. Sua configuração é simples, baseada apenas em um perfil associado a uma conta SMTP.
Há configurações adicionais de parâmetros do sistema em que se restringe o tipo de arquivo (extensão) anexado nas mensagens ou o seu tamanho, por exemplo.
Para usar o Database Mail, o usuário deve
ser membro da função de banco de dados DatabaseMailUserRole
no banco de dados msdb. As
informações de configuração do Database Mail são armazenadas no banco de dados msdb e a procedure sp_send_dbmail contida neste banco é utilizada para a formatação e
envio das men ...