Backup della parte finale del log [SQL Server]Tail-Log Backups (SQL Server)

Le informazioni contenute in questo argomento sono rilevanti solo per il backup e il ripristino di database di SQL ServerSQL Server che utilizzano il modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk.This topic is relevant only for backup and restore of SQL ServerSQL Server databases that are using the full or bulk-logged recovery models.

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.A tail-log backup captures any log records that have not yet been backed up (the tail of the log) to prevent work loss and to keep the log chain intact. Prima che sia possibile recuperare un database SQL ServerSQL Server nel punto temporale più recente, è necessario eseguire il backup della parte finale del log delle transazioni.Before you can recover a SQL ServerSQL Server database to its latest point in time, you must back up the tail of its transaction log. Il backup della parte finale del log sarà l'ultimo backup di interesse nel piano di recupero per il database.The tail-log backup will be the last backup of interest in the recovery plan for the database.

NOTA: non in tutti gli scenari di ripristino è necessario un backup della parte finale del log.NOTE: Not all restore scenarios require a tail-log backup. Se il punto di recupero è contenuto in un backup del log precedente, non è necessario un backup della parte finale del log.You do not need a tail-log backup if the recovery point is contained in an earlier log backup. Non è inoltre 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.Also, a tail-log backup is unnecessary if you are moving or replacing (overwriting) a database and do not need to restore it to a point of time after its most recent backup.

Scenari in cui è necessario un backup della parte finale del log Scenarios That Require a Tail-Log Backup

È consigliabile eseguire un backup della parte finale del log negli scenari seguenti:We recommend that you take a tail-log backup in the following scenarios:

  • Se il database è online e si intende eseguire un'operazione di ripristino sul database, iniziare eseguendo il backup della parte finale del log.If the database is online and you plan to perform a restore operation on the database, begin by backing up the tail of the log. Per evitare un errore per un database online, è necessario usare...To avoid an error for an online database, you must use the … Opzione WITH NORECOVERY dell'istruzione BACKUP Transact-SQLTransact-SQL .WITH NORECOVERY option of the BACKUP Transact-SQLTransact-SQL statement.

  • 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.If a database is offline and fails to start and you need to restore the database, first back up the tail of the log. Dato che in questo momento non può avvenire alcuna transazione, l'utilizzo di WITH NORECOVERY è facoltativo.Because no transactions can occur at this time, using the WITH NORECOVERY is optional.

  • Se un database è danneggiato, tentare di acquisire un backup della parte finale del log tramite l'opzione WITH CONTINUE_AFTER_ERROR dell'istruzione BACKUP.If a database is damaged, try to take a tail-log backup by using the WITH CONTINUE_AFTER_ERROR option of the BACKUP statement.

    Se il database è danneggiato, 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.On a damaged database backing up the tail of the log can succeed only if the log files are undamaged, the database is in a state that supports tail-log backups, and the database does not contain any bulk-logged changes. Se non è possibile creare un backup della parte finale del log, qualsiasi transazione eseguita dopo l'ultimo backup del log andrà persa.If a tail-log backup cannot be created, any transactions committed after the latest log backup are lost.

    Nella tabella seguente vengono riepilogate le opzioni BACKUP NORECOVERY e CONTINUE_AFTER_ERROR.The following table summarizes the BACKUP NORECOVERY and CONTINUE_AFTER_ERROR options.

Opzione BACKUP LOGBACKUP LOG option CommentiComments
NORECOVERYNORECOVERY Utilizzare NORECOVERY ogni volta che si intende procedere con un'operazione di ripristino sul database.Use NORECOVERY whenever you intend to continue with a restore operation on the database. NORECOVERY porta il database nello stato di ripristino.NORECOVERY takes the database into the restoring state. Questo assicura che il database non si modifichi dopo il backup della parte finale del log.This guarantees that the database does not change after the tail-log backup. Il log verrà troncato a meno che non venga specificata anche l'opzione NO_TRUNCATE o COPY_ONLY.The log will be truncated unless the NO_TRUNCATE option or COPY_ONLY option is also specified.

** Importante *\* Non usare NO_TRUNCATE, a meno che il database non sia danneggiato.** Important *\* Avoid using NO_TRUNCATE, except when the database is damaged.
CONTINUE_AFTER_ERRORCONTINUE_AFTER_ERROR Utilizzare CONTINUE_AFTER_ERROR solo se si sta eseguendo il backup della parte finale di un database danneggiato.Use CONTINUE_AFTER_ERROR only if you are backing up the tail of a damaged database.

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.When you use back up the tail of the log on a damaged database, some of the metadata ordinarily captured in log backups might be unavailable. Per altre informazioni, vedere Backup della parte finale del log con metadati di backup incompletiin questo argomento.For more information, see Tail-Log Backups That Have Incomplete Backup Metadata, in this topic.

Backup della parte finale del log con metadati di backup incompleti Tail-Log Backups That Have Incomplete Backup Metadata

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.Tail log backups capture the tail of the log even if the database is offline, damaged, or missing data files. Questo può causare metadati incompleti nei comandi di ripristino delle informazioni e in msdb.This might cause incomplete metadata from the restore information commands and msdb. Tuttavia, solo i metadati sono incompleti. Il log acquisito è completo e utilizzabile.However, only the metadata is incomplete; the captured log is complete and usable.

Se un backup della parte finale del log include metadati incompleti, nella tabella backupset has_incomplete_metadata è impostato su 1.If a tail-log backup has incomplete metadata, in the backupset table, has_incomplete_metadata is set to 1. Inoltre, nell'output di RESTORE HEADERONLY, HasIncompleteMetadata è impostato su 1.Also, in the output of RESTORE HEADERONLY, HasIncompleteMetadata is set to 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.If the metadata in a tail-log backup is incomplete, the backupfilegroup table will be missing most of the information about filegroups at the time of the tail-log backup. La maggioranza delle colonne della tabella backupfilegroup sono NULL. Le uniche colonne significative sono le seguenti:Most of the backupfilegroup table columns are NULL; the only meaningful columns are as follows:

  • backup_set_idbackup_set_id

  • filegroup_idfilegroup_id

  • tipotype

  • type_desctype_desc

  • is_readonlyis_readonly

Per creare un backup della parte finale del log, vedere Esecuzione del backup del log delle transazioni quando il database è danneggiato (SQL Server).To create a tail-log backup, see Back Up the Transaction Log When the Database Is Damaged (SQL Server).

Per ripristinare un backup del log delle transazioni, vedere Ripristinare un backup del log delle transazioni (SQL Server).To restore a transaction log backup, see Restore a Transaction Log Backup (SQL Server).

Vedere ancheSee Also

BACKUP (Transact-SQL) BACKUP (Transact-SQL)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Backup e ripristino di database SQL Server Back Up and Restore of SQL Server Databases
Backup di sola copia (SQL Server) Copy-Only Backups (SQL Server)
Backup di log delle transazioni (SQL Server) Transaction Log Backups (SQL Server)
Applicazione dei backup di log delle transazioni (SQL Server)Apply Transaction Log Backups (SQL Server)