Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Sprawdzanie kopii zapasowej serwera SQL

Biodro>

Podsumowując kopię zapasową, możemy powiedzieć:Kopia przechowywanych danych na dysk lub taśmę W przypadku nieoczekiwanych błędów lub katastrof, tę kopię można zdefiniować jako Przywracanie danych i zapobieganie utracie danych.

W dużych firmach lub w ważnych projektach utrata danych powoduje istotne i mające wpływ na reputację zdarzenia, dlatego firmy muszą zawsze przechowywać więcej niż jedną kopię baz danych lub plików dla jednej lub więcej.

Przyczyny utraty danych, które mogą wystąpić w firmach i systemach, są następujące.

  • Awaria mediów
  • Błędy użytkownika. Upuść stół
  • Błędy dysku. Uszkodzenie dysku
  • Klęski żywiołowe. Powodzie związane z trzęsieniami ziemi.

Kopia zapasowa powinna być sprawdzana codziennie przez SQL Server DBA za pomocą następującego skryptu.

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. SQL Server - brak NATURAL JOIN / x JOIN y USING(pole)

  2. Jak uruchomić procedurę składowaną na serwerze sql co godzinę?

  3. Odpowiednik LIMIT i OFFSET dla SQL Server?

  4. Dynamiczny SQL — EXEC(@SQL) kontra EXEC SP_EXECUTESQL(@SQL)

  5. Tabela kalendarza dla hurtowni danych