top of page

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

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.


 
 
 

Posts recentes

Ver tudo

Comentários


Logo_quadrada.png

CLOUD DB LTDA - 28.961.479/0001-41

© 2020 Direitos Reservados CloudDB ®  O plágio é considerado crime e sua principal referência é a lei 9.610 - ♥ SEO WIX Partner - Phoenix

bottom of page