Bardzo często zdarza się, że na szybko utworzymy bazę czy bazy danych a całkowicie zapominamy o tym by wykonać odpowiedni backup. Poniżej skrypt zwracający listę baz bez wykonanych backupów.

-- list databases without any backup
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
master.sys.sysdatabases.NAME AS database_name,
NULL AS [Last Data Backup Date]
FROM
master.sys.sysdatabases
LEFT JOIN msdb.dbo.backupset
ON master.sys.sysdatabases.name = msdb.dbo.backupset.database_name
WHERE
msdb.dbo.backupset.database_name IS NULL
AND master.sys.sysdatabases.name <> 'tempdb'
ORDER BY
msdb.dbo.backupset.database_name

Dodatkowy skrypt, który można np. umieścić jako krok w jobie. Jeśli na liście będą jakiekolwiek bazy bez backupu wygeneruje się błąd.

 --JOB ALERT  list databases without any backup
IF EXISTS(
   SELECT 1
FROM 
   master.sys.sysdatabases 
   LEFT JOIN msdb.dbo.backupset 
	ON master.sys.sysdatabases.name = msdb.dbo.backupset.database_name 
WHERE 
   msdb.dbo.backupset.database_name IS NULL 
   AND master.sys.sysdatabases.name <> 'tempdb' 
)  THROW 51000, 'Backup(s) - Databases without any backup in history', 16 else print 'OK'


Dariusz Brejnak

Od prawie trzydziestu lat jest pasjonatem informatyki, a zwłaszcza dziedzin dotyczących baz danych, hurtowni danych oraz ogólnie rozumianej tematyki BI. Jego druga pasja to fotografia http://dariuszbrejnak.pl