Ripristini a fasi (SQL Server)Piecemeal Restores (SQL Server)

Le informazioni contenute in questo argomento sono rilevanti solo per i database di SQL ServerSQL Server Enterprise Edition in cui sono contenuti più file o filegroup e, nel modello di recupero con registrazione minima, solo per i filegroup di sola lettura.This topic is relevant only for databases in the Enterprise edition of SQL ServerSQL Server that contain multiple files or filegroups; and, under the simple model, only for read-only filegroups.

Per informazioni sui ripristini a fasi e tabelle con ottimizzazione per la memoria, vedere Backup e ripristino a fasi di database con tabelle con ottimizzazione per la memoria.For information about piecemeal restore and memory-optimized tables, see Piecemeal Restore of Databases With Memory-Optimized Tables.

Ilripristino a fasi consente di ripristinare e recuperare a fasi i database in cui sono inclusi più filegroup.Piecemeal restore allows databases that contain multiple filegroups to be restored and recovered in stages. e comprende una serie di sequenze di ripristino, a partire dal filegroup primario e, in alcuni casi, da uno o più filegroup secondari.Piecemeal restore involves a series of restore sequences, starting with the primary filegroup and, in some cases, one or more secondary filegroups. Permette inoltre di gestire i controlli per assicurarsi che il database sia sempre coerente.Piecemeal restore maintains checks to ensure that the database will be consistent in the end. Dopo il completamento della sequenza di ripristino, i file recuperati, se validi e coerenti con il database, possono essere portati online direttamente.After the restore sequence is completed, recovered files, if they are valid and consistent with the database, can be brought online directly.

Il ripristino a fasi può essere utilizzato con tutti i modelli di recupero, tuttavia la massima flessibilità si ottiene con i modelli di recupero con registrazione completa o con registrazione minima delle operazioni bulk, piuttosto che con il modello di recupero con registrazione minima.Piecemeal restore works with all recovery models, but is more flexible for the full and bulk-logged models than for the simple model.

Ogni ripristino a fasi inizia con una sequenza di ripristino iniziale detta sequenza di ripristino parziale.Every piecemeal restore starts with an initial restore sequence called the partial-restore sequence. Come minimo, la sequenza di ripristino parziale ripristina e recupera il filegroup primario e, nel modello di recupero con registrazione minima, tutti i filegroup di lettura/scrittura.Minimally, the partial-restore sequence restores and recovers the primary filegroup and, under the simple recovery model, all read/write filegroups. Durante la sequenza di ripristino a fasi, è necessario che l'intero database venga portato offline.During the piecemeal-restore sequence, the whole database must go offline. Quindi, il database è online e i filegroup ripristinati sono disponibili.Thereafter, the database is online and restored filegroups are available. Tuttavia, tutti i filegroup non ripristinati rimangono offline e non sono accessibili.However, any unrestored filegroups remain offline and are not accessible. I filegroup offline possono comunque essere ripristinati e portati online successivamente tramite un ripristino di file.Any offline filegroups, however, can be restored and brought online later by a file restore.

Indipendentemente dal modello di recupero utilizzato dal database, la sequenza di ripristino parziale inizia con un'istruzione RESTORE DATABASE che consente di ripristinare un backup completo e di specificare l'opzione PARTIAL.Regardless of the recovery model that is used by the database, the partial-restore sequence starts with a RESTORE DATABASE statement that restores a full backup and specifies the PARTIAL option. L'opzione PARTIAL avvia sempre un nuovo ripristino a fasi. Pertanto, è necessario specificare PARTIAL solo una volta nell'istruzione iniziale della sequenza di ripristino parziale.The PARTIAL option always starts a new piecemeal restore; therefore, you must specify PARTIAL only one time in the initial statement of the partial-restore sequence. Quando la sequenza di ripristino parziale termina e il database viene portato online, lo stato dei file rimanenti diventa "recupero in sospeso" in quanto il loro recupero è stato posticipato.When the partial restore sequence finishes and the database is brought online, the state of the remaining files becomes "recovery pending" because their recovery has been postponed.

