Situatie
Pentru cazurile in care avem nevoie sa vedem istoricul de backup pentru o anumita baza de date, am facut o procedura care returneaza acest lucru.
Procedura primeste doi parametrii:
@BazaDeDate
@NrZileIstoric
In functie de acesti parametrii procedura returneaza istoricul de backupuri, incepand de astazi si pana cu @NrZileIstoric in urma, pentru baza primita drept parametru @BazaDeDate.
(Zilele sunt calculate ca numar de 24 de ore)
Ca si informatii suplimentare procedura returneaza:
– data la care a inceput fiecare backup
– data la care s-a terminat fiecare backup
– daca backupul e pus sa expire sau nu (in cazul in care expira apare data expirarii)
– tipul backupului facut: Full, Differential, Log
– dimensiunea backupului
– locul in care a fost facut: intr-un backup device sau pe disk (daca a fost facut pe disk este afisata calea de pe disk)
Procedura nu trebuie pusa neaparat pe baza la care se doreste verificat istoricul de backup, ci poate fi pusa pe orice baza de pe serverul pe care se afla baza la care se doreste verificat istoricul de backup.
Solutie
create procedure BD_VerificareIstoricBackup_prc
@BazaDeDate varchar(100),
@NrZileIstoric int
as
SELECT
CONVERT(CHAR(100),
SERVERPROPERTY(‘Servername’)) AS [Server],
msdb.dbo.backupset.database_name,
msdb.dbo.backupset.backup_start_date,
msdb.dbo.backupset.backup_finish_date,
msdb.dbo.backupset.expiration_date,
CASE msdb..backupset.type
WHEN ‘D’ THEN ‘Full’
WHEN ‘I’ THEN ‘Differential’
WHEN ‘L’ THEN ‘Log’
END AS backup_type,
msdb.dbo.backupset.backup_size,
msdb.dbo.backupmediafamily.logical_device_name,
msdb.dbo.backupmediafamily.physical_device_name
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
WHERE
msdb.dbo.backupset.database_name = @BazaDeDate AND
(CONVERT(datetime, msdb.dbo.backupset.backup_start_date, 102) >= GETDATE() – @NrZileIstoric)
ORDER BY
msdb.dbo.backupset.backup_finish_date DESC
Leave A Comment?