Ripristino in linea (SQL Server)

Si applica a: SQL Server

Il ripristino in linea è supportato solo in SQL Server Enterprise Edition. In questa edizione un ripristino di file, pagina o a fasi viene eseguito online per impostazione predefinita. Le informazioni contenute in questo argomento sono importanti per i database che includono più file o filegroup e, in base al modello di recupero con registrazione minima, solo per i filegroup di sola lettura.

Il ripristino di dati mentre il database è online è denominato ripristino online. Un database viene considerato online quando il filegroup primario è online, anche se uno o più filegroup secondari sono offline. Tutti i modelli di recupero consentono di ripristinare un file offline mentre il database è online. Il modello di recupero con registrazione completa consente inoltre di ripristinare pagine mentre il database è online.

Nota

Il ripristino in linea viene eseguito in modo automatico in SQL Server Enterprise e non richiede alcun intervento dell'utente. Se non si desidera utilizzare il ripristino online, è possibile attivare la modalità offline per un database prima di avviare un'operazione di ripristino. Per ulteriori informazioni, vedere Attivazione della modalità offline per un database o un filedi seguito in questo argomento.

Durante un ripristino di file online, tutti i file in fase di ripristino e il relativo filegroup devono essere in modalità offline. Se uno qualsiasi di questi file è online quando viene avviata un'operazione di ripristino online, la prima istruzione di ripristino attiva la modalità offline per il filegroup di tale file. Durante un ripristino di pagina online, è invece necessario che sia in modalità offline solo la pagina.

Per qualsiasi scenario di ripristino online è necessario eseguire la procedura di base seguente:

  1. Ripristinare i dati.

  2. Ripristinare il log utilizzando l'opzione WITH RECOVERY per l'ultimo ripristino del log. Verrà attivata la modalità online per i dati ripristinati.

In alcuni casi non è possibile eseguire il rollback di una transazione di cui non è stato eseguito il commit perché i dati necessari per il rollback sono offline durante l'avvio. In tali casi, la transazione viene posticipata. Per altre informazioni, vedere Transazioni posticipate (SQL Server).

Nota

Se il database attualmente utilizza il modello di recupero con registrazione minima delle operazioni bulk, prima di avviare un'operazione di ripristino online è consigliabile passare al modello di recupero con registrazione completa. Per altre informazioni, vedere Visualizzazione o modifica del modello di recupero di un database (SQL Server).

Importante

Se i backup sono stati eseguiti con più dispositivi collegati al server, è necessario che sia disponibile lo stesso numero di dispositivi durante un'operazione di ripristino online.

Attenzione

Quando si usano backup di snapshot, non è possibile eseguire un ripristino in linea. Per altre informazioni sul backup di snapshot, vedere Backup di snapshot di file per i file di database in Azure.

Backup del log per il ripristino online

In un ripristino online il punto di recupero corrisponde all'ultimo punto in cui è stata attivata la modalità offline o impostata l'autorizzazione di sola lettura per i dati in fase di ripristino. I backup del log delle transazioni fino a tale punto di recupero incluso devono essere tutti disponibili. In genere, è necessario eseguire un backup del log dopo tale punto in modo da includere il punto di recupero per il file. L'unica eccezione si verifica durante un ripristino online di dati di sola lettura da un backup dei dati che è stato eseguito dopo l'impostazione dell'autorizzazione di sola lettura. In tal caso, non è necessario che sia disponibile un backup del log.

In genere, è possibile eseguire backup del log delle transazioni mentre il database è online, anche dopo l'avvio della sequenza di ripristino. Il momento in cui deve essere eseguito l'ultimo backup del log dipende dalle proprietà del file in fase di ripristino:

  • Per un file di sola lettura online, è possibile eseguire l'ultimo backup del log necessario per l'operazione di recupero durante la prima sequenza di ripristino o prima di essa. Per un filegroup di sola lettura, i backup del log potrebbero non essere necessari se è stato eseguito un backup dei dati o differenziale dopo l'impostazione dell'autorizzazione di sola lettura.

    Nota

    Le informazioni sopra riportate sono valide anche per i file offline.

  • Un caso a parte riguarda un file di lettura/scrittura che era online quando è stata eseguita la prima istruzione di ripristino e per cui è stata attivata automaticamente la modalità offline da tale istruzione. In questo caso, è necessario eseguire un backup del log durante la prima sequenza di ripristino (sequenza di una o più istruzioni RESTORE per il ripristino, il rollforward e il recupero dei dati). In genere, questo backup del log deve essere eseguito dopo il ripristino di tutti i backup completi e prima del recupero dei dati. Se, tuttavia, esistono più backup di file per un filegroup specifico, il punto minimo del backup del log corrisponde al momento successivo all'attivazione della modalità offline per il filegroup. Questo backup del log successivo al ripristino dei dati include il punto in cui è stata attivata la modalità offline per il file ed è necessario perché il motore di database di SQL Server non può utilizzare log online per un ripristino online.

    Nota

    In alternativa, è possibile attivare manualmente la modalità offline per il file prima di eseguire la sequenza di ripristino. Per ulteriori informazioni, vedere "Attivazione della modalità offline per un database o un file" di seguito in questo argomento.

Attivazione della modalità offline per un database o un file

Se non si desidera utilizzare il ripristino online, è possibile attivare la modalità offline per il database prima di avviare la sequenza di ripristino utilizzando una delle modalità seguenti:

  • Con qualsiasi modello di recupero è possibile attivare la modalità offline per il database utilizzando l'istruzione ALTER DATABASE seguente:

    ALTER DATABASE nome_database SET OFFLINE

  • In alternativa, se si utilizza il modello di recupero con registrazione completa, è possibile forzare un ripristino di file o pagina offline utilizzando l'istruzione BACKUP LOG seguente per attivare lo stato di ripristino per il database:

    BACKUP LOG nome_database WITH NORECOVERY.

Fino a quando il database rimane in modalità offline, tutti i ripristini eseguiti sono di tipo offline.

Esempi

Nota

La sintassi di una sequenza di ripristino online è la stessa di una sequenza di ripristino offline.

Attività correlate

Vedi anche

Ripristini di file (modello di recupero con registrazione completa)
Ripristini di file (modello di recupero con registrazione minima)
Ripristino di pagine (SQL Server)
Ripristini a fasi (SQL Server)
Panoramica del ripristino e del recupero (SQL Server)