Ripristino di un backup differenziale di database (SQL Server)Restore a Differential Database Backup (SQL Server)

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2016)noDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

In questo argomento viene descritto il ripristino di un backup differenziale del database in SQL Server 2017SQL Server 2017 tramite SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to restore a differential database backup in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Contenuto dell'argomentoIn This Topic

Prima di iniziare Before You Begin

Limitazioni e restrizioni Limitations and Restrictions

  • Non è possibile utilizzare RESTORE in una transazione esplicita o implicita.RESTORE is not allowed in an explicit or implicit transaction.

  • I backup creati nella versione più recente di SQL ServerSQL Server non possono essere ripristinati nelle versioni precedenti di SQL ServerSQL Server.Backups that are created by more recent version of SQL ServerSQL Server cannot be restored in earlier versions of SQL ServerSQL Server.

  • In SQL Server 2017SQL Server 2017è possibile ripristinare un database utente dal backup di un database creato tramite SQL Server 2005SQL Server 2005 o una versione successiva.In SQL Server 2017SQL Server 2017, you can restore a user database from a database backup that was created by using SQL Server 2005SQL Server 2005 or a later version.

Prerequisiti Prerequisites

  • Nel modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk, prima di poter ripristinare un database, è necessario effettuare il backup del log delle transazioni attivo, noto come parte finale del log.Under the full or bulk-logged recovery model, before you can restore a database, you must back up the active transaction log (known as the tail of the log). Per altre informazioni, vedere Eseguire il backup di un log delle transazioni (SQL Server).For more information, see Back Up a Transaction Log (SQL Server).

Sicurezza Security

Autorizzazioni Permissions

Se il database da ripristinare non esiste, per eseguire un'operazione RESTORE l'utente deve disporre delle autorizzazioni CREATE DATABASE.If the database being restored does not exist, the user must have CREATE DATABASE permissions to be able to execute RESTORE. Se il database esiste, le autorizzazioni per l'istruzione RESTORE vengono assegnate per impostazione predefinita ai membri dei ruoli predefiniti del server sysadmin e dbcreator e al proprietario (dbo) del database. Per l'opzione FROM DATABASE_SNAPSHOT, il database esiste sempre.If the database exists, RESTORE permissions default to members of the sysadmin and dbcreator fixed server roles and the owner (dbo) of the database (for the FROM DATABASE_SNAPSHOT option, the database always exists).

