jueves, 24 de noviembre de 2016

SQL SERVER HISTORIAL DE BACKUP Y RESTORE

Estuve revisando como poder obtener un listado de todas las copias de seguridad que realizo sobre las  base de datos para poder ayudarme con el inventario de backups, además quería saber en que fecha realice la restauración de una base de datos determinada en el ambiente de desarrollo y pruebas, pues siempre se hace la pregunta  ¿ De que fecha es la base de datos X?


Este script que arme te permite obtener los datos de los backups realizados, como el tamaño, duración del backup, el tipo  o donde se guardo el archivo

select
Base= b.database_name,
HoraInicio= b.backup_start_date
,Duracion=convert(varchar,dateadd(ms,DATEDIFF (ms, b.backup_start_date, b.backup_finish_date),'01/01/1900'),108)
,TamañoMB=convert(decimal(15,2), b.backup_size /1048576)
,case  b.type
when 'D' then 'Total'
when 'L' then 'Log'
when 'I' then 'Diferencial'
end as Tipo,
Usuario= b.user_name,
Servidor= b.server_name,
ModoRecuperación= b.recovery_model,
RutaDestino=f.physical_device_name ,
EsSoloCopia= b.is_copy_only
from msdb.dbo.backupset  b
inner join msdb.dbo.backupmediaset s on  b.media_set_id = s.media_set_id
inner join msdb.dbo.backupmediafamily f on s.media_set_id = f.media_set_id

Y para poder obtener el historial de restauraciones uso el siguiente script en el cual
obtiene en que fecha se ejecuto el backup y el archivo usado.

select
Base= b.database_name,
HoraRestauración=rh.restore_date
,TamañoMB=convert(decimal(15,2), b.backup_size /1048576)
,case  b.type
when 'D' then 'Total'
when 'L' then 'Log'
when 'I' then 'Diferencial'
end as Tipo,
Usuario=rh.user_name ,
ModoRecuperación= b.recovery_model,
RutaOrigen=f.physical_device_name ,
BaseDestino=rh.destination_database_name
from msdb.dbo.backupset  b
inner join msdb.dbo.backupmediaset s on  b.media_set_id = s.media_set_id
inner join msdb.dbo.backupmediafamily f on s.media_set_id = f.media_set_id
inner join msdb.dbo.restorehistory rh on  b.backup_set_id = rh.backup_set_id

No hay comentarios:

Publicar un comentario