Documente Academic
Documente Profesional
Documente Cultură
http://rva.sqlpass.org/
Photography
Education
Community
Agenda
Additional Costs:
10 days lost revenue
Damaged company reputation
Recovery Objectives
Recovery Point (RPO)
Backup Strategy
Management Operations
How much data can be lost? What type(s) of backups are
taken?
How often are backups taken?
(optional)
• Tenant in Azure or AWS
• Phone number for pizza delivery
• Updated resume or CV
Other Recovery Considerations
• Server activity (online/offline)
• Bandwidth between backup repository & restore point
• Virtual Log Files
DBCC LOGINFO
SELECT * FROM sys.dm_db_log_stats(database_id)
• Logins
Active Directory maintains domain account SIDs
SQL account SIDs managed by SQL Instance
CREATE LOGIN [] WITH SID = 0x.....
• BUFFERCOUNT
Total # of I/O buffers (3MB)
‘Out of Memory’ Error
• MAXTRANSFERSIZE
Unit of Transfer between backup media and SQL Server
Multiples of 65536 (64kb) – 4194304 (4MB)
• BackupFile
• BackupFileGroup
• BackupMediaFamily
• BackupSet
• RestoreFile
• RestoreFileGroup
• RestoreHistory
https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/backup-history-
and-header-information-sql-server?view=sql-server-2017
MSDB Information
Last Restore
SELECT restore_date, destination_database_name, restore_type, replace, recovery, stop_at,
destination_phys_name
FROM msdb.dbo.RestoreHistory h
LEFT JOIN msdb.dbo.RestoreFile f ON h.restore_history_id = f.restore_history_id;
Database Files
SELECT logical_name, physical_name, file_type, source_file_block_size
FROM msdb.dbo.backupfile;
Backups
SELECT bs.machine_name, bs.database_name, bs.type, bs.database_version,
bs.backup_start_date, bs.backup_finish_date, bs.is_copy_only, ms.is_encrypted
FROM msdb.dbo.backupset bs
LEFT JOIN msdb.dbo.backupmediaset ms ON bs.media_set_id = ms.media_set_id;
https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/backup-history-and-header-
information-sql-server?view=sql-server-2017
Last Backup Set – All Databases (msdb)
SELECT bs.machine_name, bs.database_name, bs.type, bs.database_version, bs.backup_start_date, bs.backup_finish_date,
ms.is_encrypted, c.name AS certname, b.logical_name, b.physical_name, bm.physical_device_name
FROM msdb.dbo.backupset bs
LEFT JOIN msdb.dbo.backupmediaset ms ON bs.media_set_id = ms.media_set_id
LEFT JOIN master.sys.certificates c ON bs.encryptor_thumbprint = c.thumbprint
LEFT JOIN msdb.dbo.backupfile b ON bs.backup_set_id = b.backup_set_id
LEFT JOIN msdb.dbo.backupmediafamily bm ON bs.media_set_id = bm.media_set_id
JOIN (SELECT MAX(backup_start_date) AS backup_start_date, database_name
FROM msdb.dbo.backupset
WHERE type = 'D' --Full Backup
GROUP BY database_name) AS F ON bs.database_name = f.database_name
AND bs.backup_start_date = f.backup_start_date
UNION --Diff Backup
SELECT bs.machine_name, bs.database_name, bs.type, bs.database_version, bs.backup_start_date, bs.backup_finish_date,
ms.is_encrypted, c.name AS certname, b.logical_name, b.physical_name, bm.physical_device_name
FROM msdb.dbo.backupset bs
LEFT JOIN msdb.dbo.backupmediaset ms ON bs.media_set_id = ms.media_set_id
LEFT JOIN master.sys.certificates c ON bs.encryptor_thumbprint = c.thumbprint
LEFT JOIN msdb.dbo.backupfile b ON bs.backup_set_id = b.backup_set_id
LEFT JOIN msdb.dbo.backupmediafamily bm ON bs.media_set_id = bm.media_set_id
JOIN (SELECT MAX(backup_start_date) AS backup_start_date, database_name
FROM msdb.dbo.backupset
WHERE type = 'I' --Diff Backup
GROUP BY database_name) AS D ON bs.database_name = d.database_name
AND bs.backup_start_date = d.backup_start_date
UNION --Log Backup
SELECT bs.machine_name, bs.database_name, bs.type, bs.database_version, bs.backup_start_date, bs.backup_finish_date,
ms.is_encrypted, c.name AS certname, b.logical_name, b.physical_name, bm.physical_device_name
FROM msdb.dbo.backupset bs
LEFT JOIN msdb.dbo.backupmediaset ms ON bs.media_set_id = ms.media_set_id
LEFT JOIN master.sys.certificates c ON bs.encryptor_thumbprint = c.thumbprint
LEFT JOIN msdb.dbo.backupfile b ON bs.backup_set_id = b.backup_set_id
LEFT JOIN msdb.dbo.backupmediafamily bm ON bs.media_set_id = bm.media_set_id
JOIN (SELECT MAX(backup_start_date) AS backup_start_date, database_name
FROM msdb.dbo.backupset
WHERE type = 'I' --Diff Backup
GROUP BY database_name) AS D ON bs.database_name = d.database_name
AND bs.backup_start_date >= d.backup_start_date
ORDER BY database_name, backup_start_date
Last Backup Set – All Databases (msdb)
Type
D – Full Backup
I – Differential Backup
L – Transaction Log Backup
Questions?