Ripristini di file (modello di recupero con registrazione completa)File Restores (Full Recovery Model)

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Le informazioni in questo argomento sono rilevanti solo per i database che contengono più file o filegroup e che utilizzano il modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk.This topic is relevant only for databases that contain multiple files or filegroups under the full or bulk-load recovery model.

L'obiettivo di un ripristino di file consiste nel ripristinare uno o più file danneggiati senza ripristinare l'intero database.In a file restore, the goal is to restore one or more damaged files without restoring the whole database. Uno scenario di ripristino di file consiste in un'unica sequenza di ripristino in cui vengono eseguiti la copia, il rollforward e il recupero dei dati appropriati.A file restore scenario consists of a single restore sequence that copies, rolls forward, and recovers the appropriate data

Se il filegroup in fase di ripristino è di lettura/scrittura, è necessario applicare una catena non interrotta di backup del log dopo il ripristino degli ultimi dati o del backup differenzialeIf the filegroup that is being restored is read/write, an unbroken chain of log backups must be applied after the last data or differential backup is restored. per portare il filegroup fino ai record di log inclusi nei record di log attivi correnti del file di log.This brings the filegroup forward to the log records in the current active log records in the log file. Il punto di recupero si trova in genere, ma non necessariamente, verso la fine del log.The recovery point is typically near the end of log, but not necessarily.

Se il filegroup in fase di ripristino è di sola lettura, l'applicazione di backup del log in genere non è necessaria e viene ignorata.If the filegroup that is being restored is read-only, usually applying log backups is unnecessary and is skipped. Se il backup è stato creato dopo l'impostazione del file in modalità di sola lettura, esso verrà ripristinato per ultimo.If the backup was taken after the file became read-only, that is the last backup to restore. Il rollforward viene arrestato in corrispondenza del punto di destinazione.Roll forward stops at the target point.

Gli scenari di ripristino dei file sono i seguenti:The file-restore scenarios are as follows:

  • Ripristino di file offlineOffline file restore

    In un ripristino di file offline, i file o i filegroup danneggiati vengono ripristinati mentre il database è offline.In an offline file restore, the database is offline while damaged files or filegroups are restored. Al termine della sequenza di ripristino, il database torna online.At the end of the restore sequence, the database comes online.

    Tutte le edizioni di SQL Server 2017SQL Server 2017 supportano il ripristino di file offline.All editions of SQL Server 2017SQL Server 2017 support offline file restore.

  • Ripristino di file onlineOnline file restore

    In un ripristino di file offline, se il database è online al momento del ripristino, rimarrà online durante il ripristino del file.In an online file restore, if database is online at restore time, it remains online during the file restore. Tuttavia, durante l'operazione di ripristino, ogni filegroup nel quale viene ripristinato un file rimane offline.However, each filegroup in which a file is being restored is offline during the restore operation. Al termine del recupero di tutti i file del filegroup offline, viene attivata automaticamente la modalità online per il filegroup.After all the files in an offline filegroup are recovered, the filegroup is automatically brought online.

    Per informazioni sul supporto per il ripristino di pagine e file online, vedere Edizioni e funzionalità supportate per SQL Server 2016.For information about support for online page and file restore, see Editions and Supported Features for SQL Server 2016. Per altre informazioni sui ripristini in linea, vedere Ripristino in linea (SQL Server).For more information about online restores, see Online Restore (SQL Server).

    Suggerimento

    Se si desidera attivare la modalità offline per il database al fine di eseguire un ripristino di file, attivare la modalità offline per il database prima di avviare la sequenza di ripristino eseguendo la seguente istruzione ALTER DATABASE : ALTER DATABASE nome_database SET OFFLINE.If you want the database to be offline for a file restore, take the database offline before you start the restore sequence by executing the following ALTER DATABASE statement: ALTER DATABASE database_name SET OFFLINE.

