Backup della parte finale del log

Le informazioni contenute in questo argomento sono rilevanti solo per i database in cui viene utilizzato il modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk.

Nella maggioranza dei casi, nel modello di recupero con registrazione completa o nel modello di recupero con registrazione minima delle operazioni bulk, SQL Server 2005 e le versioni successive richiedono l'esecuzione di un backup della parte finale del log per acquisire i record del log di cui non è stato ancora eseguito il backup. Un backup del log eseguito sulla parte finale del log stesso appena prima di un'operazione di ripristino è detto backup della parte finale del log.

In SQL Server 2005 e nelle versioni successive è in genere necessario eseguire il backup della parte finale del log prima di avviare il ripristino di un database. Il backup della parte finale del log impedisce la perdita di dati e mantiene intatta la catena di log. Quando si recupera un database fino al punto di un errore, il backup della parte finale del log è l'ultimo backup di interesse nel piano di recupero. Se non è possibile eseguire un backup della parte finale del log, è possibile recuperare un database solo fino alla fine dell'ultimo backup creato prima dell'errore.

Non in tutti gli scenari di ripristino è necessario un backup della parte finale del log. Non è necessario eseguire il backup della parte finale del log se il punto di recupero è incluso in un backup del log precedente o se si sta spostando o sostituendo (sovrascrivendo) il database e non è necessario ripristinarlo fino a un punto nel tempo dopo l'ultimo backup. Inoltre, se i file di log sono danneggiati e non è possibile creare un backup della parte finale del log, è necessario ripristinare il database senza utilizzare un backup della parte finale del log. Qualsiasi transazione di cui sia stato eseguito il commit dopo l'ultimo backup del log andrà persa. Per ulteriori informazioni, vedere "Ripristino senza utilizzare un backup della parte finale del log" di seguito in questo argomento.

Esecuzione del backup della parte finale del log

Analogamente a qualsiasi backup del log, un backup della parte finale del log viene eseguito utilizzando l'istruzione BACKUP LOG. È consigliabile eseguire un backup della parte finale del log nelle situazioni seguenti:

  • Se il database è online e si intende effettuare un'operazione di ripristino sul database, prima di avviarla, eseguire il backup della parte finale del log utilizzando WITH NORECOVERY:

    BACKUP LOG nome_database TO <dispositivo_backup> WITH NORECOVERY

    [!NOTA]

    Per evitare errori, l'opzione NORECOVERY è necessaria.

  • Se il database non è in linea e non si avvia.

    Tentare di eseguire un backup della parte finale del log. Dato che in questo momento non può avvenire alcuna transazione, l'utilizzo di WITH NORECOVERY è facoltativo. Se il database è danneggiato, utilizzare WITH CONTINUE_AFTER_ERROR nel modo seguente:

    BACKUP LOG nome_database TO <dispositivo_backup> WITH CONTINUE_AFTER_ERROR

    Se il database è danneggiato, ad esempio, se non si avvia, un backup della parte finale del log riuscirà solo se i file di log non sono danneggiati, il database è in uno stato che supporta il backup della parte finale del log e non include modifiche con registrazione minima delle operazioni bulk.

Nella tabella seguente è incluso un riepilogo di queste opzioni.

Opzione BACKUP LOG

Commenti

NORECOVERY

Utilizzare NORECOVERY ogni volta che si intende procedere con un'operazione di ripristino sul database. NORECOVERY porta il database nello stato di ripristino. Questo assicura che il database non si modifichi dopo il backup della parte finale del log.

Il log viene troncato a meno che non venga specificata anche l'opzione NO_TRUNCATE o COPY_ONLY.

Nota importanteImportante
È consigliabile evitare di utilizzare NO_TRUNCATE, a eccezione del caso in cui il database sia danneggiato.

CONTINUE_AFTER_ERROR

Utilizzare CONTINUE_AFTER_ERROR solo se si sta eseguendo il backup della parte finale di un database danneggiato.

NotaNota
Quando si utilizza il backup della parte finale di un database danneggiato, alcuni dei metadati normalmente acquisiti nei backup dei log potrebbero essere non disponibili. Per ulteriori informazioni, vedere "Backup della parte finale del log con metadati di backup incompleti" di seguito in questo argomento.

Per creare un backup del log delle transazioni quando il database è danneggiato

Backup della parte finale del log con metadati di backup incompleti

I backup della parte finale del log consentono di acquisire la parte finale del log anche quando il database non è in linea, è danneggiato oppure è privo di alcuni file di dati. Questo può causare metadati incompleti nei comandi di ripristino delle informazioni e in msdb. Tuttavia, solo i metadati sono incompleti. Il log acquisito è completo e utilizzabile.

Se un backup della parte finale del log include metadati incompleti, nella tabella backupsethas_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, nella tabella backupfilegroup mancheranno la maggioranza delle informazioni sui filegroup al momento dell'esecuzione del backup della parte finale del log. La maggioranza delle colonne della tabella backupfilegroup sono NULL. Le uniche colonne significative sono le seguenti:

  • backup_set_id

  • filegroup_id

  • type

  • type_desc

  • is_readonly

Ripristino senza utilizzare un backup della parte finale del log

Tra gli scenari di ripristino in cui un backup della parte finale del log non è necessario sono inclusi i seguenti:

Cronologia modifiche

Contenuto aggiornato

La sezione "Esecuzione del backup della parte finale del log" è stata aggiornata per correggere le informazioni sull'esecuzione di questa operazione quando il database è offline e non può essere avviato.