Pianificare ed eseguire sequenze di ripristino (Modello di recupero con registrazione completa)Plan and Perform Restore Sequences (Full Recovery Model)

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2016)noDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

In questo argomento si spiega come pianificare ed eseguire una sequenza di ripristino per un database di SQL ServerSQL Server in cui viene utilizzato in genere il modello di recupero con registrazione completa.This topic explains how to plan and perform a restore sequence for a SQL ServerSQL Server databases that ordinarily uses the full recovery model. Una sequenza di ripristino è una sequenza contenente una o più istruzioni RESTORE .A restore sequence is a sequence of one or more RESTORE statements. In genere, consente di inizializzare il contenuto del database, dei file e/o delle pagine in fase di ripristino (fase di copia dei dati), di eseguire il roll forward delle transazioni registrate (fase di rollforward) e quindi di eseguire il rollback delle transazioni di cui non è stato eseguito il commit (fase di rollback).Typically, a restore sequences initializes the contents of the database, files, and/or pages being restored (the data-copy phase), rolls forward logged transactions (the redo phase), and rolls back uncommitted transactions (the undo phase).

In scenari semplici, per una sequenza di ripristino sono necessari solo un backup completo del database, un backup differenziale del database e i successivi backup del log.In simple cases, a restore sequence requires only a full database backup, a differential database backup, and the subsequent log backups. In questi casi, la formulazione di una corretta sequenza di ripristino è un'operazione semplice.In these cases, constructing a correct restore sequence is easy. Per ripristinare ad esempio un intero database fino al punto in cui si è verificato un errore, eseguire innanzitutto il backup del log delle transazioni attivo (la parte finale del log).For example, to restore a whole database to the point of a failure, start by backing up the active transaction log (the tail of the log). Ripristinare quindi il backup completo del database più recente, l'eventuale backup differenziale più recente e tutti i successivi backup del log nell'ordine in cui sono stati eseguiti.Then, restore the most recent full database backup, the most recent differential backup (if any), and all subsequent log backups in the order in which they were taken.

In scenari più complessi, la formulazione di una corretta sequenza di ripristino può risultare difficile.In more complex cases, constructing a correct restore sequence can be a complex process. Una sequenza di ripristino potrebbe ad esempio richiedere più backup di file oppure il ripristino dei dati fino a un punto nel tempo specifico.For example, a restore sequence might require multiple file backups or restoring data to a specific point in time. In scenari estremamente complessi, potrebbe persino essere necessario attraversare un percorso di recupero che si estende su uno o più fork di recupero.In very complex cases, you might even have to traverse a forked recovery path that spans one or more recovery forks.

Nota

Un percorso di recupero è la sequenza di dati e di backup del log che hanno portato un database a un determinato momento, noto come punto di recupero.A recovery path is the sequence of data and log backups that have brought a database to a particular point in time (known as a recovery point). Un percorso di recupero è costituito da un set specifico di trasformazioni che hanno determinato la modifica del database nel corso del tempo, mantenendone tuttavia la coerenza.A recovery path is a specific set of transformations that have evolved the database over time, yet have maintained the consistency of the database. Un percorso di recupero descrive un intervallo di LSN da un punto di inizio (LSN,GUID) a un punto di fine (LSN,GUID).A recovery path describes a range of LSNs from a start point (LSN,GUID) to an end point (LSN,GUID). È possibile che l'intervallo di LSN in un percorso di recupero attraversi uno o più rami di recupero dall'inizio alla fine.The range of LSNs in a recovery path can traverse one or more recovery branches from start to end.

Per pianificare una sequenza di ripristinoTo Plan a Restore Sequence

Prima di avviare una sequenza di ripristino, effettuare le operazioni seguenti:Before you start a restore sequence, follow these steps:

  1. Se possibile, creare un backup della parte finale del log per il database.Create a tail-log backup of the database, if you can. Per altre informazioni, vedere Backup della parte finale del log (SQL Server).For more information, see Tail-Log Backups (SQL Server).

  2. Determinare il punto di recupero previsto.Determine the target recovery point.

    Il punto di recupero previsto può corrispondere a un qualsiasi punto nel tempo o un qualsiasi contrassegno all'interno di un backup del log delle transazioni.The target recovery point can be any point in time or mark within a transaction log backup. Per altre informazioni, vedere Ripristinare un database di SQL Server fino a un punto specifico (modello di recupero con registrazione completa) o Usare transazioni contrassegnate per recuperare coerentemente i database correlati (modello di recupero con registrazione completa).For more information, see Restore a SQL Server Database to a Point in Time (Full Recovery Model) or Use Marked Transactions to Recover Related Databases Consistently (Full Recovery Model).

  3. Determinare il tipo di ripristino che si desidera eseguire.Determine the type of restore you want to perform. Per altre informazioni, vedere Panoramica del ripristino e del recupero (SQL Server).For more information, see Restore and Recovery Overview (SQL Server).

  4. Individuare i backup necessari e verificare che siano disponibili i set di supporti e i dispositivi di backup appropriati.Identify which backups you require and make sure that the necessary media sets and backup devices are available. Per altre informazioni, vedere Dispositivi di backup (SQL Server) e Set di supporti, gruppi di supporti e set di backup (SQL Server).For more information, see Backup Devices (SQL Server) and Media Sets, Media Families, and Backup Sets (SQL Server).

