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
Esempio: Ripristino a fasi di un database (modello di recupero con registrazione minima)
Esempio: Ripristino a fasi di filegroup selezionati (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)