Fala galera! Todos bem!?!?! Bora falar hoje sobre Health Check.
Como DBA, você sabe que a saúde do ambiente de banco de dados é crucial para o funcionamento eficiente e seguro de qualquer sistema. O Health Check, ou "check-up", é uma ferramenta essencial para avaliar e diagnosticar a condição atual do seu ambiente. Neste post, exploraremos a importância do Health Check e os principais aspectos técnicos que devem ser abordados durante essa análise.
1. Segurança do Ambiente de Banco de Dados
Um dos aspectos mais críticos do Health Check é a avaliação da segurança do ambiente de banco de dados. Aqui estão alguns dos principais pontos técnicos que devem ser considerados:
Verificação das configurações de segurança, incluindo a habilitação do usuário 'sa' e suas respectivas senhas.
Avaliação da configuração de portas e firewall para garantir a proteção contra tentativas de invasão.
Análise da integridade das bases de dados para identificar possíveis problemas de corrupção e garantir a segurança dos dados.
Veja alguns exemplos de scripts que podem ser usados para coletar informações de segurança importantes em um ambiente de banco de dados SQL Server.
Verificar se o usuário 'sa' está habilitado
SELECT CASE
WHEN SERVERPROPERTY('IsIntegratedSecurityOnly') = 1 THEN 'Windows Authentication Only'
ELSE 'Mixed Mode Authentication'
END AS Authentication_Mode,
CASE
WHEN IS_SRVROLEMEMBER ('sysadmin') = 1 THEN 'Enabled'
ELSE 'Disabled'
END AS 'SA_Login_Enabled';
Verificar a política de alteração de senha do usuário 'sa'
Verificar se o Firewall do Windows está ativado
Verificar a porta de escuta padrão do SQL Server
Verificar a conta do serviço do SQL Server
2. Desempenho do banco de dados
O desempenho do sistema é outro aspecto crítico que o Health Check deve abordar. Aqui estão algumas das principais métricas técnicas que devem ser consideradas:
Avaliação da política de manutenção de índices, incluindo rebuilds e reorganizações, para garantir o desempenho ideal do banco de dados.
Verificação do tempo de execução de consultas e procedimentos armazenados para identificar possíveis gargalos de desempenho.
Análise do consumo de CPU e memória para otimizar a utilização dos recursos do servidor.
Indicadores como consumo de memória, CPU, Page life, batch requests, user connections, IOs.
Identificar maiores esperas (WAITS) da instância para tratar.
Estes scripts fornecerão insights importantes sobre o desempenho do seu ambiente de banco de dados
Verificar a fragmentação dos índices em todas as tabelas do banco de dados
USE [SeuBancoDeDados];
GO
SELECT
OBJECT_NAME(ps.object_id) AS 'Nome da Tabela',
i.name AS 'Nome do Índice',
ps.index_type_desc AS 'Tipo de Índice',
ps.avg_fragmentation_in_percent AS 'Fragmentação Média (%)'
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id AND ps.index_id = i.index_id
WHERE ps.avg_fragmentation_in_percent > 10
ORDER BY ps.avg_fragmentation_in_percent DESC;
Verificar a data da última atualização das estatísticas das tabelas a mais de 90 dias
Verificar a quantidade de memória em buffer utilizada pelo SQL Server
Verificar os planos de execução em cache do SQL Server
Listar os top 5 waits na instância do SQL Server
3. Estratégias de Backup e Recuperação
O Health Check também deve incluir uma avaliação detalhada das estratégias de backup e recuperação do ambiente de banco de dados. Aqui estão algumas das principais considerações técnicas:
Verificação da frequência e integridade dos backups, incluindo backups completos, diferenciais e de log.
Avaliação da política de armazenamento de backups fora do ambiente de produção para garantir a resiliência do sistema em caso de falhas ou desastres.
Existência de testes dos procedimentos de recuperação para garantir a eficácia e confiabilidade dos backups.
Estes scripts podem ajudar a verificar quando os backups foram realizados pela última vez em cada banco de dados.
Verificar a última vez que os backups foram executados
SELECT
database_name AS 'Nome do Banco de Dados',
MAX(backup_finish_date) AS 'Último Backup Realizado'
FROM msdb.dbo.backupset
WHERE type = 'D' -- D para backup de banco de dados completo
GROUP BY database_name;
Verificar se os backups de log foram executados recentemente
Você pode ver mais detalhes sobre o assunto nesse vídeo do meu canal do youtube.
Concluindo
O Health Check é uma ferramenta essencial para DBAs que desejam garantir a saúde e segurança do ambiente de banco de dados. Ao abordar aspectos técnicos como segurança, desempenho e estratégias de backup, os DBAs podem identificar e resolver problemas antes que se tornem crises. Não deixe de realizar regularmente o Health Check em seu ambiente de banco de dados e garantir a continuidade operacional do seu sistema. Ele é essencial também quando você passa a administrar um ambiente novo, que não esta dentro das boas praticas, com esse panorama geral, você já sabe onde precisa atacar para resolver possíveis dores de cabeça.
Lembre-se: a prevenção é sempre melhor do que a correção. Invista tempo e recursos no Health Check e proteja o ambiente de banco de dados contra possíveis falhas e vulnerabilidades. As empresas agradecerão por isso.
Você pode reunir o seu pack de scripts pessoais para realizar esse trabalho ou alternativamente você pode utilizar um procedimento disponibilizado gratuitamente pelo Brent Ozar chamado sp_blitz, é uma procedure desenvolvida por ele que reúne dezenas de checagens em um único script, ele gera um log em um arquivo excel, é muito interessante e eu já usei várias vezes, recomendo!
Se você quer aprender muito mais e ser um(a) DBA SQL Server Jr faça parte da Iniciativa DBA (Saiba mais) !
Ebook 10 passos para ser um DBA SQL Jr (Saiba mais)!
Nos acompanhe em nossas redes sociais!
Grupo VIP Telegram: DBA On boarding
Youtube: DBA On boarding
Face & Instagram: DBA On boarding
Até a próxima, tchau!