SQL Server registra una operación de copia de seguridad en la tabla de historial del conjunto de copias de seguridad cuando se usa VSS para realizar copias de seguridad de archivos en un volumen.
En este artículo se describe un comportamiento "por diseño" que se produce cuando se usa VSS para realizar copias de seguridad de archivos en un volumen.
Versión del producto original: SQL Server
Número de KB original: 951288
Síntomas
Cuando se usa una aplicación del Servicio de instantáneas de volumen (VSS) para realizar copias de seguridad de archivos en un volumen que incluye SQL Server archivos de base de datos, SQL Server registra una operación de copia de seguridad en la tabla de backupset
historial. Este comportamiento se produce incluso si realmente no realizó una copia de seguridad de los archivos de base de datos de SQL Server.
Causa
Este comportamiento se produce porque la aplicación VSS llama al servicio SQLWriter en el sistema durante la operación de copia de seguridad. Para obtener más información sobre cómo interactúan las aplicaciones VSS con SQL Writer, revise SQL Server Aplicaciones de copia de seguridad: Servicio de instantáneas de volumen (VSS) y Escritor de SQL.
Precauciones que se deben tomar si usa las entradas de la tabla de historial del conjunto de copias de seguridad para la recuperación de datos.
Si desea usar entradas en la tabla de historial para la backupset
recuperación de datos, debe comprobar que las entradas representan operaciones reales de copia de seguridad de la base de datos.
Compruebe que una entrada representa una operación de copia de seguridad de base de datos nativa (en lugar de una copia de seguridad de instantáneas de VSS)
Para ello, ejecute la siguiente instrucción:
USE msdb
GO
SELECT server_name, database_name, backup_start_date, is_snapshot, database_backup_lsn
FROM backupset
En el resultado, observe la database_backup_lsn
columna y la is_snapshot
columna. Una entrada que representa una operación de copia de seguridad de base de datos nativa tiene las siguientes características:
- El valor de la
database_backup_lsn
columna no es 0. - El valor de la
is_snapshot
columna es 0.
Comprobación de que el conjunto de copia de seguridad no tiene errores
Para ello, ejecute la siguiente instrucción:
WITH backupInfo AS( SELECT database_name AS [DatabaseName],
name AS [BackupName], is_damaged AS [BackupStatus],
backup_start_date AS [backupDate],
ROW_NUMBER() OVER(PARTITION BY database_name
ORDER BY backup_start_date DESC) AS BackupIDForDB
FROM msdb..backupset) SELECT DatabaseName
FROM backupinfo WHERE BackupIDForDB = 1 and BackupStatus=1
Si esta consulta devuelve resultados, significa que no tiene copias de seguridad de base de datos correctas después de la fecha notificada. Se recomienda encarecidamente realizar una copia de seguridad completa de la base de datos lo antes posible y comprobar que la copia de seguridad completa de la base de datos está limpia.
La propiedad is_damaged
La backupset
tabla de la base de datos msdb contiene una fila para cada conjunto de copia de seguridad. La is_damaged
propiedad de la backupset
tabla indica si se detectaron daños en la base de datos cuando se creó la copia de seguridad. Por lo tanto, la copia de seguridad puede estar dañada y no se puede restaurar.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de