Pianificare ed eseguire sequenze di ripristino (modello di recupero con registrazione completa)

Si applica a:SQL Server

In questo argomento si spiega come pianificare ed eseguire una sequenza di ripristino per un database di SQL Server in cui viene utilizzato in genere il modello di recupero con registrazione completa. Una sequenza di ripristino è una sequenza contenente una o più istruzioni RESTORE . 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).

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 questi casi, la formulazione di una corretta sequenza di ripristino è un'operazione semplice. 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). 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.

In scenari più complessi, la formulazione di una corretta sequenza di ripristino può risultare difficile. Una sequenza di ripristino potrebbe ad esempio richiedere più backup di file oppure il ripristino dei dati fino a un punto nel tempo specifico. In scenari estremamente complessi, potrebbe persino essere necessario attraversare un percorso di recupero che si estende su uno o più fork di recupero.

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. 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. Un percorso di recupero descrive un intervallo di LSN da un punto di inizio (LSN,GUID) a un punto di fine (LSN,GUID). È possibile che l'intervallo di LSN in un percorso di recupero attraversi uno o più rami di recupero dall'inizio alla fine.

Per pianificare una sequenza di ripristino

Prima di avviare una sequenza di ripristino, effettuare le operazioni seguenti:

  1. Se possibile, creare un backup della parte finale del log per il database. Per altre informazioni, vedere Backup della parte finale del log (SQL Server).

  2. Determinare il punto di recupero previsto.

    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. 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).

  3. Determinare il tipo di ripristino che si desidera eseguire. Per altre informazioni, vedere Panoramica del ripristino e del recupero (SQL Server).

  4. Individuare i backup necessari e verificare che siano disponibili i set di supporti e i dispositivi di backup appropriati. Per altre informazioni, vedere Dispositivi di backup (SQL Server) e Set di supporti, gruppi di supporti e set di backup (SQL Server).

Per eseguire una sequenza di ripristino

Per eseguire una sequenza di ripristino, effettuare le operazioni seguenti:

  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.

  2. Ripristinare facoltativamente gli ultimi backup differenziali basati su questi backup completi.

    Per ogni backup completo che si prevede di ripristinare, determinare se viene utilizzato come base per qualsiasi backup differenziale. In tal caso, ripristinare se possibile il backup differenziale più recente. Per altre informazioni, vedere Backup differenziali (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. 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:

Riavvio di una sequenza di ripristino

Se l'esito di una sequenza di ripristino viene compromesso da un problema, è possibile interrompere la sequenza e riavviarla dall'inizio. 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.

Vedi anche

Panoramica del backup (SQL Server)
Panoramica del ripristino e del recupero (SQL Server)
Ripristini di database completi (modello di recupero con registrazione completa)
Ripristino in linea (SQL Server)
Ripristini di file (modello di recupero con registrazione completa)
Ripristino di pagine (SQL Server)
Ripristini a fasi (SQL Server)