E ai galerinha, tudo bem com vocês?
Hoje quero ajudá-los em uma das tarefas mais importantes da vida de um DBA: O BACKUP!!!!!!
Agora me responda:
Qual a data do último backup, realizado com sucesso, de cada um dos bancos de dados que você administra?
Tenho certeza de que para responder minha pergunta, muitos de vocês foram verificar cada um dos arquivos de backup e conferir qual a data do mais atual, certo?
E se dissesse que podemos levantar essa informação através de uma query simples utilizando as tabelas de sistema do SQL SERVER?
Para que isso seja possível, precisaremos utilizar as seguintes tabelas de sistema:
– master..sydatabases;
– msdb..backupset;
– msdb..backupmediafamily
A query que nos trará a informação sobre a data dos últimos backups realizados, agrupando por cada banco de dados, é a seguinte:
–Listar os
últimos backups realizados com SUCESSO
SELECT
bs.database_name AS
Nome_Banco,
CASE bs.type
WHEN ‘D’ THEN ‘DADOS’
WHEN ‘L’ THEN ‘LOG’
END AS Tipo_Backup,
MAX(bs.backup_start_date) AS Data_Ultimo_Backup
FROM
master..sysdatabases sd
LEFT JOIN
msdb..backupset bs
ON
bs.database_name = sd.name
LEFT JOIN
msdb..backupmediafamily bmf
ON
bs.media_set_id = bmf.media_set_id
GROUP BY
sd.name,
bs.type,
bs.database_name
ORDER BY
Nome_Banco,
Data_Ultimo_Backup
Como podem ver, é uma query extremamente simples e que pode fazer parte de um job para que todas as noites você receba um email com as datas dos últimos backups realizados.
Gosto sempre de relembrar pessoal.
É imprescindível termos uma estratégia de backup, mas também é importantíssimo um acompanhamento para ter certeza de que a estratégia de backup está sendo realizada com sucesso.
Espero que tenham gostado dessa dica.
Um abraço a todos e um ótimo feriado.
Vitor Fava.
e ae vitor tranquilo?
uma observação. O campo nome_banco deve ser selecionado da tabela sysdatabases campo name, pois quando não há nenhum backup realizado para um banco o nome não virá nulo.
Abç e t´+.
Fala grande Elias.
Obrigado pela sua participação.
O seu comentário está corretíssimo.
Caso não exista nenhum backup realizado o valor da coluna “Nome_Banco” será nula.
Já realizei a alteração no script.
Continue participando.
Grande abraço.
Grande Vitor,
Testado e aprovado, valeu cara pelo força, obrigado professor (brincadeira)
Um abraço
Vitor não consegui executar esse cara( )
Comando:
SELECT
bs.database_name AS
Nome_Banco,
CASE bs.type
WHEN ‘D’ THEN ‘DADOS’
WHEN ‘L’ THEN ‘LOG’
END AS Tipo_Backup,
MAX(bs.backup_start_date) AS Data_Ultimo_Backup
FROM
master..sysdatabases sd
LEFT JOIN
msdb..backupset bs
ON
bs.database_name = sd.name
LEFT JOIN
msdb..backupmediafamily bmf
ON
bs.media_set_id = bmf.media_set_id
GROUP BY
sd.name,
bs.type,
bs.database_name
ORDER BY
Nome_Banco,
Data_Ultimo_Backup
Erro: ( Msg 102, Level 15, State 1, Line 8
Incorrect syntax near ‘‘’.)
Abs !