SQL Server registra un'operazione di backup nella tabella di cronologia dei set di backup quando si usa VSS per eseguire il backup dei file in un volume
Questo articolo descrive un comportamento "by design" che si verifica quando si usa VSS per eseguire il backup dei file in un volume.
Versione originale del prodotto: SQL Server
Numero KB originale: 951288
Sintomi
Quando si usa un'applicazione del servizio Copia Shadow del volume per eseguire il backup dei file in un volume che include SQL Server file di database, SQL Server registra un'operazione di backup nella tabella di backupset
cronologia. Questo comportamento si verifica anche se non è stato effettivamente eseguito il backup dei file di database di SQL Server.
Causa
Questo comportamento si verifica perché l'applicazione VSS chiama il servizio SQLWriter nel sistema durante l'operazione di backup. Per altre informazioni sull'interazione delle applicazioni VSS con SQL Writer, vedere SQL Server Backup di applicazioni - Servizio Copia Shadow del volume e Writer SQL.
Precauzioni da adottare se si usano le voci nella tabella di cronologia dei set di backup per il ripristino dei dati
Se si desidera utilizzare voci nella tabella di cronologia per il backupset
ripristino dei dati, è necessario verificare che le voci rappresentino le operazioni di backup del database effettive.
Verificare che una voce rappresenti un'operazione di backup del database nativo (anziché un backup snapshot vss)
A tale scopo, eseguire l'istruzione seguente:
USE msdb
GO
SELECT server_name, database_name, backup_start_date, is_snapshot, database_backup_lsn
FROM backupset
Nel risultato si notano la database_backup_lsn
colonna e la is_snapshot
colonna . Una voce che rappresenta un'operazione di backup del database nativo presenta le caratteristiche seguenti:
- Il valore della
database_backup_lsn
colonna non è 0. - Il valore della
is_snapshot
colonna è 0.
Verificare che il set di backup non presenti errori
A tale scopo, eseguire l'istruzione seguente:
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
Se questa query restituisce risultati, significa che non si dispone di backup di database validi dopo la data segnalata. È consigliabile eseguire un backup completo del database il prima possibile e verificare che il backup completo del database sia pulito.
Proprietà is_damaged
La backupset
tabella nel database msdb contiene una riga per ogni set di backup. La is_damaged
proprietà nella backupset
tabella indica se sono stati rilevati danni al database durante la creazione del backup. Pertanto, il backup potrebbe essere danneggiato e non ripristinabile.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per