Database Restore History
How old is the Database if restored from the Backup file :
In lab environment , we always get the copy of production database and restore it. Have you ever wondered how old is the database in lab environment.
SELECT DISTINCT TOP 100 RH.destination_database_name , RF.file_number , RH.restore_date , RF.destination_phys_drive , RF.destination_phys_name , BS.name AS [Backup_Set_Name] , BS.description , BS.database_creation_date , BS.backup_start_date , BS.database_name , BS.server_name , RH.restore_type , RH.replace , RH.stop_at FROM msdb.dbo.restorehistory AS RH LEFT OUTER JOIN msdb.dbo.restorefile AS RF ON RF.restore_history_id = RH.restore_history_id LEFT OUTER JOIN msdb.dbo.restorefilegroup AS RG ON RG.restore_history_id = RH.restore_history_id LEFT OUTER JOIN msdb.dbo.backupset AS BS ON BS.backup_set_id = RH.backup_set_id WHERE 1 = 1 -- AND RH.destination_database_name = N'MyDatabaseName' -- SELECT DB_NAME() -- restore_type : D=Full, I=Differential, L=Log, G=FileGroup, V=VerifyOnly -- AND RH.restore_type = 'D' ORDER BY RH.restore_date DESC , RF.file_number DESC;
Database Backup History
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SELECT p.database_name AS DatabaseName , p.backup_start_date AS 'Backup_Start_Time' , p.backup_finish_date AS 'Backup_Finish_Time' , CAST(( DATEDIFF(MINUTE, p.backup_start_date, p.backup_finish_date) ) AS VARCHAR) + ' min ' + CAST(( DATEDIFF(ss, p.backup_start_date, p.backup_finish_date) ) AS VARCHAR) + ' sec ' AS [Total Time] , CASE p.type WHEN 'D' THEN 'Full ' WHEN 'I' THEN 'Diffrential' WHEN 'L' THEN 'Log' END AS 'Backup_Type' , CAST(p.backup_size / 1024 / 1024 AS NUMERIC(10, 2)) AS 'Backup_Size_in_MB' , a.physical_device_name AS 'Physical_File_Location' , p.flags FROM msdb..backupmediafamily a , msdb..backupset p WHERE a.media_set_id = p.media_set_id AND p.database_name = ISNULL(NULL, p.database_name) AND p.type = 'D' AND p.flags = '1536' -- COPY_ONLY Backups ORDER BY Backup_Start_Time DESC ;