Ripristino di file danneggiati da backup di file Restoring Damaged Files from File Backups

  1. Prima di ripristinare uno o più file danneggiati, tentare di creare un backup della parte finale del log.Before restoring one or more damaged files, attempt to create a tail-log backup.

    Se il log è stato danneggiato e non è possibile creare un backup della parte finale del log, è necessario ripristinare l'intero database.If the log has been damaged, a tail-log backup cannot be created, and you must restore the whole database.

    Per informazioni sul backup di un log delle transazioni, vedere Backup di log delle transazioni (SQL Server).For information about how to back up a transaction log, see Transaction Log Backups (SQL Server).

    Importante

    Per un ripristino di file offline, è sempre necessario creare un backup della parte finale del log prima del ripristino del file.For an offline file restore, you must always take a tail-log backup before the file restore. Per un ripristino di file online, è sempre necessario creare il backup del log dopo il ripristino del fileFor an online file restore, you must always take the log backup after the file restore. per fare in modo che il file recuperato si trovi in uno stato consistente con il resto del database.This log backup is necessary to allow for the file to be recovered to a state consistent with the rest of the database.

  2. Ripristinare ogni file danneggiato dal backup del file più recente.Restore each damaged file from the most recent file backup of that file.

  3. Ripristinare l'eventuale backup differenziale del file più recente per ogni file ripristinato.Restore the most recent differential file backup, if any, for each restored file.

  4. Ripristinare i backup del log delle transazioni in sequenza, iniziando con il backup associato al file ripristinato meno recente e terminando con il backup della parte finale del log creato nel passaggio 1.Restore transaction log backups in sequence, starting with the backup that covers the oldest of the restored files and ending with the tail-log backup created in step 1.

    È necessario ripristinare tutti i backup del log delle transazioni creati successivamente ai backup di file per assicurare la consistenza del database.You must restore the transaction log backups that were created after the file backups to bring the database to a consistent state. Il rollforward dei backup del log delle transazioni è un'operazione rapida, in quanto vengono applicate soltanto le modifiche valide per i file ripristinati.The transaction log backups can be rolled forward quickly, because only the changes that apply to the restored files are applied. Il ripristino di singoli file può offrire risultati migliori rispetto al ripristino dell'intero database poiché i file non danneggiati non vengono copiati e non ne viene eseguito il rollforward.Restoring individual files can be better than restoring the whole database, because undamaged files are not copied and then rolled forward. Deve comunque essere letta l'intera catena dei backup di log.However, the whole chain of log backups still has to be read.

  5. Recuperare il database.Recover the database.

Nota

I backup dei file possono essere utilizzati per ripristinare il database a una temporizzazione precedente.File backups can be used to restore the database to an earlier point in time. A tale scopo, è necessario ripristinare un set completo di backup dei file e quindi ripristinare i backup del log delle transazioni in sequenza, fino a raggiungere un punto nel tempo successivo al backup di file più recente ripristinato.To do this, you must restore a complete set of file backups, and then restore transaction log backups in sequence to reach a target point that is after the end of the most recent restored file backup. Per altre informazioni sul recupero temporizzato, vedere Ripristino di un database di SQL Server fino a un punto specifico all'interno di un backup (modello di recupero con registrazione completa).For more information about point-in-time recovery, see Restore a SQL Server Database to a Point in Time (Full Recovery Model).

Sequenza di ripristino Transact-SQL per il ripristino di file offline (modello di recupero con registrazione completa)Transact-SQL Restore Sequence for an Offline File Restore (Full Recovery Model)

Uno scenario di ripristino di file consiste in un'unica sequenza di ripristino in cui vengono eseguiti la copia, il rollforward e il recupero dei dati appropriati.A file restore scenario consists of a single restore sequence that copies, rolls forward, and recovers the appropriate data.

In questa sezione vengono illustrate le opzioni RESTORE essenziali per una sequenza di ripristino di file.This section shows the essential RESTORE options for a file-restore sequence. La sintassi e i dettagli non rilevanti sono stati omessi.Syntax and details that are not relevant to this purpose are omitted.

Nella sequenza di ripristino dell'esempio seguente viene illustrato un ripristino offline di due file secondari, A e Bmediante WITH NORECOVERY.The following sample restore sequence shows an offline restore of two secondary files, A and B, using WITH NORECOVERY. Successivamente vengono applicati due backup del log con NORECOVERY, seguiti dal backup della parte finale del log, che viene ripristinato con WITH RECOVERY.Next, two log backups are applied with NORECOVERY, followed with the tail-log backup, and this is restored using WITH RECOVERY.

Nota

La sequenza di ripristino dell'esempio seguente inizia portando il file offline e quindi creando un backup della parte finale del log.The following sample restore sequence starts by taking the file offline and then creates a tail-log backup.

--Take the file offline.  
ALTER DATABASE database_name MODIFY FILE SET OFFLINE;  
-- Back up the currently active transaction log.  
BACKUP LOG database_name  
   TO <tail_log_backup>  
   WITH NORECOVERY;  
GO   
-- Restore the files.  
RESTORE DATABASE database_name FILE=name   
   FROM <file_backup_of_file_A>   
   WITH NORECOVERY;  
RESTORE DATABASE database_name FILE=<name> ......  
   FROM <file_backup_of_file_B>   
   WITH NORECOVERY;  
-- Restore the log backups.  
RESTORE LOG database_name FROM <log_backup>   
   WITH NORECOVERY;  
RESTORE LOG database_name FROM <log_backup>   
   WITH NORECOVERY;  
RESTORE LOG database_name FROM <tail_log_backup>   
   WITH RECOVERY;  

EsempiExamples

Per ripristinare file e filegroupTo restore files and filegroups

Vedere ancheSee Also

Backup e ripristino: interoperabilità e coesistenza (SQL Server) Backup and Restore: Interoperability and Coexistence (SQL Server)
Backup differenziali (SQL Server) Differential Backups (SQL Server)
Backup completi del file (SQL Server) Full File Backups (SQL Server)
Panoramica del backup (SQL Server) Backup Overview (SQL Server)
Panoramica del ripristino e del recupero (SQL Server) Restore and Recovery Overview (SQL Server)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Ripristini di database completi (modello di recupero con registrazione minima) Complete Database Restores (Simple Recovery Model)
Ripristini a fasi (SQL Server)Piecemeal Restores (SQL Server)