Successivamente, un ripristino a fasi include in genere una o più sequenze di ripristino, dette sequenze di ripristino dei filegroup.Subsequently, a piecemeal restore typically includes one or more restore sequences, which are called filegroup-restore sequences. È possibile attendere il periodo di tempo desiderato prima di eseguire una sequenza di ripristino dei filegroup specifica.You can wait to perform a specific filegroup-restore sequence for as long as you want. Ogni sequenza di ripristino dei filegroup ripristina e recupera uno o più filegroup offline rispetto a un punto coerente con il database.Each filegroup-restore sequence restores and recovers one or more offline filegroups to a point consistent with the database. Momento di esecuzione e numero delle sequenze di ripristino dei filegroup dipendono dall'obiettivo del recupero, dal numero di filegroup offline che si desidera ripristinare e dal numero di tali filegroup ripristinati per ogni sequenza di ripristino dei filegroup.The timing and number of filegroup-restore sequences depends on your recovery goal, the number of offline filegroups you want to restore, and on how many of them you restore per filegroup-restore sequence.

I requisiti esatti per l'esecuzione di un ripristino a fasi dipendono dal modello di recupero del database.The exact requirements for performing a piecemeal restore depend on the recovery model of the database. Per ulteriori informazioni, vedere "Ripristino a fasi nel modello di recupero con registrazione minima" e "Ripristino a fasi nel modello di recupero con registrazione completa" di seguito in questo argomento.For more information, see "Piecemeal Restore Under the Simple Recovery Model" and "Piecemeal Restore Under the Full Recovery Model," later in this topic.

Scenari di ripristino a fasiPiecemeal Restore Scenarios

Tutte le edizioni di SQL ServerSQL Server supportano il ripristino a fasi offline.All editions of SQL ServerSQL Server support offline piecemeal restores. In Enterprise Edition, un ripristino a fasi può essere online oppure offline.In the Enterprise edition, a piecemeal restore can be either online or offline. Le implicazioni del ripristino a fasi offline e online sono le seguenti:The implications of offline and online piecemeal restores are as follows:

  • Scenari di ripristino a fasi offlineOffline piecemeal restore scenario

    In un ripristino a fasi offline, il database è online dopo la sequenza di ripristino parziale.In an offline piecemeal restore, the database is online after the partial-restore sequence. I filegroup non ancora ripristinati rimangono offline, ma possono essere ripristinati secondo le esigenze dopo aver portato il database offline.Filegroups that have not yet been restored remain offline, but they can be restored as you need them after taking the database offline.

  • Scenari di ripristino a fasi onlineOnline piecemeal restore scenario

    In un ripristino a fasi online, dopo la sequenza di ripristino parziale, il database è online e il filegroup primario è disponibile insieme ad eventuali filegroup secondari recuperati.In an online piecemeal restore, after the partial-restore sequence, the database is online, and the primary filegroup and any recovered secondary filegroups are available. I filegroup non ancora ripristinati rimangono offline, ma è possibile ripristinarli in base alle necessità mentre il database rimane online.Filegroups that have not yet been restored remain offline, but they can be restored as needed while the database remains online.

    Il ripristino a fasi online può coinvolgere le transazioni posticipate.Online piecemeal restores can involve deferred transactions. Quando è stato ripristinato un solo subset di filegroup, le transazioni nel database che dipendono dai filegroup online possono diventare posticipate.When only a subset of filegroups has been restored, transactions in the database that depend on online filegroups might become deferred. Si tratta di una situazione comune, in quanto l'intero database deve essere coerente.This is typical, because the whole database must be consistent. Per altre informazioni, vedere Transazioni posticipate (SQL Server).For more information, see Deferred Transactions (SQL Server).

  • OLTP in memoria di SQL ServerSQL Server In-Memory OLTP scenario di ripristino a fasi piecemeal restore scenario

    Per informazioni sui ripristini a fasi di database OLTP in memoria, vedere Backup e ripristino a fasi di database con tabelle con ottimizzazione per la memoria.For information on Piecemeal Restores of In-Memory OLTP databases see Piecemeal Backup and Restore of Databases With Memory-Optimized Tables.

