Esecuzione di un ripristino di database completo (modello di recupero con registrazione minima)

L'obiettivo di un ripristino completo del database è il ripristino dell'intero database. L'intero database non è in linea per la tutta la durata del ripristino. Prima che sia possibile portare in linea una o più parti del database, tutti i dati vengono recuperati fino a un punto consistente in cui tutte le parti del database sono aggiornate allo stesso punto nel tempo e non sono presenti transazioni di cui non è stato eseguito il commit.

Il modello di recupero con registrazione minima non consente di ripristinare il database fino a uno specifico punto nel tempo all'interno di un determinato backup.

Ripristino di un intero database

  1. Se si utilizza il modello di recupero con registrazione minima, il ripristino completo del database richiede solo una o due istruzioni RESTORE, a seconda che sia o meno necessario ripristinare un backup differenziale del database.

Se si utilizza solo un backup di database completo, ripristinare unicamente il backup più recente come illustrato nella figura seguente.

Ripristino solo di un backup completo del database

Se si utilizza anche un backup differenziale del database, ripristinare il backup completo del database più recente senza recuperare il database e quindi ripristinare il backup differenziale del database più recente e recuperare il database. Nella figura seguente è illustrato questo processo.

Ripristino di backup completi e differenziali del database

Quando si ripristina completamente un database, è necessario utilizzare una sequenza di ripristino. Nell'esempio seguente vengono illustrate le opzioni fondamentali di una sequenza di ripristino per lo scenario di ripristino completo del database. Una sequenza di ripristino è costituita da una o più operazioni di ripristino che gestiscono lo spostamento dei dati attraverso una o più fasi del ripristino. La sintassi e i dettagli non rilevanti verranno omessi.

Viene ripristinato lo stato originale del database, come avviene nel caso di un backup completo del database. Quando si recupera un database, è consigliabile specificare in modo esplicito l'opzione RECOVERY per maggiore chiarezza, anche se si tratta dell'opzione predefinita.

Esempio

Nell'esempio seguente viene innanzitutto illustrato come utilizzare l'istruzione BACKUP per creare un backup completo del database e un backup differenziale del database AdventureWorks. Questi backup vengono quindi ripristinati in sequenza.

[!NOTA]

L'esempio inizia con un'istruzione ALTER DATABASE che imposta il modello di recupero su SIMPLE.

USE master;
--Make sure the database is using the simple recovery model.
ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE;
GO
-- Back up the full AdventureWorks database.
BACKUP DATABASE AdventureWorks TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' 
  WITH FORMAT;
GO
--Create a differential database backup.
BACKUP DATABASE AdventureWorks TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
   WITH DIFFERENTIAL;
GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' 
   WITH FILE=1, NORECOVERY;
--Restore the differential backup (from backup set 2).
RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' 
   WITH FILE=2, RECOVERY;
GO

Per ripristinare un backup completo del database

La sintassi di base di RESTORE per il ripristino di un backup del database è la seguente:

RESTORE DATABASE database_name FROM backup_device [ WITH NORECOVERY ]

[!NOTA]

Utilizzare WITH NORECOVERY se si desidera ripristinare anche un backup differenziale del database.

Nota importanteImportante

Quando si ripristina un backup del database su un'istanza del server diversa, vedere Copia di database tramite backup e ripristino e Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server.

Per ripristinare un backup differenziale del database

La sintassi di base di RESTORE per il ripristino di un backup differenziale del database è la seguente:

RESTORE DATABASE database_name FROM backup_device WITH RECOVERY

Per ripristinare un backup utilizzando SMO (SQL Server Management Objects)

Supporto per i backup da versioni precedenti di SQL Server

In SQL Server 2008 è possibile ripristinare backup del database creati con SQL Server 2000, SQL Server 2005 o SQL Server 2008. Tuttavia, i backup dei database master, model e msdb creati utilizzando SQL Server 2000 oppure SQL Server 2005 non possono essere ripristinati tramite SQL Server 2008. Non è inoltre possibile ripristinare i backup di SQL Server 2008 in una qualsiasi versione precedente di SQL Server.

SQL Server 2008 utilizza un percorso predefinito diverso rispetto alle versioni precedenti. Per ripristinare un database creato nel percorso predefinito di backup SQL Server 2000 o SQL Server 2005 è pertanto necessario utilizzare l'opzione MOVE. Per informazioni sul nuovo percorso predefinito, vedere Percorsi dei file per le istanze predefinite e denominate di SQL Server.

[!NOTA]

Per informazioni su come aggiornare un database creato utilizzando SQL Server 7.0 o versioni precedenti e passare a SQL Server 2005, vedere Copia di database da SQL Server 7.0 o versioni precedenti.