Condividi tramite


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

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 utilizzata per i ripristini con solo recupero perché non è necessario utilizzare un backup.

Esempio

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

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

[Torna all'inizio]

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 di 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;

[Torna all'inizio]

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

Riferimento

RESTORE (Transact-SQL)

Concetti

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)