Ripristino in linea (SQL Server)Online Restore (SQL Server)

Il ripristino in linea è supportato solo in SQL ServerSQL Server Enterprise Edition.Online restore is supported only on SQL ServerSQL Server Enterprise edition. In questa edizione un ripristino di file, pagina o a fasi viene eseguito online per impostazione predefinita.In this edition, a file, page, or piecemeal restore is online by default. 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.This topic is relevant for databases that contain multiple files or filegroups (and, under the simple recovery model, only for read-only filegroups).

Il ripristino di dati mentre il database è online è denominato ripristino online.Restoring data while the database is online is called an online restore. Un database viene considerato online quando il filegroup primario è online, anche se uno o più filegroup secondari sono offline.A database is considered to be online whenever the primary filegroup is online, even if one or more of its secondary filegroups are offline. Tutti i modelli di recupero consentono di ripristinare un file offline mentre il database è online.Under any recovery model, you can restore a file that is offline while the database is online. Il modello di recupero con registrazione completa consente inoltre di ripristinare pagine mentre il database è online.Under the full recovery model, you can also restore pages while the database is online.

Nota

Il ripristino in linea viene eseguito in modo automatico in SQL ServerSQL Server Enterprise e non richiede alcun intervento dell'utente.Online restore occurs automatically on SQL ServerSQL Server Enterprise and requires no user action. Se non si desidera utilizzare il ripristino online, è possibile attivare la modalità offline per un database prima di avviare un'operazione di ripristino.If you do not want to use online restore, you can take a database offline before you start a restore. Per ulteriori informazioni, vedere Attivazione della modalità offline per un database o un filedi seguito in questo argomento.For more information, see Taking a Database or File Offline, later in this topic.

Durante un ripristino di file online, tutti i file in fase di ripristino e il relativo filegroup devono essere in modalità offline.During an online file restore, any file being restored and its filegroup are 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.If any of these files is online when an online restore starts, the first restore statement takes the filegroup of the file offline. Durante un ripristino di pagina online, è invece necessario che sia in modalità offline solo la pagina.In contrast, during an online page restore, only the page is offline.

