Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Questo articolo è pertinente solo per il backup e il ripristino di database SQL Server che utilizzano il modello di ripristino con registrazione completa o a registrazione minima.
Un backup della parte finale del log acquisisce qualsiasi record di log di cui non è stato eseguito il backup (la parte finale del log), per prevenire perdita di dati e mantenere intatta la catena di log. Prima che sia possibile recuperare un database SQL Server nel punto temporale più recente, è necessario eseguire il backup della parte finale del log delle transazioni. Il backup della parte finale del log è l'ultimo backup rilevante nel piano di ripristino del database.
Non in tutti gli scenari di ripristino è necessario un backup della parte finale del log. Non è necessario un backup del log finale se il punto di recupero è contenuto in un backup del log precedente. Non è necessario eseguire un backup della parte finale del log se si sta spostando o sostituendo (sovrascrivendo) un database e non è necessario ripristinarlo a un punto nel tempo successivo al backup più recente.
Scenari in cui è necessario un backup della parte finale del log
È consigliabile eseguire un backup della parte finale del log negli scenari seguenti:
Se il database è online e si intende eseguire un'operazione di ripristino sul database, iniziare eseguendo il backup della parte finale del log. Per evitare un errore per un database online, è necessario usare l'opzione
WITH NORECOVERYdell'istruzione BACKUP Transact-SQL.Se il database è offline e non si avvia e risulta necessario eseguire un'operazione di ripristino, iniziare eseguendo il backup della parte finale del log. Dato che in questo momento non può avvenire alcuna transazione, usare l’opzione
WITH NO_TRUNCATE.NO_TRUNCATEè effettivamente uguale a un backup del log delle transazioni di sola copia. Dato che in questo momento non può avvenire alcuna transazione, l'utilizzo diWITH NORECOVERYè facoltativo.Se un database è danneggiato, tentare di acquisire un backup della parte finale del log tramite l'opzione
WITH CONTINUE_AFTER_ERRORdell'istruzioneBACKUP.In un database danneggiato, il backup della parte finale del log può riuscire solo se i file di log non sono danneggiati, il database si trova in uno stato che consente il backup della parte finale del log e il database non contiene modifiche registrate in modalità bulk-logged. Se non è possibile creare un backup della parte finale del log, qualsiasi transazione eseguita dopo l'ultimo backup del log andrà persa.
La tabella seguente riassume le opzioni NORECOVERY, NO_TRUNCATE e CONTINUE_AFTER_ERROR per BACKUP.
| BACKUP Opzione 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 passaggio 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.Importante: non usare NO_TRUNCATE, a meno che il database non sia danneggiato o offline. Potrebbe essere necessario attivare la modalità utente singolo per il database per ottenere l'accesso esclusivo prima di eseguire il ripristino con NORECOVERY. Dopo il ripristino, impostare di nuovo il database sulla modalità multiutente. |
CONTINUE_AFTER_ERROR |
Utilizzare CONTINUE_AFTER_ERROR solo se si sta eseguendo il backup della parte finale di un database danneggiato.Quando si esegue il backup della parte finale del log di un database danneggiato, alcuni dei metadati normalmente acquisiti nei backup dei log potrebbero non essere disponibili. Per ulteriori informazioni, vedi la sezione successiva. |
Backup del log finale che presentano metadati di backup incompleti
I backup della parte finale del log consentono di acquisire la parte finale del log anche quando il database è offline, è 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 del log finale include i 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, nella tabella backupfilegroup manca 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_idfilegroup_idtypetype_descis_readonly
Attività correlate
Per creare un backup della parte finale del log, vedere Esecuzione del 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).