jueves, 24 de noviembre de 2016

Historial de correos enviados por Servidor SQL

Esta pequeña consulta te puede ayudar  a obtener los email enviados por el servidor de base de datos, esto es muy util para llevar un control de los correos o si se estan cumpliendo ciertas reglas..

select
mailitem_id,
destinatario=recipients
,CC=copy_recipients
,CCO=blind_copy_recipients
,Asunto=subject
,Cuerpo=body
,Formato=body_format
,Adjunto=file_attachments
,UsuarioEjecuta=send_request_user
,FechaSolicitud=send_request_date
,sent_date
from msdb.dbo.sysmail_allitems
where  subject like '%descober%'
order by mailitem_id


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