Condividi tramite


Possibili errori relativi ai supporti durante il backup e il ripristino (SQL Server)

Si applica a:SQL Server

SQL Server include un'opzione che permette di recuperare un database anche in presenza di errori. Un importante e nuovo meccanismo di rilevazione degli errori prevede l'utilizzo facoltativo di un checksum del backup, creato durante un'operazione di backup e convalidato durante un'operazione di ripristino. È quindi possibile controllare se un'operazione verifica la presenza di errori e se ne deve essere o meno arrestata l'esecuzione quando viene rilevato un errore. Se un backup contiene un checksum, le istruzioni RESTORE e RESTORE VERIFYONLY verificano la presenza di errori.

Nota

I backup con mirroring consentono di ottenere fino a quattro copie (mirror) di un insieme di supporti, offrendo copie alternative per il recupero in caso di errori causati da supporti danneggiati. Per altre informazioni, vedere Set di supporti di backup con mirroring (SQL Server).

Checksum di backup

In SQL Server sono supportati tre tipi di checksum: delle pagine, nei blocchi di log e nei backup. Durante la generazione di un checksum del backup, l'istruzione BACKUP verifica che i dati letti dal database siano consistenti con l'eventuale indicazione di checksum o di pagina incompleta presente nel database.

L'istruzione BACKUP consente di eseguire il calcolo facoltativo di un checksum del backup nel flusso del backup stesso. Se in una pagina specifica sono presenti informazioni relative al checksum della pagina o a una pagina incompleta, durante il backup della pagina verrà inoltre verificato lo stato del checksum e della pagina incompleta, nonché l'ID della pagina. Quando viene creato un checksum per il backup, l'operazione di backup non aggiunge alcun checksum alle pagine. Il backup delle pagine viene eseguito solo se queste esistono nel database e non implica la modifica delle pagine stesse.

Le procedure di verifica e creazione dei checksum del backup comportano un certo overhead, pertanto l'utilizzo di questo tipo di checksum può influire negativamente sulle prestazioni, Sia il carico di lavoro che la velocità del backup possono essere influenzati. Pertanto, l'utilizzo del checksum di backup è facoltativo. Quando si decide di generare checksum durante un backup, eseguire un attento monitoraggio dell'overhead della CPU nonché dell'impatto di eventuali carichi di lavoro eseguiti simultaneamente nel sistema.

L'istruzione BACKUP non modifica mai la pagina di origine sul disco né il contenuto di una pagina.

Quando i checksum di backup sono abilitati, l'operazione di backup esegue i passaggi descritti di seguito:

  1. Prima di scrivere una pagina sui supporti di backup, l'operazione di backup verifica le informazioni esistenti a livello di pagina, come il checksum della pagina o il rilevamento delle pagine strappate, se presenti. Se nessuno dei due esiste, il backup non può verificare la pagina. Le pagine non verificate vengono incluse nello stato in cui si trovano, e il relativo contenuto viene aggiunto al checksum complessivo del backup.

    Se durante la verifica dell'operazione di backup viene rilevato un errore di pagina, il backup non riesce.

    Nota

    Per ulteriori informazioni sui checksum delle pagine e sul rilevamento delle pagine incomplete, vedere l'opzione PAGE_VERIFY dell'istruzione ALTER DATABASE. Per altre informazioni, vedere Opzioni ALTER DATABASE SET (Transact-SQL).

  2. Indipendentemente dalla presenza di checksum delle pagine, BACKUP genera un checksum di backup separato per i flussi di backup. Le operazioni di ripristino possono utilizzare facoltativamente il checksum del backup per verificare che il backup non sia danneggiato. Il checksum del backup viene archiviato nei supporti di backup e non nelle pagine del database. È possibile utilizzare facoltativamente il checksum del backup in fase di ripristino.

  3. Il set di backup viene contrassegnato come contenente checksum di backup (nella colonna has_backup_checksums di msdb..backupset). Per altre informazioni, vedere backupset (Transact-SQL).

Durante un'operazione di ripristino, se nel supporto di backup sono presenti checksum di backup, per impostazione predefinita le istruzioni RESTORE e RESTORE VERIFYONLY verificheranno i checksum di backup e delle pagine. In assenza di un checksum di backup, l'operazione di backup proseguirà senza verifica, in quanto, in tal caso, l'operazione di ripristino non è in grado di verificare in modo affidabile i checksum delle pagine.

Risposta agli errori di checksum delle pagine durante un'operazione di backup o ripristino

Per impostazione predefinita, dopo aver rilevato un errore di checksum della pagina, l'operazione BACKUP o RESTORE non viene completata con successo e l'operazione RESTORE VERIFYONLY prosegue. Tuttavia, è possibile controllare se un'operazione specificata non riesce quando si riscontra un errore o continua nel miglior modo possibile.

Se un'operazione BACKUP continua dopo aver rilevato errori, l'operazione esegue i passaggi indicati di seguito:

  1. Contrassegna il set di backup sul supporto come contenente errori e tiene traccia della pagina nella tabella suspect_pages del database msdb . Per altre informazioni, vedere suspect_pages (Transact-SQL).

  2. Registra l'errore nel log degli errori di SQL Server.

  3. Contrassegna il set di backup come contenente questo tipo di errore (nella colonna is_damaged di msdb..backupset). Per altre informazioni, vedere backupset (Transact-SQL).

  4. Visualizza un messaggio per indicare che il backup è stato generato correttamente, ma contiene errori di pagina.

Attività correlate

Per abilitare o disabilitare i checksum di backup

Per controllare la risposta a un errore durante un'operazione di backup

Vedi anche

ALTER DATABASE (Transact-SQL)
BACKUP (Transact-SQL)
backupset (Transact-SQL)
Set di supporti di backup mirrorati (SQL Server)
RESTORE (Transact-SQL)
RESTORE VERIFYONLY (Transact-SQL)