Recuperare un database senza ripristino dei dati (Transact-SQL)

Si applica a:SQL Server

Generalmente, tutti i dati in un database SQL Server vengono ripristinati prima che venga recuperato il 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 *database_name* WITH RECOVERY

Nota

La clausola FROM =<backup_device> non viene usata per i ripristini con solo recupero perché il backup non è necessario.

Esempio

Nel seguente esempio viene recuperato il database di esempio AdventureWorks2022 durante un'operazione di recupero senza eseguire il ripristino dei dati.

-- Restore database using WITH RECOVERY.  
RESTORE DATABASE AdventureWorks2022  
   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 del ripristino, vedere Panoramica del ripristino e del recupero (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 a fasi con un ripristino con solo recupero

Modello di recupero con registrazione minima

Modello di recupero con registrazione completa

Vedi 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)
Panoramica del ripristino e del recupero (SQL Server)