Recupero di un database senza ripristino dei dati (Transact-SQL)

In genere, tutti i dati in un database SQL Server vengono ripristinati prima del ripristino del database. È tuttavia possibile che un'operazione di ripristino recuperi il database senza ripristinare effettivamente un backup, ad esempio nel caso di recupero di un file di sola lettura compatibile con il database. Questa operazione viene definita ripristino con solo recupero. Quando i dati offline sono già compatibili con il database è necessario solo renderli disponibili; un'operazione di ripristino con solo recupero completa il recupero del database e porta i dati online.

Un ripristino con solo recupero può essere eseguito per un intero database, per uno o più file o filegroup.

Ripristino del database con solo recupero

Un ripristino di database con solo recupero può risultare utile nelle situazioni seguenti:

  • Il database non è stato recuperato durante il ripristino dell'ultimo backup in una sequenza di ripristino e ora si desidera recuperare il database per attivare la modalità online.

  • Il database è in modalità standby e si desidera renderlo aggiornabile senza applicare un ulteriore backup del log.

La sintassi dell'istruzione RESTORE per un ripristino di database con solo recupero è la seguente:

RESTORE DATABASE nome_database WITH RECOVERY

Nota

La clausola FROM =<backup_device> non viene usata per i ripristini solo di ripristino perché non è necessario alcun backup.

Esempio

Nell'esempio seguente viene ripristinato il database di esempio AdventureWorks2012 in un'operazione di ripristino senza ripristinare i dati.

-- Restore database using WITH RECOVERY.  
RESTORE DATABASE AdventureWorks2012  
   WITH RECOVERY  

Ripristino del file con solo recupero

Un ripristino di file con solo recupero può risultare utile nella situazione seguente:

Viene eseguito il ripristino a fasi di un database. Dopo il ripristino del filegroup primario, uno o più file non ripristinati sono consistenti con il nuovo stato del database, ad esempio perché è stato mantenuto l'accesso in sola lettura per un certo periodo di tempo. È pertanto sufficiente recuperare questi file senza eseguire un'operazione di copia dei dati.

Un'operazione di ripristino con solo recupero attiva la modalità online per i dati del filegroup offline. Non è prevista alcuna fase di copia dei dati, di rollforward o di rollback. Per informazioni sulle fasi di ripristino, vedere Panoramica di ripristino e ripristino (SQL Server).

La sintassi dell'istruzione RESTORE per un ripristino del file con solo recupero è la seguente:

RESTORE DATABASE database_name { FILE =logical_file_name | FILEGROUP =logical_filegroup_name }[ ,... n ] WITH RECOVERY

Esempio

Nell'esempio riportato di seguito, viene illustrato un ripristino di file con solo recupero, dei file presenti in un filegroup secondario, SalesGroup2, nel database Sales . Il filegroup primario è già stato ripristinato durante la fase iniziale di un ripristino a fasi e SalesGroup2 è consistente con il filegroup primario ripristinato. Per recuperare questo filegroup e attivare la modalità online, è sufficiente una singola istruzione.

RESTORE DATABASE Sales FILEGROUP=SalesGroup2 WITH RECOVERY;  

Esempi di completamento di uno scenario di ripristino frammentario con un ripristino con solo recupero

Modello di recupero con registrazione minima

Modello di recupero con registrazione completa

Vedere anche

Ripristino in linea (SQL Server)
Ripristini a fasi (SQL Server)
Ripristini di file (modello di recupero con registrazione minima)
Ripristini di file (modello di recupero con registrazione completa)
RESTORE (Transact-SQL)