## Kedy použiť Po zmene backup jobu, pred testom obnovy alebo keď hľadáš súbor, z ktorého obnovovať. ## Ako čítať výsledok Typ D / I / L = FULL / DIFF / LOG. `has_backup_checksums = 0` znamená zálohu bez CHECKSUM. `physical_device_name` je cesta, kam záloha išla. > [!WARNING] > Záznam v msdb nie je dôkaz obnoviteľnosti – súbor mohol byť medzitým presunutý alebo zmazaný. Pri zálohe do viacerých súborov (stripe) má jedna záloha viac riadkov. Pri Always On sú zálohy zo sekundárnej repliky len v msdb tej repliky. **Oprávnenia:** Čítanie `msdb.dbo.backupset` a `backupmediafamily` (napr. rola `db_datareader` v msdb). **Režim:** READ ONLY · **Verzia:** SQL Server 2016 – 2022 ## Súvisiace recepty - [Posledné zálohy každej databázy](script.php?id=3&s=posledne-zalohy-kazdej-databazy) - [Priebeh BACKUP / RESTORE / DBCC](script.php?id=21&s=priebeh-backup-restore-dbcc)
Skript
História záloh – typ, veľkosť, kompresia, súbor
Posledných 100 záloh z msdb: typ, copy-only, trvanie, veľkosť pred a po kompresii, checksum a cieľový súbor.
Parametre skriptu doplň a kopíruj hotový skript
/* DeadlockCafe | História záloh – typ, veľkosť, kompresia, súbor
Účel: Posledných 100 záloh z msdb: typ, copy-only, trvanie, veľkosť pred a po kompresii, checksum a cieľový súbor.
Režim: READ ONLY | SQL Server 2016 – 2022, on-premises
*/
SET NOCOUNT ON;
DECLARE @DatabaseName sysname = NULL; -- napr. N'MojaDB'; NULL = všetky databázy
SELECT TOP (100)
b.database_name, b.backup_set_id,
CASE b.type WHEN 'D' THEN 'FULL' WHEN 'I' THEN 'DIFF'
WHEN 'L' THEN 'LOG' ELSE b.type END AS backup_type,
b.is_copy_only,
b.backup_start_date, b.backup_finish_date,
DATEDIFF(SECOND, b.backup_start_date, b.backup_finish_date) AS elapsed_seconds,
CAST(b.backup_size / 1048576.0 AS decimal(18,1)) AS backup_mb,
CAST(b.compressed_backup_size / 1048576.0 AS decimal(18,1)) AS compressed_mb,
b.recovery_model,
b.has_backup_checksums,
mf.physical_device_name
FROM msdb.dbo.backupset AS b
LEFT JOIN msdb.dbo.backupmediafamily AS mf ON mf.media_set_id = b.media_set_id
WHERE @DatabaseName IS NULL OR b.database_name = @DatabaseName
ORDER BY b.backup_finish_date DESC;