On the Production Server I created the Job ‘DBA – Backup/Restore MyDatabase’ with two steps 1) Backup MyDatabase, and 2) Restore MyDatabase.
Step 2 just started the Restore job on the Reporting server (detailed in “Part 3”)
Step 1 needed to check that no random backups had happened in the last 24 hours before starting a Diff Backup …
-- If its Friday or the LSN's do not match - do a FULL backup DECLARE @DBName VARCHAR(100) = 'MyDatabase' --<< Database Name IF (SELECT DATEPART(dw, GETDATE())) = 6 --<< = Friday OR (SELECT MAX(differential_base_lsn) FROM [MyProdServer].[master].[sys].[master_files] WHERE [name] LIKE '%' + @DBName + '%') != (SELECT MAX(differential_base_lsn) FROM [MyReportServer].[master].[sys].[master_files] WHERE [name] LIKE '%' + @DBName + '%') BEGIN SELECT 'We can only do a FULL backup' EXECUTE [master].[dbo].[DatabaseBackup] @Databases = @DBName, @Directory = N'\\MyReportServer\backups', @BackupType = 'FULL', @CleanupTime = 1, --<< ONE HOUR @CleanupMode = 'BEFORE_BACKUP', @Compress = 'Y', @CheckSum = 'Y', @LogToTable = 'Y' END -- Else do a DIFF backup ELSE BEGIN SELECT 'we can do a diff backup' EXECUTE [master].[dbo].[DatabaseBackup] @Databases = @DBName, @Directory = N'\\MyReportServer\backups', @BackupType = 'DIFF', @CleanupTime = 168, --<< ONE WEEK @CleanupMode = 'BEFORE_BACKUP', @Compress = 'Y', @CheckSum = 'Y', @LogToTable = 'Y' END
https://richardbriansmith.wordpress.com/2015/10/02/diff-backup-restore-part-3/
https://richardbriansmith.wordpress.com/2015/10/02/diff-backup-restore-part-1/
2 thoughts on “Diff Backup / Restore (part 2)”