Hola,
Para resumir la copia de seguridad podemos decir, Copia de datos almacenados en disco o cinta. En caso de errores inesperados o desastres, esta copia se puede definir como Restauración de datos y prevención de pérdida de datos.
En empresas de gran envergadura o en proyectos importantes, la pérdida de datos provoca eventos materiales y causantes de reputación, por lo que las empresas siempre deben conservar más de una copia de las Bases de Datos o Archivos para uno o más.
Las causas de pérdida de datos que se pueden producir en empresas y sistemas son las siguientes.
- Error de medios
- Errores basados en el usuario. Mesa desplegable
- Errores de disco. Corrupción de disco
- Desastres naturales. Inundaciones de terremotos.
La copia de seguridad debe ser verificada todos los días por SQL Server DBA con el siguiente script.
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;