Per eseguire una sequenza di ripristinoTo Perform a Restore Sequence

Per eseguire una sequenza di ripristino, effettuare le operazioni seguenti:To perform a restore sequence, follow these steps:

  1. Per avviare la sequenza, ripristinare uno o più backup dei dati, ad esempio un backup del database, un backup parziale, uno o più backup di file.To start the sequence, restore a one or more data backups, such as: a database backup, a partial backup, one or more file backups.

  2. Ripristinare facoltativamente gli ultimi backup differenziali basati su questi backup completi.Optionally, restore the latest differential backups that are based on these full backups.

    Per ogni backup completo che si prevede di ripristinare, determinare se viene utilizzato come base per qualsiasi backup differenziale.For each full backup that you plan to restore, determine whether it is the base for any differential backups. In tal caso, ripristinare se possibile il backup differenziale più recente.If so, restore most recent differential backup, if you can. Per altre informazioni, vedere Backup differenziali (SQL Server).For more information, see Differential Backups (SQL Server).

  3. Eseguire il rollforward del database ripristinando in sequenza i backup del log e terminando con il backup che include il punto di recupero.Roll forward the database by restoring log backups in sequence, finishing with the backup that contains the recovery point. L'applicazione o meno di tutti i backup del log dipende dal backup del log che contiene il punto di recupero previsto, come descritto di seguito:Whether you have to apply all the log backups depends on what log backup contains the target recovery point, as follows:

    • Se il punto di recupero corrisponde al punto in cui si è verificato un errore, è necessario ripristinare tutti i backup del log creati dopo l'ultimo backup dei dati completo o differenziale ripristinato.If the recovery point is the point of a failure, you must restore every log backup that was created since the last data (full or differential) backup you restored. Per altre informazioni, vedere Applicare backup del log delle transazioni (SQL Server).For more information, see Apply Transaction Log Backups (SQL Server).

    • Nel caso di un ripristino temporizzato, i backup del log più recenti potrebbero non essere necessari.For a point-in-time restore, you might not require the most recent log backups. Se si utilizza SQL Server Management StudioSQL Server Management Studio, tramite Database Recovery Advisor viene assicurato che vengano selezionati solo i backup necessari per eseguire il ripristino alla temporizzazione specificata.If you use SQL Server Management StudioSQL Server Management Studio, the Database Recovery Advisor ensures that only backups that are required to restore to your specified point in time are selected. Questi backup costituiscono il piano di ripristino consigliato per il ripristino temporizzato.These backups make up the recommended restore plan for your point-in-time restore. Per altre informazioni, vedere Ripristinare un database di SQL Server fino a un punto specifico (modello di recupero con registrazione completa).For more information, see Restore a SQL Server Database to a Point in Time (Full Recovery Model).

Riavvio di una sequenza di ripristinoRestarting a Restore Sequence

Se l'esito di una sequenza di ripristino viene compromesso da un problema, è possibile interrompere la sequenza e riavviarla dall'inizio.If you encounter a problem with the outcome of a restore sequence, you can quit it and restart the restore sequence over from the start. Se, ad esempio, si ripristina per errore un numero eccessivo di backup del log e si supera il punto di recupero desiderato, è necessario riavviare la sequenza di ripristino fino al backup del log che contiene il punto di recupero previsto.For example, if you accidentally restore too many log backups and overshoot the intended recovery point, you must restart the restore sequence up to log backup that contains the target recovery point.

Vedere ancheSee Also

Panoramica del backup (SQL Server) Backup Overview (SQL Server)
Panoramica del ripristino e del recupero (SQL Server) Restore and Recovery Overview (SQL Server)
Ripristini di database completi (modello di recupero con registrazione completa) Complete Database Restores (Full Recovery Model)
Ripristino in linea (SQL Server) Online Restore (SQL Server)
Ripristini di file (modello di recupero con registrazione completa) File Restores (Full Recovery Model)
Ripristinare pagine (SQL Server) Restore Pages (SQL Server)
Ripristini a fasi (SQL Server) Piecemeal Restores (SQL Server)