Condividi tramite


Backup di Tail-Log (SQL Server)

Questo argomento è rilevante solo per il backup e il ripristino di database di SQL Server che usano i modelli di recupero con registrazione completa o con registrazione minima delle operazioni bulk.

Un backup della parte finale del log acquisisce tutti i record di log non ancora sottoposti a backup (la parte finale del log) per evitare perdite di lavoro e mantenere intatta la catena di log. Prima di poter ripristinare un database di SQL Server al momento più recente, è necessario eseguire il backup della parte finale del log delle transazioni. Il backup del tail-log sarà l'ultimo backup di interesse nel piano di ripristino del database.

Annotazioni

Non tutti gli scenari di ripristino richiedono un backup della parte finale del log. Non è necessario un backup della parte finale del log se il punto di ripristino è contenuto in un backup del log precedente. Inoltre, un backup della parte finale del log non è necessario se si sta spostando o sostituendo (sovrascrivendo) un database e non è necessario ripristinarlo a un punto di tempo dopo il backup più recente.

Scenari che richiedono un backup Tail-Log

È consigliabile eseguire un backup della parte finale del log negli scenari seguenti:

  • Se il database è online e si prevede di eseguire un'operazione di ripristino nel database, iniziare eseguendo il backup della parte finale del log. Per evitare un errore in un database online, è necessario usare l'opzione ... WITH NORECOVERY dell'istruzione BACKUPTransact-SQL.

  • Se un database è offline e non viene avviato ed è necessario ripristinare il database, eseguire prima il backup della parte finale del log. Poiché al momento non è possibile eseguire transazioni, l'utilizzo di WITH NORECOVERY è facoltativo.

  • Se un database è danneggiato, provare a eseguire un backup della parte finale del log usando l'opzione WITH CONTINUE_AFTER_ERROR dell'istruzione BACKUP.

    In un database danneggiato che esegue il backup della parte finale del log può avere esito positivo solo se i file di log non sono danneggiati, il database è in uno stato che supporta i backup della parte finale del log e il database non contiene modifiche registrate in blocco. Se non è possibile creare un backup della parte finale del registro, tutte le transazioni confermate dopo l'ultimo backup del registro andranno perse.

La tabella seguente riepiloga le opzioni BACKUP NORECOVERY e CONTINUE_AFTER_ERROR.

Opzione di backup del log Commenti
NORECOVERY Usare NORECOVERY ogni volta che si intende continuare con un'operazione di ripristino nel database. NORECOVERY porta il database nello stato di ripristino. Ciò garantisce che il database non venga modificato dopo il backup del tail-log. Il log viene troncato a meno che non venga specificata anche l'opzione NO_TRUNCATE o COPY_ONLY.

**Importante** È consigliabile evitare di usare NO_TRUNCATE, tranne quando il database è danneggiato.
CONTINUA_DOPO_ERRORE Usare CONTINUE_AFTER_ERROR solo se si esegue il backup della parte finale di un database danneggiato.

Nota: quando si usa il backup della parte finale del log in un database danneggiato, alcuni dei metadati normalmente acquisiti nei backup del log potrebbero non essere disponibili. Per altre informazioni, vedere Tail-Log backup con metadati di backup incompleti, più avanti in questo argomento.

Tail-Log backup con metadati di backup incompleti

I backup della parte finale del log acquisiscono il log anche se il database è offline, danneggiato o mancante di file di dati. Ciò potrebbe causare metadati incompleti dai comandi di ripristino delle informazioni e msdb. Tuttavia, solo i metadati sono incompleti; il log acquisito è completo e utilizzabile.

Se un backup della parte finale del log ha metadati incompleti, nella tabella backupset, has_incomplete_metadata è impostato su 1. Inoltre, nell'output di RESTORE HEADERONLY, HasIncompleteMetadata è impostato su 1.

Se i metadati in un backup della parte finale del log sono incompleti, la tabella backupfilegroup non contiene la maggior parte delle informazioni sui filegroup al momento del backup della parte finale del log. La maggior parte delle colonne della tabella backupfilegroup è NULL; le uniche colonne significative sono le seguenti:

  • backup_set_id

  • filegroup_id

  • tipo

  • type_desc

  • is_readonly

Attività correlate

Per creare un backup della parte finale del log, vedere Eseguire il backup del log delle transazioni quando il database è danneggiato (SQL Server).

Per ripristinare un backup del log delle transazioni, vedere Ripristinare un backup del log delle transazioni (SQL Server).

Vedere anche

BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
backup e ripristino dei database di SQL Server
Backup di sola copia (SQL Server)
Backup del log delle transazioni (SQL Server)
Applicare backup di log delle transazioni (SQL Server)