RestrizioniRestrictions

Se una sequenza di ripristino parziale esclude qualsiasi filegroup FILESTREAM , il ripristino temporizzato non è supportato.If a partial restore sequence excludes any FILESTREAM filegroup, point-in-time restore is not supported. È possibile forzare la continuazione della sequenza di ripristino.You can force the restore sequence to continue. Tuttavia i filegroup FILESTREAM omessi dall'istruzione RESTORE non potranno mai più essere ripristinati.However the FILESTREAM filegroups that are omitted from your RESTORE statement can never be restored. Per forzare un ripristino temporizzato, specificare l'opzione CONTINUE_AFTER_ERROR insieme all'opzione STOPAT, STOPATMARK o STOPBEFOREMARK che è necessario specificare anche nelle istruzioni RESTORE LOG successive.To force a point-in-time restore, specify the CONTINUE_AFTER_ERROR option together with the STOPAT, STOPATMARK, or STOPBEFOREMARK option, which you must also specify in your subsequent RESTORE LOG statements. Se si specifica CONTINUE_AFTER_ERROR, la sequenza di ripristino parziale ha esito positivo e il filegroup FILESTREAM non può più essere recuperato.If you specify CONTINUE_AFTER_ERROR, the partial restore sequence succeeds and the FILESTREAM filegroup becomes unrecoverable.

Ripristino a fasi nel modello di recupero con registrazione minimaPiecemeal Restore Under the Simple Recovery Model

Nel modello di recupero con registrazione minima la sequenza del ripristino a fasi deve iniziare con un backup completo o parziale del database.Under the simple recovery model, the piecemeal restore sequence must start with a full database or partial backup. Quindi, se il backup ripristinato è una base differenziale, ripristinare il backup differenziale più recente.Then, if the restored backup is a differential base, restore the latest differential backup next.

Durante la prima sequenza di ripristino parziale, se si ripristina solo un subset di filegroup di lettura/scrittura, qualsiasi filegroup non ripristinato diventa non attivo quando si recupera il database parzialmente ripristinato.During the first partial restore sequence, if you restore only a subset of read/write filegroups, any unrestored filegroups become defunct when you recover the partially restored database. L'omissione di un filegroup di lettura/scrittura dalla sequenza di ripristino parziale è adeguata solo nei casi seguenti:Omitting a read/write filegroup from the partial-restore sequence is appropriate only in the following cases:

  • Si desidera che i filegroup non ripristinati diventino inattivi.You intend for the unrestored filegroups to become defunct.

  • La sequenza di ripristino arriverà a un punto di recupero in corrispondenza del quale ogni filegroup non ripristinato è diventato di sola lettura, è stato eliminato o è inattivo (durante un ripristino precedente nella sequenza di ripristino parziale).The restore sequence will arrive at a recovery point at which each unrestored filegroup has become read-only, dropped, or defunct (during a previous restore in the partial-restore sequence).

  • Il backup completo è stato eseguito mentre il database utilizzava il modello di recupero con registrazione minima, ma il punto di recupero si trova in corrispondenza di un punto nel tempo in cui il database utilizza il modello di recupero con registrazione completa.The full backup was taken while the database was using the simple recovery model, but the recovery point is at a time when the database is using the full recovery model. Per ulteriori informazioni, vedere "Esecuzione di un ripristino a fasi di un database il cui modello di recupero è passato da semplice a completo" di seguito in questo argomento.For more information, see "Performing a Piecemeal Restore of a Database Whose Recovery Model Has Been Switched from Simple to Full," later in this topic.

