Published on

January 17, 2017

Automatização de Verificações de Saúde do Banco de Dados do SQL Server

Como administrador de banco de dados (DBA), sua rotina diária frequentemente envolve a realização de várias verificações de saúde em suas instâncias do SQL Server. Essas verificações garantem que seus bancos de dados estejam funcionando corretamente e quaisquer problemas potenciais sejam identificados e tratados de forma proativa. No entanto, realizar essas verificações manualmente pode ser demorado e repetitivo. Neste artigo, exploraremos o conceito de automatização das verificações de saúde do banco de dados para economizar tempo e melhorar a eficiência.

Arquitetura do Sistema

Para automatizar as verificações de saúde do banco de dados, você pode criar uma solução de monitoramento personalizada usando processos ou jobs agendados. Esses processos executarão scripts SQL que consultam os bancos de dados do sistema e as visualizações de catálogo de suas instâncias do SQL Server. É recomendável criar um “banco de dados de monitoramento” central onde você armazena os procedimentos armazenados e funções necessários para as verificações de saúde.

Há duas abordagens para acessar os servidores para monitoramento. A primeira abordagem é manter uma cópia central do banco de dados de monitoramento e executar os procedimentos nos servidores remotos. A segunda abordagem é ter uma cópia do banco de dados de monitoramento em cada instância monitorada. Ambas as abordagens têm seus próprios requisitos e considerações.

A instância de monitoramento, onde o banco de dados de monitoramento está hospedado, não precisa ser uma máquina de alto desempenho. Pode ser uma máquina virtual, uma máquina de desenvolvimento antiga ou até mesmo a estação de trabalho do DBA. A versão do SQL Server que hospeda o banco de dados de monitoramento dependerá do ambiente atual.

Para enviar relatórios periódicos sobre o status de saúde dos servidores e bancos de dados, você precisará configurar a instância de monitoramento para enviar e-mails usando o Database Mail ou o SQL Mail, dependendo da versão do SQL Server. Além disso, você precisará criar servidores vinculados na instância de monitoramento apontando para cada SQL Server na rede e um servidor vinculado dedicado em cada instância monitorada apontando de volta para o servidor central.

O que Monitorar, Como Monitorar, Quando Monitorar

Depois de configurar o servidor de monitoramento e o banco de dados de monitoramento, você pode começar a desenvolver as verificações de saúde. Aqui estão algumas ideias:

Heartbeat

Implemente um mecanismo de “heartbeat” onde cada instância do SQL Server envia uma pequena mensagem de token para o servidor de monitoramento para indicar que está ativa. O servidor de monitoramento verifica periodicamente essas informações e envia uma mensagem de aviso se um heartbeat não for recebido dentro de um intervalo pré-definido. Isso ajuda a identificar rapidamente se uma instância do SQL Server está inativa.

Status do Banco de Dados

Verifique o status de seus bancos de dados em todos os servidores monitorados usando a função DATABASEPROPERTY. Isso permite identificar se algum banco de dados está em modo suspeito, somente leitura, usuário único, offline ou desligado. Você pode agendar essa verificação para ser executada uma vez por dia, especialmente antes do início do horário normal de trabalho.

Monitor de Jobs

Monitore o status dos jobs em execução em suas instâncias do SQL Server. Em vez de configurar notificações para cada job individualmente, você pode consultar as tabelas sysjobs e sysjobhistory no banco de dados msdb para identificar jobs que falharam dentro de uma janela de tempo especificada. Você pode agendar essa verificação para ser executada todas as manhãs ou a cada hora, dependendo da criticidade dos jobs.

Status de Backup

Garanta que seus backups de banco de dados estejam sendo executados com sucesso. Consulte as tabelas backupset e backupfile no banco de dados msdb para descobrir a última vez que cada banco de dados foi totalmente backupado. Isso ajuda a identificar se algum banco de dados foi deixado de fora do plano de backup. Agende essa verificação para ser executada uma vez por dia após a janela de backup completo programado.

Monitor de Espaço de Arquivo e Disco

Verifique regularmente o espaço em disco do servidor para garantir que os bancos de dados tenham espaço suficiente para crescer. Use a stored procedure estendida xp_fixeddrives para encontrar o espaço livre disponível nas unidades locais de um servidor. Além disso, consulte a stored procedure do sistema sp_helpfile em cada banco de dados para identificar arquivos de dados que estão se aproximando de seu tamanho máximo. Agende o monitor de espaço de arquivo para ser executado uma vez por semana e o monitor de espaço em disco pelo menos uma ou duas vezes por dia.

Conclusão

A automatização das verificações de saúde do banco de dados do SQL Server pode melhorar significativamente a eficiência das tarefas diárias de um DBA. Ao implementar uma solução de monitoramento personalizada, você pode identificar e tratar proativamente problemas potenciais, economizando tempo e esforço. As verificações de saúde discutidas neste artigo são apenas os requisitos mínimos e você pode personalizá-las com base em suas necessidades específicas. Com o monitoramento automatizado em vigor, você pode garantir o bom funcionamento do seu ambiente do SQL Server.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.