Le autorizzazioni per l'istruzione RESTORE vengono assegnate ai ruoli in cui le informazioni sull'appartenenza sono sempre disponibili per il server.RESTORE permissions are given to roles in which membership information is always readily available to the server. L'appartenenza ai ruoli predefiniti del database può essere controllata solo quando il database è accessibile e non è danneggiato, condizioni che non risultano sempre vere quando si esegue un'operazione RESTORE, quindi i membri del ruolo predefinito del database db_owner non hanno le autorizzazioni per l'istruzione RESTORE.Because fixed database role membership can be checked only when the database is accessible and undamaged, which is not always the case when RESTORE is executed, members of the db_owner fixed database role do not have RESTORE permissions.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per ripristinare un backup differenziale del databaseTo restore a differential database backup

  1. Dopo aver stabilito la connessione all'istanza appropriata di MicrosoftMicrosoft Motore di database di SQL ServerSQL Server Database Engine, in Esplora oggetti fare clic sul nome del server per espanderne l'albero.After you connect to the appropriate instance of the MicrosoftMicrosoft Motore di database di SQL ServerSQL Server Database Engine, in Object Explorer, click the server name to expand the server tree.

  2. Espandere Database.Expand Databases. A seconda del database, selezionare un database utente oppure espandere Database di sistemae selezionare un database di sistema.Depending on the database, either select a user database or expand System Databases, and then select a system database.

  3. Fare clic con il pulsante destro del mouse sul database, scegliere Attività, selezionare Ripristina, quindi fare clic su Database.Right-click the database, point to Tasks, point to Restore, and then click Database.

  4. Per specificare l'origine e il percorso dei set di backup da ripristinare, nella pagina Generale , utilizzare la sezione Origine .On the General page, use the Source section to specify the source and location of the backup sets to restore. Selezionare una delle opzioni seguenti:Select one of the following options:

    • DatabaseDatabase

      Selezionare il database da ripristinare dall'elenco a discesa.Select the database to restore from the drop-down list. Nell'elenco sono inclusi solo i database di cui è stato eseguito il backup in base alla cronologia dei backup di msdb .The list contains only databases that have been backed up according to the msdb backup history.

    Nota

    Se il backup viene eseguito da un server diverso, il server di destinazione non disporrà delle informazioni della cronologia di backup per il database specificato.If the backup is taken from a different server, the destination server will not have the backup history information for the specified database. In questo caso, selezionare Dispositivo per specificare manualmente il file o il dispositivo da ripristinare.In this case, select Device to manually specify the file or device to restore.

    • DispositivoDevice

      Fare clic sul pulsante Sfoglia (...) per aprire la finestra di dialogo Seleziona dispositivi di backup .Click the browse (...) button to open the Select backup devices dialog box. Nella casella Tipi di supporti di backup selezionare uno dei tipi di dispositivi elencati.In the Backup media type box, select one of the listed device types. Per selezionare uno o più dispositivi per la casella Supporti di backup , fare clic su Aggiungi.To select one or more devices for the Backup media box, click Add.

      Dopo avere aggiunto i dispositivi desiderati nella casella di riepilogo Dispositivi di backup , fare clic su OK per tornare alla pagina Generale .After you add the devices you want to the Backup media list box, click OK to return to the General page.

      Nella casella di riepilogo Origine: Dispositivo: Database selezionare il nome del database da ripristinare.In the Source: Device: Database list box, select the name of the database which should be restored.

      Nota Questo elenco è disponibile solo se si seleziona Dispositivo .Note This list is only available when Device is selected. Saranno disponibili solo i database che dispongono di backup sul dispositivo selezionato.Only databases that have backups on the selected device will be available.

  5. Nella sezione Destinazione , la casella Database viene popolata automaticamente con il nome del database da ripristinare.In the Destination section, the Database box is automatically populated with the name of the database to be restored. Per modificare il nome del database, immettere il nome nuovo nella casella Database .To change the name of the database, enter the new name in the Database box.

    Nota

    Per arrestare il ripristino in una data e un'ora diverse, fare clic su Sequenza temporale per accedere alla finestra di dialogo Cronologia di backup .To stop the restore at a specific point in time, click Timeline to access the Backup Timeline dialog box. Per informazioni sull'arresto del ripristino di un database in un momento specifico, vedere Ripristino di un database di SQL Server fino a un punto specifico all'interno di un backup (modello di recupero con registrazione completa).For help with stopping a database restore at a specific point in time, see Restore a SQL Server Database to a Point in Time (Full Recovery Model).

  6. Nella griglia Selezionare i set di backup da ripristinare selezionare i backup che si desidera ripristinare dal backup differenziale.In the Backup sets to restore grid, select the backups through the differential backup that you wish to restore.

    Per informazioni sulle colonne nella griglia Set di backup da ripristinare, vedere Ripristina database((pagina Generale)).For information about the columns in the Backup sets to restore grid, see Restore Database (General Page).

  7. Nella pagina Opzioni del pannello Opzioni di ripristino è possibile selezionare una qualsiasi delle opzioni seguenti, in base alla situazione:On the Options page, in the Restore options panel, you can select any of the following options, if appropriate for your situation:

    • Sovrascrivi il database esistente (WITH REPLACE)Overwrite the existing database (WITH REPLACE)

    • Mantieni le impostazioni di replica (WITH KEEP_REPLICATION)Preserve the replication settings (WITH KEEP_REPLICATION)

    • Chiedi conferma prima del ripristino di ogni backupPrompt before restoring each backup

    • Limita accesso al database ripristinato (WITH RESTRICTED_USER)Restrict access to the restored database (WITH RESTRICTED_USER)

      Per altre informazioni su queste opzioni, vedere Ripristina database ((pagina Opzioni)).For more information about these options, see Restore Database (Options Page).

  8. Selezionare un'opzione per la casella Stato di recupero .Select an option for the Recovery state box. Questa casella determina lo stato del database al termine dell'operazione di ripristino.This box determines the state of the database after the restore operation.

    • RESTORE WITH RECOVERY è il comportamento predefinito che lascia il database pronto per l'utilizzo mediante il rollback delle transazioni di cui non è stato eseguito il commit.RESTORE WITH RECOVERY is the default behavior which leaves the database ready for use by rolling back the uncommitted transactions. I log delle transazioni aggiuntivi non possono essere ripristinati.Additional transaction logs cannot be restored. Selezionare questa opzione se si desidera ripristinare subito tutti i backup necessari.Select this option if you are restoring all of the necessary backups now.

    • RESTORE WITH NORECOVERY lascia il database non operativo e non esegue il rollback delle transazioni di cui non è stato eseguito il commit.RESTORE WITH NORECOVERY which leaves the database non-operational, and does not roll back the uncommitted transactions. I log delle transazioni aggiuntivi possono essere ripristinati.Additional transaction logs can be restored. Non è possibile utilizzare il database fino al completamento del recupero.The database cannot be used until it is recovered.

    • RESTORE WITH STANDBY lascia il database in modalità di sola lettura.RESTORE WITH STANDBY which leaves the database in read-only mode. Annulla le transazioni di cui non è stato eseguito il commit, ma salva le azioni di rollback in un file standby in modo che gli effetti del recupero possano essere annullati.It undoes uncommitted transactions, but saves the undo actions in a standby file so that recovery effects can be reverted.

      Per una descrizione delle opzioni, vedere Ripristina database (pagina Opzioni).For descriptions of the options, see Restore Database (Options Page).

  9. Le operazioni di ripristino non riescono in presenza di connessioni attive al database.Restore operations will fail if there are active connections to the database. Selezionare l'opzione Chiudi connessioni esistenti per garantire che tutte le connessioni attive tra Management StudioManagement Studio e il database vengano chiuse.Check the Close existing connections option to ensure that all active connections between Management StudioManagement Studio and the database are closed.

  10. Selezionare Chiedi conferma prima del ripristino di ogni backup se si desidera ricevere una richiesta di conferma prima di ciascuna operazione di ripristino.Select Prompt before restoring each backup if you wish to be prompted between each restore operation. L'operazione non è normalmente necessaria, a meno che le dimensioni del database siano elevate e si desideri monitorare lo stato dell'operazione di ripristino.This is not usually necessary unless the database is large and you wish to monitor the status of the restore operation.

  11. Facoltativamente, utilizzare la pagina File per ripristinare il database in un nuovo percorso.Optionally, use the Files page to restore the database to a new location. Per informazioni su come spostare un database, vedere Ripristino di un database in una nuova posizione (SQL Server).For help with moving a database, see Restore a Database to a New Location (SQL Server).

  12. Fare clic su OK.Click OK.