Requisiti per il ripristino a fasi nel modello di recupero con registrazione minimaRequirements for Piecemeal Restore Under the Simple Recovery Model

Nel modello di recupero con registrazione minima, la fase iniziale ripristina e recupera il filegroup primario e tutti i filegroup secondari di lettura/scrittura.Under the simple recovery model, the initial stage restores and recovers the primary filegroup and all read/write secondary filegroups. Dopo il completamento della fase iniziale, i file recuperati, se validi e consistenti con il database, possono essere portati online direttamente.After the initial stage is completed, recovered files, if they are valid and consistent with the database, can be brought online directly.

Quindi, è possibile ripristinare i filegroup di sola lettura in una o più fasi aggiuntive.Thereafter, read-only filegroups can be restored in one or more additional stages.

Il ripristino a fasi è disponibile per un filegroup secondario di sola lettura solo se sono vere le condizioni seguenti:Piecemeal restore is available for a read-only secondary filegroup only if the following are true:

  • Il filegroup era di sola lettura quando ne è stato eseguito il backup.Was read-only when backed up.

  • Il filegroup è rimasto di sola lettura (mantenendolo coerente dal punto di vista logico con il filegroup primario).Has remained read-only (keeping it logically consistent with the primary filegroup).

    Per eseguire un ripristino a fasi, è necessario seguire le linee guida seguenti:To perform a piecemeal restore, the following guidelines must be followed:

  • Un set completo di backup per il ripristino a fasi di un database con modello di recupero con registrazione minima deve contenere gli elementi seguenti:A complete set of backups for the piecemeal restore of a simple recovery model database must contain the following:

    • Un backup del database parziale o completo che contiene il filegroup primario e tutti i filegroup che erano di lettura/scrittura al momento del backup.A partial or full database backup that contains the primary filegroup and all filegroups that were read/write at the time of the backup.

    • Un backup di ogni file di sola lettura.A backup of each read-only file.

  • Perché il backup di un file di sola lettura sia coerente con il filegroup primario, è necessario che il filegroup secondario sia stato di sola lettura dal momento dell'esecuzione del backup fino al completamento del backup che contiene il filegroup primario.For the backup of a read-only file to be consistent with the primary filegroup, the secondary filegroup must have been read-only from when it was backed up until the backup that contains the primary filegroup was completed. È possibile utilizzare backup differenziali dei file, a condizione che siano stati creati dopo che il filegroup è diventato di sola lettura.You can use differential file backups, if they were taken after the filegroup became read-only.

