Você Sabe de Onde Veio Esse Restore? Esse Script Sabe.
- CloudDB

- 2 de abr.
- 2 min de leitura
O Script SQL que Todo DBA Gostaria de Ter Descoberto Antes
Existem dois tipos de times de banco de dados:
Os que acham que sabem de onde veio um banco restaurado…
E os que conseguem provar isso em segundos.
Esse script é para o segundo grupo.
À primeira vista, parece apenas mais uma query no msdb. Mas na prática, ele resolve um problema real que todo DBA já enfrentou:
Descobrir exatamente de onde veio um restore.
Por que isso importa
Restores acontecem o tempo todo:
refresh de produção para QA
cópias para testes
recuperação de incidentes
validação de disaster recovery
investigação de dados inconsistentes
E aí, dias depois, vem a pergunta:
“De qual backup esse banco foi restaurado?”
E começa o caos:
histórico de jobs
scripts antigos
pastas compartilhadas
memória das pessoas
Esse script elimina tudo isso.
O que ele faz
Ele consulta três tabelas do msdb:
restorehistory → histórico de restores
backupset → detalhes do backup
backupmediafamily → arquivo físico do backup
Depois usa ROW_NUMBER() para pegar apenas o restore mais recente de cada banco.
Resultado: uma visão limpa, direta e extremamente útil.
O que você ganha com isso
Com uma única query, você vê:
instância SQL
banco restaurado
data do restore
banco de origem
início e fim do backup
arquivo utilizado
servidor que gerou o backup
Isso não é só informação.
É rastreabilidade.
Por que DBAs adoram esse tipo de script
Porque ele transforma investigação em resposta.
Sem adivinhação.
Sem perda de tempo.
Sem depender de ninguém.
E não é só para DBAs
Esse script também é útil para:
auditoria
troubleshooting
validação de DR
controle de mudanças
governança de dados
Basicamente, ele reduz incerteza.
E incerteza custa caro.
O script
SELECT *
FROM (
SELECT
ROW_NUMBER() OVER(
PARTITION BY rs.[destination_database_name]
ORDER BY bs.[backup_start_date] DESC
) AS row_id,
@@SERVERNAME AS [instance_name] ,
rs.[destination_database_name],
rs.[restore_date],
bs.[backup_start_date],
bs.[backup_finish_date],
bs.[database_name] AS [source_database_name],
bmf.[physical_device_name] AS [backup_file_used_for_restore],
bs.[server_name] AS [backup_instance_name]
FROM msdb..restorehistory rs
INNER JOIN msdb..backupset bs
ON rs.[backup_set_id] = bs.[backup_set_id]
INNER JOIN msdb..backupmediafamily bmf
ON bs.[media_set_id] = bmf.[media_set_id]
) MAS
WHERE row_id = 1
--and destination_database_name like 'VPM25'
ORDER BY restore_date DESC;
Reflexão final
Um bom DBA restaura bancos.
Um excelente DBA sabe contar a história completa daquele restore.
Esse script ajuda exatamente nisso.
E aqui vai a versão pronta para LinkedIn 👇
Escrita
Todo DBA já passou por isso:
Um banco é restaurado.
Tudo parece certo.
Aí vem a pergunta:
“De qual backup isso veio?”
Silêncio.
Esse script resolve isso em segundos.
Ele consulta o msdb e mostra o último restore de cada banco com:
banco de destino
data do restore
início/fim do backup
banco de origem
arquivo usado
servidor de origem
Ou seja: rastreabilidade total sem dor de cabeça.
Os melhores scripts não são os mais complexos.
São os que respondem perguntas críticas rapidamente.
Pequeno.
Simples.
Essencial.



Comentários