Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Проверка на архивиране на SQL Server

Здравей,

За да обобщим архивирането, можем да кажем, Копие на съхранени данни на диск или лента В случай на неочаквани грешки или бедствия, това копие може да бъде определено като Възстановяване на данни и предотвратяване на загуба на данни.

В големи компании или при важни проекти загубата на данни причинява материални събития и събития, причиняващи репутация, така че компаниите винаги трябва да съхраняват повече от едно копие на базите данни или файловете за едно или повече.

Причините за загуба на данни, която може да възникне в компаниите и системите, са следните.

  • Медиен срив
  • Грешки, базирани на потребител. Пусни маса
  • Грешки на диска. Повреждане на диска
  • Природни бедствия. Земетресение наводнения.

Архивирането трябва да се проверява всеки ден от SQL Server DBA със следния скрипт.

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;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да получа сумата от множество стойности за дата и час?

  2. SQLServer IDENTITY Колона с текст

  3. Как да използвате един и същ график за множество задачи за агент на SQL Server (T-SQL)

  4. Преглеждайте историята на заданията на агент на SQL Server с Azure Data Studio

  5. Подреждане Чрез използване на параметър за името на колоната