Como Detectar a Ausência de Backups no SQL Server

Uma das responsabilidades mais críticas de um DBA é garantir que todos os bancos de dados estejam sendo devidamente respaldados com seus respectivos backups. No entanto, em ambientes com muitos bancos (como ambientes de desenvolvimento, homologação ou clientes distintos), é comum que alguns acabem ficando sem backups por engano.

Neste post, você vai aprender como identificar rapidamente quais bancos estão sem backup recente — de forma prática, utilizando apenas T-SQL.

🎯 O Problema

Você tem 20, 30, 50 bancos na instância. Alguns são recém-criados, outros restaurados de um .bak e ainda sem plano de backup agendado. Como garantir que todos estejam protegidos?

A resposta está nas DMVs do SQL Server.


🔍 Query para Identificar Bancos Sem Backup

SELECT 
    d.name AS Banco,
    d.recovery_model_desc AS RecoveryModel,
    ISNULL(CONVERT(VARCHAR, bs.backup_finish_date, 120), 'NUNCA') AS UltimoBackup,
    DATEDIFF(DAY, ISNULL(bs.backup_finish_date, '19000101'), GETDATE()) AS DiasSemBackup
FROM sys.databases d
LEFT JOIN (
    SELECT database_name, MAX(backup_finish_date) AS backup_finish_date
    FROM msdb.dbo.backupset
    WHERE type = 'D' -- D = Full Backup
    GROUP BY database_name
) bs ON d.name = bs.database_name
WHERE d.database_id > 4 -- ignora bancos de sistema
ORDER BY DiasSemBackup DESC

📌 O que essa query mostra?

  • Nome dos bancos de dados

  • Modelo de recuperação (Recovery Model)

  • Data do último backup full (ou "NUNCA" se nunca foi feito)

  • Quantidade de dias desde o último backup


⚠️ Como usar isso na prática?

  • Crie um job diário que execute essa consulta e envie alertas por e-mail

  • Combine com verificações de backup de log e diferencial, se aplicável

  • Mantenha uma política clara para cada tipo de banco (produção, dev, teste)


💡 Dicas adicionais

  • Use essa verificação antes de operações de manutenção.

  • Analise bancos com backup muito antigo: eles ainda estão em uso?

  • Automatize alertas via SQL Agent ou PowerShell.


Não basta ter scripts de backup rodando — é preciso garantir que todos os bancos tenham backups recentes e que nada está sendo deixado para trás.

Esse simples diagnóstico pode evitar perdas catastróficas de dados.


Fui, mas volto com mais SQL Server em breve!

✍️ Sobre o autor
O Prof. Landry é especialista em Microsoft SQL Server desde 1999, Microsoft Trainer, Professor Universitário e criador do canal SQL Server Expert no YouTube, com conteúdo técnico semanal para DBAs e profissionais de dados.

🚀 Quer aprender mais sobre SQL Server?
👉 Me acompanhe no LinkedIn e inscreva-se no canal para não perder nenhuma dica prática!

0
Subscribe to my newsletter

Read articles from SQL Server Expert directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

SQL Server Expert
SQL Server Expert

O Prof. Landry Duailibe é especialista em Microsoft SQL Server desde 1999, Microsoft Certified Trainer, professor universitário e criador do canal SQL Server Expert no YouTube, onde compartilha conteúdo técnico semanal para DBAs e profissionais de dados. Já ajudou milhares de alunos a evoluírem suas habilidades com SQL Server e conquistarem melhores oportunidades na área de dados.