Per qualsiasi scenario di ripristino online è necessario eseguire la procedura di base seguente:Every online restore scenario involves the following basic steps:

  1. Ripristinare i dati.Restore the data.

  2. Ripristinare il log utilizzando l'opzione WITH RECOVERY per l'ultimo ripristino del log.Restore the log by using WITH RECOVERY for the last log restore. Verrà attivata la modalità online per i dati ripristinati.This brings the restored data online.

    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.Occasionally, an uncommitted transaction cannot be rolled back because the data that is required by rollback is offline during startup. In tali casi, la transazione viene posticipata.In this case, the transaction is deferred. Per altre informazioni, vedere Transazioni posticipate (SQL Server).For more information, see Deferred Transactions (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.If the database is currently using the bulk-logged recovery model, we recommend that you switch to the full recovery model before you start an online restore. Per altre informazioni, vedere Visualizzare o modificare il modello di recupero di un database (SQL Server).For more information, see View or Change the Recovery Model of a 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.If the backups were taken with multiple devices that were attached to the server, the same number of devices must be available during an online restore.

Attenzione

Quando si usano backup di snapshot, non è possibile eseguire un ripristino in linea.When using snapshot backups, you cannot perform an Online Restore. Per altre informazioni sul backup di snapshot, vedere Backup di snapshot di file per i file di database in Azure.For more information about Snapshot Backup, see File-Snapshot Backups for Database Files in Azure.

Backup del log per il ripristino onlineLog Backups for Online Restore

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.In an online restore, the recovery point is the point when the data being restored was taken offline or made read-only for the last time. I backup del log delle transazioni fino a tale punto di recupero incluso devono essere tutti disponibili.The transaction log backups leading up to and including this recovery point must all be available. In genere, è necessario eseguire un backup del log dopo tale punto in modo da includere il punto di recupero per il file.Generally, a log backup is required after that point to cover the recovery point for the 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.The only exception is during an online restore of read-only data from a data backup that was taken after the data became read-only. In tal caso, non è necessario che sia disponibile un backup del log.In this case, you do not have to have a log backup.

In genere, è possibile eseguire backup del log delle transazioni mentre il database è online, anche dopo l'avvio della sequenza di ripristino.Generally, you may take transaction log backups while the database is online, even after the start of the restore sequence. Il momento in cui deve essere eseguito l'ultimo backup del log dipende dalle proprietà del file in fase di ripristino:The timing of the last log backup depends on the properties of the file being restored:

  • 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.For an online read-only file, you can take the last log backup that is required for recovery before or during the first restore sequence. 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.A read-only filegroup may not require log backups if a data or differential backup was taken after the filegroup became read-only.

    Nota

    Le informazioni sopra riportate sono valide anche per i file offline.The preceding information also applies to every offline file.

  • 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.A special case exists for a read/write file that was online when the first restore statement was issued and that was then automatically taken offline by that restore statement. 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 this case, you must take a log backup during the first restore sequence (the sequence of one or more RESTORE statements that restore, roll forward, and recover data). In genere, questo backup del log deve essere eseguito dopo il ripristino di tutti i backup completi e prima del recupero dei dati.Generally, this log backup must occur after you restore all the full backups and before you recover the data. 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.However, if there are multiple file backups for a specific filegroup, the minimal point of log backup is the time after the filegroup is offline. Questo backup del log successivo al ripristino dei dati include il punto in cui è stata attivata la modalità offline per il fileThis post-data-restore log backup captures the point at which the file was taken offline. ed è necessario perché il Motore di database di SQL ServerSQL Server Database Engine non può utilizzare log online per un ripristino online.The post-data-restore log backup is necessary because the Motore di database di SQL ServerSQL Server Database Engine cannot use online log for an online restore.

    Nota

    In alternativa, è possibile attivare manualmente la modalità offline per il file prima di eseguire la sequenza di ripristino.Alternatively, you can manually take the file offline before the restore sequence. Per ulteriori informazioni, vedere "Attivazione della modalità offline per un database o un file" di seguito in questo argomento.For more information, see "Taking a Database or File Offline" later in this topic.

Attivazione della modalità offline per un database o un file Taking a Database or File Offline

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:If you do not want to use online restore, you can take the database offline before you start the restore sequence by using one of the following methods:

  • Con qualsiasi modello di recupero è possibile attivare la modalità offline per il database utilizzando l'istruzione ALTER DATABASE seguente:Under any recovery model, you can take the database offline by using the following ALTER DATABASE statement:

    ALTER DATABASE nome_database SET OFFLINEALTER DATABASE database_name 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:Alternatively, under the full recovery model, you can force a file or page restore to be offline, by using the following BACKUP LOG statement put the database in to the restoring state:

    BACKUP LOG nome_database WITH NORECOVERY.BACKUP LOG database_name WITH NORECOVERY.

    Fino a quando il database rimane in modalità offline, tutti i ripristini eseguiti sono di tipo offline.As long as a database remains offline, all restores are offline restores.

EsempiExamples

Nota

La sintassi di una sequenza di ripristino online è la stessa di una sequenza di ripristino offline.The syntax for an online restore sequence is the same as for an offline restore sequence.

Vedere ancheSee Also

Ripristini di file (modello di recupero con registrazione completa) File Restores (Full Recovery Model)
Ripristini di file (modello di recupero con registrazione minima) File Restores (Simple Recovery Model)
Ripristinare pagine (SQL Server) Restore Pages (SQL Server)
Ripristini a fasi (SQL Server) Piecemeal Restores (SQL Server)
Panoramica del ripristino e del recupero (SQL Server) Restore and Recovery Overview (SQL Server)