Utilizzo di Transact-SQL Using Transact-SQL

Per ripristinare un backup differenziale del databaseTo restore a differential database backup

  1. Eseguire l'istruzione RESTORE DATABASE, specificando la clausola NORECOVERY, per ripristinare il backup completo del database precedente al backup differenziale del database.Execute the RESTORE DATABASE statement, specifying the NORECOVERY clause, to restore the full database backup that comes before the differential database backup. Per ulteriori informazioni, vedere Procedura: Ripristino di un backup completo.For more information, see How to: Restore a Full Backup.

  2. Eseguire l'istruzione RESTORE DATABASE per ripristinare il backup differenziale del database, specificando:Execute the RESTORE DATABASE statement to restore the differential database backup, specifying:

    • Il nome del database a cui si riferisce il backup differenziale del database.The name of the database to which the differential database backup is applied.

    • Il dispositivo di backup da cui viene ripristinato il backup differenziale del database.The backup device where the differential database backup is restored from.

    • La clausola NORECOVERY, se sono presenti backup del log delle transazioni da applicare dopo il ripristino del backup differenziale del database.The NORECOVERY clause if you have transaction log backups to apply after the differential database backup is restored. In caso contrario, specificare la clausola RECOVERY.Otherwise, specify the RECOVERY clause.

  3. Con il modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk, tramite il ripristino di un backup differenziale del database viene ripristinato il database fino al punto in cui è stato completato il backup differenziale del database.With the full or bulk-logged recovery model, restoring a differential database backup restores the database to the point at which the differential database backup was completed. Per eseguire il recupero fino al momento dell'errore, applicare tutti i backup del log delle transazioni creati dopo la creazione dell'ultimo backup differenziale del database.To recover to the point of failure, you must apply all transaction log backups created after the last differential database backup was created. Per altre informazioni, vedere Applicazione dei backup di log delle transazioni (SQL Server).For more information, see Apply Transaction Log Backups (SQL Server).

Esempi (Transact-SQL) Examples (Transact-SQL)

A.A. Ripristino di un backup differenziale del databaseRestoring a differential database backup

Nell'esempio seguente vengono ripristinati un backup del database e un backup differenziale del database MyAdvWorks .This example restores a database and differential database backup of the MyAdvWorks database.

-- Assume the database is lost, and restore full database,   
-- specifying the original full database backup and NORECOVERY,   
-- which allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   RECOVERY;  
GO  

B.B. Ripristino di un backup del database, di un backup differenziale del database e di un backup del log delle transazioniRestoring a database, differential database, and transaction log backup

In questo esempio vengono ripristinati un backup, un backup differenziale e un backup del log delle transazioni del database MyAdvWorks .This example restores a database, differential database, and transaction log backup of the MyAdvWorks database.

-- Assume the database is lost at this point. Now restore the full   
-- database. Specify the original full database backup and NORECOVERY.  
-- NORECOVERY allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
-- Now restore each transaction log backup created after  
-- the differential database backup.  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log1  
   WITH NORECOVERY;  
GO  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log2  
   WITH RECOVERY;  
GO  

Vedere ancheSee Also

Backup differenziali (SQL Server) Differential Backups (SQL Server)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)