Fala pessoal, hoje a dica é sobre como automatizar os testes de integridade nos backups diários.
Na rotina abaixo testo a integridade dos backups maiores que D-1.
Referência: https://msdn.microsoft.com/pt-br/library/ms188902.aspx
DECLARE @SQL VARCHAR(MAX)
DECLARE @BKP sysname
DECLARE curDB CURSOR FORWARD_ONLY STATIC FOR
SELECT
bmf.physical_device_name
FROM msdb.dbo.backupmediafamily bmf
INNER JOIN msdb.dbo.backupset bs ON bmf.media_set_id = bs.media_set_id
WHERE (CONVERT(datetime, bs.backup_start_date, 102) >= GETDATE() – 1)
AND bs.type LIKE 'D'
ORDER BY
bs.database_name,bs.backup_finish_date
OPEN curDB
FETCH NEXT FROM curDB INTO @BKP
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @SQL = 'restore verifyonly from disk = '+""+ltrim(rtrim(@BKP))+""+' WITH CHECKSUM;'
EXEC(@SQL)
-- PRINT @SQL
FETCH NEXT FROM curDB INTO @BKP
END
CLOSE curDB
DEALLOCATE curDB
SQL