SQL Server: zapytanie kiedy wykonują się backupy?

Microsoft SQL Server przechowuje w bazie Master informacje o łańcuchu kopi zapasowych wykonywanych na wszystkich bazach. Czasami administrator chciałby wiedzieć kiedy jaka baza miałą wykonywany backup? Jakiego był on typu, której bazy dotyczył? Jaka aplikacja go wykonywała albo jak długo trwał? Wszystkie te informacje pomoże wam uzyskać sprawdzone rozwiązanie w postaci poniższego zapytania T-SQL.

Samo zapytanie jest bardzo proste, natomiast tabela systemowa msdb.dbo.backupset w bazie Master przechowuje znacznie więcej informacji. My skupiliśmy się na podstawowych parametrach wykonywanych kopi takich jak: nazwa bazy, data i czas początku procesu, data i czas końca procesu. Wyliczyliśmy czas trwania operacji w minutach, zapytaliśmy o rozmiar backupu, typ wykonywanej kopi i jaka aplikacja wykonywała ten proces.

select 
  b.database_name
, b.backup_start_date
, b.backup_finish_date
, [time_in_minutes]=datediff(mi,b.backup_start_date,b.backup_finish_date) 
, b.backup_size
, [backup_type] = CASE b.type
				  when 'D' then 'Full'
				  when 'L' then 'Log'
				  when 'I' then 'Differential database'
				  when 'F' then 'File/Filegroup'
				  when 'P' then 'Partial'
				  when 'G' then 'Differential file'
				  when 'Q' then 'Differnetial partial'
				  END
, b.software_vendor_id

from msdb.dbo.backupset b

order by b.backup_start_date desc

Wykonanie tego zapytania np w Microsoft SQL Server Management Studio da nam szczegółowe informacje o backupach wszystkich baz danych znajdujących się w instancji SQL. W naszym wypadku software_vendor_id to SQL Server 2016