Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Vérification de la sauvegarde SQL Server

Bonjour,

Pour résumer la sauvegarde, nous pouvons dire :Copie des données stockées sur disque ou sur bande. En cas d'erreurs ou de sinistres inattendus, cette copie peut être définie comme Restauration des données et prévention de la perte de données.

Dans les grandes entreprises ou dans les projets importants, la perte de données provoque des événements matériels et de réputation, de sorte que les entreprises doivent toujours conserver plus d'une copie des bases de données ou des fichiers pour un ou plusieurs.

Les causes de perte de données pouvant survenir dans les entreprises et les systèmes sont les suivantes.

  • Échec du support
  • Erreurs basées sur l'utilisateur. Table de suppression
  • Erreurs de disque. Disque corrompu
  • Catastrophes naturelles. Inondations sismiques.

La sauvegarde doit être vérifiée tous les jours par SQL Server DBA avec le script suivant.

SELECT DB.name AS Database_Name
,MAX(DB.recovery_model_desc) AS Recovery_Model
,MAX(BS.backup_start_date) AS Last_Backup
,MAX(CASE WHEN BS.type = 'D'
THEN BS.backup_start_date END)
AS Last_Full_backup
,SUM(CASE WHEN BS.type = 'D'
THEN 1 END)
AS Count_Full_backup
,MAX(CASE WHEN BS.type = 'L'
THEN BS.backup_start_date END)
AS Last_Log_backup
,SUM(CASE WHEN BS.type = 'L'
THEN 1 END)
AS Count_Log_backup
,MAX(CASE WHEN BS.type = 'I'
THEN BS.backup_start_date END)
AS Last_Differential_backup
,SUM(CASE WHEN BS.type = 'I'
THEN 1 END)
AS Count_Differential_backup
,MAX(CASE WHEN BS.type = 'F'
THEN BS.backup_start_date END)
AS LastFile
,SUM(CASE WHEN BS.type = 'F'
THEN 1 END)
AS CountFile
,MAX(CASE WHEN BS.type = 'G'
THEN BS.backup_start_date END)
AS LastFileDiff
,SUM(CASE WHEN BS.type = 'G'
THEN 1 END)
AS CountFileDiff
,MAX(CASE WHEN BS.type = 'P'
THEN BS.backup_start_date END)
AS LastPart
,SUM(CASE WHEN BS.type = 'P'
THEN 1 END)
AS CountPart
,MAX(CASE WHEN BS.type = 'Q'
THEN BS.backup_start_date END)
AS LastPartDiff
,SUM(CASE WHEN BS.type = 'Q'
THEN 1 END)
AS CountPartDiff
FROM sys.databases AS DB
LEFT JOIN
msdb.dbo.backupset AS BS
ON BS.database_name = DB.name
WHERE ISNULL(BS.is_damaged, 0) = 0-- exclude damaged backups 
GROUP BY DB.name
ORDER BY Last_Backup desc;