Fasi del ripristino a fasi (modello di recupero con registrazione minimaPiecemeal Restore Stages (Simple Recovery Model)

Lo scenario del ripristino a fasi include le fasi seguenti:The piecemeal restore scenario involves the following stages:

  • Fase iniziale (ripristino e recupero del filegroup primario e di tutti i filegroup di lettura/scrittura)Initial stage (restore and recover the primary filegroup and all read/write filegroups)

    Nella fase iniziale viene eseguito un ripristino parziale,The initial stage performs a partial restore. ovvero la sequenza di ripristino parziale ripristina il filegroup primario, tutti i filegroup secondari di lettura/scrittura e (facoltativamente) alcuni dei filegroup di sola lettura.The partial restore sequence restores the primary filegroup, all read/write secondary filegroups, and (optionally) some of the read-only filegroups. Durante la fase iniziale, è necessario che l'intero database venga portato offline.During the initial stage, the whole database must go offline. Dopo la fase iniziale, il database è online e i filegroup ripristinati sono disponibili.After the initial stage, the database is online, and restored filegroups are available. Tuttavia, eventuali filegroup di sola lettura non ancora ripristinati rimangono offline.However, any read-only filegroups that have not yet been restored, remain offline.

    La prima istruzione RESTORE nella fase iniziale deve eseguire le operazioni seguenti:The first RESTORE statement in the initial stage must do the following:

    • Utilizzare un backup parziale o completo del database che contiene il filegroup primario e tutti i filegroup che erano di lettura/scrittura al momento del backup.Use a partial or full database backup that contains the primary filegroup and all filegroups that were read/write at the time of the backup. In genere una sequenza di ripristino parziale viene avviata tramite il ripristino di un backup parziale.It is common to start a partial restore sequence by restoring a partial backup.

    • Specificare l'opzione PARTIAL che indica l'inizio di un ripristino a fasi.Specify the PARTIAL option, which indicates the start of a piecemeal restore.

    Nota

    L'opzione PARTIAL consente di eseguire i controlli di sicurezza tramite cui viene assicurato che il database risultante è adatto per essere utilizzato come database di produzione.The PARTIAL option performs safety checks that ensure that the resulting database is suited for use as a production database.

    • Specificare l'opzione READ_WRITE_FILEGROUPS nel caso di un backup completo del database.Specify the READ_WRITE_FILEGROUPS option if the backup is a full database backup.
  • Mentre il database è online, è possibile utilizzare uno o più ripristini dei file online per ripristinare e recuperare i file di sola lettura offline che erano di sola lettura al momento del backup.While the database is online, you can use one or more online file restores to restore and recover offline read-only files that were read-only at the time of backup. Il momento in cui eseguire i ripristini dei file online dipende da quando si desidera che i dati siano online.The timing of the online file restores depends on when you want to have the data online.

    La necessità di ripristinare i dati in un file dipende dagli elementi seguenti:Whether you must restore data to a file depends on the following:

    • I file di sola lettura validi consistenti con il database possono essere portati online direttamente recuperandoli senza ripristinare alcun dato.Valid read-only files that are consistent with the database can be brought online directly by recovering them without restoring any data.

    • I file danneggiati o inconsistenti con il database devono essere ripristinati prima che siano recuperati.Files that are damaged or inconsistent with the database must be restored before they are recovered.

EsempiExamples

Ripristino a fasi nel modello di recupero con registrazione completaPiecemeal Restore Under the Full Recovery Model

Nel modello di recupero con registrazione completa o nel modello di recupero con registrazione minima delle operazioni bulk, il ripristino a fasi è disponibile per qualsiasi database che contiene più filegroup, ed è possibile ripristinare un database rispetto a qualsiasi punto nel tempo.Under the full recovery model or bulk-logged recovery model, piecemeal restore is available for any database that contains multiple filegroups and you can restore a database to any point in time. Le sequenze di ripristino di un ripristino a fasi funzionano nel modo seguente:The restore sequences of a piecemeal restore behave as follows:

  • sequenza di ripristino parzialePartial-restore sequence

    La sequenza di ripristino parziale ripristina il filegroup primario e, facoltativamente, alcuni dei filegroup secondari.The partial restore sequence restores the primary filegroup and, optionally, some of the secondary filegroups.

    La prima istruzione RESTORE DATABASE deve eseguire le operazioni seguenti:The first RESTORE DATABASE statement must do the following:

    • Specificare l'opzione PARTIAL.Specify the PARTIAL option. Questo indica l'avvio di un ripristino a fasi.This indicates the start of a piecemeal restore.

    • Utilizzare un backup completo del database che contiene il filegroup primario.Use any full database backup that contains the primary filegroup. In genere una sequenza di ripristino parziale viene avviata tramite il ripristino di un backup parziale.The common practice is to start a partial restore sequence by restoring a partial backup.

    • Per eseguire il ripristino rispetto a un punto nel tempo specifico, è necessario impostare il tempo nella sequenza di ripristino parziale.To restore to a specific point in time, you must specify the time in the partial restore sequence. Ogni passaggio successivo della sequenza di ripristino deve specificare lo stesso punto nel tempo.Every successive step of the restore sequence must specify the same point in time.

  • Le sequenze di ripristino dei filegroup portano online filegroup aggiuntivi rispetto a un punto coerente con il database.Filegroup-restore sequences bring additional filegroups online to a point consistent with the database.

    In Enterprise Edition, qualsiasi filegroup secondario offline può essere ripristinato e recuperato mentre il database rimane online.In the Enterprise edition, any offline secondary filegroup can be restored and recovered while the database remains online. Se un file di sola lettura specifico è coerente con il database e non è danneggiato, non è necessario ripristinarlo.If a specific read-only file is undamaged and consistent with the database, the file does not have to be restored. Per altre informazioni, vedere Recuperare un database senza il ripristino dei dati (Transact-SQL).For more information, see Recover a Database Without Restoring Data (Transact-SQL).

Applicazione dei backup del logApplying Log Backups

Se un filegroup di sola lettura è stato tale fin da prima della creazione del backup del file, l'applicazione dei backup del log al filegroup non è necessaria e non viene eseguita dal ripristino del file.If a read-only filegroup has been read-only since before the file backup was created, applying log backups to the filegroup is unnecessary and is skipped by file restore. Se il filegroup è di lettura/scrittura, per aggiornare il filegroup rispetto al file di log attuale è necessario che venga applicata una catena ininterrotta di backup del log all'ultimo ripristino completo o differenziale.If the filegroup is read/write, an unbroken chain of log backups must be applied to the last full or differential restore to bring the filegroup forward to the current log file.

EsempiExamples

Esecuzione di un ripristino a fasi di un database il cui modello di recupero è passato da semplice a completoPerforming a Piecemeal Restore of a Database Whose Recovery Model Has Been Switched from Simple to Full

È possibile eseguire un ripristino a fasi di un database che è passato dal modello di recupero con registrazione minima al modello di recupero con registrazione completa a partire dal momento del backup completo o parziale del database.You can perform a piecemeal restore of a database that has been switched from the simple recovery model to the full recovery model since the full partial or database backup. Ad esempio, si prenda in considerazione un database per cui vengono eseguiti i passaggi seguenti:For example, consider a database for which you take the following steps:

  1. Creare un backup parziale (backup_1) di un database con modello di recupero con registrazione minima.Create a partial backup (backup_1) of a simple-model database.

  2. Dopo un determinato intervallo di tempo, passare al modello di recupero con registrazione completa.After some time, change the recovery model to full.

  3. Creare un backup differenziale.Create a differential backup.

  4. Avviare l'esecuzione dei backup del log.Start taking log backups.

    La sequenza seguente è pertanto valida:Thereafter, the following sequence is valid:

  5. Un ripristino parziale che omette alcuni filegroup secondari.A partial restore that omits some secondary filegroups.

  6. Un ripristino differenziale, seguito da eventuali altri ripristini necessari.A differential restore followed by any other needed restores.

  7. Successivamente, un ripristino del file di un filegroup secondario di lettura/scrittura WITH NORECOVERY dal backup parziale backup_1Later, a file restore of a read/write secondary filegroup WITH NORECOVERY from the backup_1 partial backup

  8. Il backup differenziale seguito da tutti i backup ripristinati durante la sequenza del ripristino a fasi originale per ripristinare i dati fino al punto di recupero originale.The differential backup followed by any other backups that were restored in the original piecemeal restore sequence to restore the data up to the original recovery point.

Vedere ancheSee Also

Applicare backup di log delle transazioni (SQL Server) Apply Transaction Log Backups (SQL Server)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Ripristinare un database di SQL Server fino a un punto specifico (Modello di recupero con registrazione completa) Restore a SQL Server Database to a Point in Time (Full Recovery Model)
Panoramica del ripristino e del recupero (SQL Server) Restore and Recovery Overview (SQL Server)
Pianificare ed eseguire sequenze di ripristino (Modello di recupero con registrazione completa) Plan and Perform Restore Sequences (Full Recovery Model)