Condividi tramite


Esecuzione di ripristini di file (modello di recupero con registrazione minima)

Le informazioni contenute in questo argomento sono rilevanti solo per i database che utilizzano il modello di recupero con registrazione minima e includono almeno un filegroup secondario di sola lettura.

L'obiettivo di un ripristino di file è ripristinare uno o più file danneggiati senza ripristinare l'intero database. In base al modello di recupero con registrazione minima, i backup di file sono supportati solo per i file di sola lettura. Il filegroup primario e i filegroup secondari di lettura/scrittura vengono sempre ripristinati insieme attraverso il ripristino di un backup del database o parziale.

Tutte le edizioni di SQL Server supportano il ripristino di file quando il database non è in linea (ripristino non in linea della pagina). SQL Server 2005 Standard, SQL Server 2005 Express Edition e SQL Server 2005 Workgroup e versioni successive supportano solo il ripristino non in linea e per il ripristino di un file nel filegroup primario è sempre necessario che il database non sia in linea. In SQL Server 2005 Enterprise Edition e versioni successive viene utilizzato il ripristino non in linea se il database è già non in linea.

In SQL Server 2005 Enterprise Edition e versioni successive se il database è in linea durante il ripristino di un file, esso rimane in linea. Il ripristino e recupero di un file quando il database è in linea viene definito ripristino del file in linea.

Sono disponibili gli scenari di ripristino seguenti:

  • Ripristino di file non in linea

    In un ripristino di file non in linea, i file o i filegroup danneggiati vengono ripristinati mentre il database non è in linea. Al termine della sequenza di ripristino, il database torna in linea.

  • Ripristino di file in linea

    In SQL Server 2005 Enterprise Edition e versioni successive il ripristino di file viene eseguito automaticamente in linea quando il database è in linea. I filegroup contenenti file in fase di ripristino, invece, non sono in linea. Al termine del recupero di tutti i file di un filegroup non in linea, viene attivata in modo automatico la modalità in linea per il filegroup. Per ulteriori informazioni sui ripristini in linea, vedere Esecuzione di ripristini in linea.

    [!NOTA]

    Quando il database è in linea, il filegroup primario e tutti i filegroup di lettura/scrittura sono in modalità in linea. È possibile eseguire query e aggiornamenti solo nei filegroup in linea. Se si tenta di accedere a un filegroup non in linea, incluso un filegroup contenente un file in fase di ripristino o di recupero, verrà generato un errore.

Ripristino di file o filegroup

Uno scenario di ripristino di file consiste in un'unica sequenza di ripristino che consente di eseguire la copia, il rollforward e il recupero dei dati appropriati come descritto di seguito:

Per ripristinare uno o più file danneggiati da backup di file e backup differenziali di file

  1. Ripristinare ogni file danneggiato dal backup di file più recente.

  2. Ripristinare il backup differenziale di file più recente per ogni file ripristinato e recuperare il database.

Per ripristinare file e filegroup

Argomenti avanzati

Sequenza di ripristino di Transact-SQL per il ripristino di file (modello di recupero con registrazione minima)

Nel codice Transact-SQL seguente vengono illustrate le opzioni critiche dell'istruzione RESTORE in una sequenza di ripristino per lo scenario di ripristino di file. La sintassi e i dettagli non rilevanti sono stati omessi.

Questa sequenza di ripristino include due operazioni. La prima esegue il ripristino di un file secondario, il file A, che viene ripristinato with NORECOVERY. La seconda operazione ripristina due altri file, B e C, ripristinati with RECOVERY da un diverso dispositivo di backup.

La sequenza di ripristino del file è la seguente:

RESTORE DATABASE <database> FILE = <name_of_file_A> 
   FROM <file_backup_of_file_A> 
   WITH NORECOVERY
RESTORE DATABASE <database> FILE=<name_of_file_B>, <name_of_file_C> 
   FROM <file_backup_of_files_B_and_C> 
   WITH RECOVERY

[!NOTA]

Se si utilizza SQL Server 2005 Enterprise Edition e si desidera attivare la modalità non in linea per il database per eseguire un ripristino di file, eseguire l'istruzione ALTER DATABASE seguente prima di avviare la sequenza di ripristino: ALTER DATABASE <database_name> SET OFFLINE.

Esempi