Pianificazione ed esecuzione di sequenze di ripristino (Modello di recupero con registrazione completa)
Le informazioni contenute in questo argomento sono rilevanti per i database di SQL Server che normalmente utilizzano il modello di recupero con registrazione completa.
Una sequenza di ripristino è una sequenza contenente una o più istruzioni RESTORE. In genere, inizializza il contenuto del database, dei file e/o delle pagine in fase di ripristino (fase di copia dei dati), esegue il rollforward delle transazioni registrate (fase di rollforward) e quindi esegue il rollback delle transazioni di cui non è stato eseguito il commit (fase di rollback). Per ulteriori informazioni su queste fasi, vedere Informazioni sul funzionamento dei processi di ripristino e recupero dei backup in SQL Server.
[!NOTA]
Per un'introduzione ai tipi di backup, vedere Panoramica del backup (SQL Server).
In scenari semplici, una sequenza di ripristino richiede 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.
Pianificazione di una sequenza di ripristino
Prima di iniziare una sequenza di ripristino, eseguire la procedura seguente:
Se possibile, creare un backup della parte finale del log per il database. Per ulteriori informazioni, vedere Backup della parte finale del log.
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 ulteriori informazioni, vedere Ripristino di un database fino a un punto all'interno di un backup o Utilizzo delle transazioni contrassegnate (modello di recupero con registrazione completa).
Determinare il tipo di ripristino che si desidera eseguire. Per ulteriori informazioni, vedere gli argomenti seguenti:
Individuare i backup necessari e verificare che siano disponibili i set di supporti e i dispositivi di backup appropriati. Per ulteriori informazioni, vedere Utilizzo di supporti di backup in SQL Server.
Esecuzione di una sequenza di ripristino
Per eseguire una sequenza di ripristino, eseguire la procedura seguente:
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.
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 ulteriori informazioni, vedere Utilizzo dei backup differenziali.
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:
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. Per ulteriori informazioni, vedere Applicazione dei backup del log delle transazioni.
Nel caso di un ripristino temporizzato, i backup del log più recenti potrebbero non essere necessari. Per ulteriori informazioni, vedere Ripristino temporizzato.
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.
Vedere anche