Ripristino di file e filegroup (SQL Server)Restore Files and Filegroups (SQL Server)

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

In questo argomento viene descritto come ripristinare file e filegroup in SQL Server 2017SQL Server 2017 utilizzando SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to restore files and filegroups 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 iniziareBefore You Begin

Limitazioni e restrizioniLimitations and Restrictions

  • L'amministratore di sistema che esegue il ripristino di file e di filegroup deve essere l'unico utente attualmente collegato al database da ripristinare.The system administrator restoring the files and filegroups must be the only person currently using the database to be restored.

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

  • Con il modello di recupero con registrazione minima, il file deve appartenere a un filegroup di sola lettura.Under the simple recovery model, the file must belong to a read-only filegroup.

  • In base al modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk, prima di poter ripristinare file è necessario eseguire 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 files, 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).

  • Per ripristinare un database crittografato, è necessario poter accedere alla chiave asimmetrica o al certificato utilizzato per crittografare il database.To restore a database that is encrypted, you must have access to the certificate or asymmetric key that was used to encrypt the database. Non è possibile effettuare l'operazione di ripristino del database senza almeno uno di questi due elementi.Without the certificate or asymmetric key, the database cannot be restored. Di conseguenza, il certificato utilizzato per crittografare la chiave di crittografia del database deve essere conservato fino a quando il backup è necessario.As a result, the certificate that is used to encrypt the database encryption key must be retained as long as the backup is needed. Per altre informazioni, vedere SQL Server Certificates and Asymmetric Keys.For more information, see SQL Server Certificates and Asymmetric Keys.

SicurezzaSecurity

AutorizzazioniPermissions

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. Poiché è possibile controllare l'appartenenza ai ruoli predefiniti del database solo quando il database è accessibile e non è danneggiato, condizioni che non risultano sempre vere quando si esegue un'operazione RESTORE, i membri del ruolo predefinito del database db_owner non dispongono delle 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 StudioUsing SQL Server Management Studio

Per ripristinare file e filegroupTo restore files and filegroups

  1. Dopo aver eseguito la connessione all'istanza appropriata del Motore di database di SQL ServerSQL Server Database Engine, in Esplora oggetti fare clic sul nome del server per espandere l'albero del server.After you connect to the appropriate instance of the 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àe quindi fare clic su Ripristina.Right-click the database, point to Tasks, and then click Restore.

  4. Fare clic su File e filegroup. Verrà visualizzata la finestra di dialogo Ripristina file e filegroup .Click Files and Filegroups, which opens the Restore Files and Filegroups dialog box.

  5. Nella pagina Generale nella casella di riepilogo Database di destinazione , immettere il database da ripristinare.On the General page, in the To database list box, enter the database to restore. È possibile immettere un nuovo database oppure sceglierne uno esistente dall'elenco a discesa.You can enter a new database or choose an existing database from the drop-down list. Nell'elenco sono inclusi tutti i database presenti nel server, ad eccezione dei database di sistema master e tempdb.The list includes all databases on the server, excluding the system databases master and tempdb.

  6. Per specificare l'origine e il percorso dei set di backup da ripristinare, fare clic su una delle opzioni seguenti:To specify the source and location of the backup sets to restore, click one of the following options:

    • Database di origineFrom database

      Immettere il nome di un database nella casella di riepilogo.Enter a database name in the list box. Nell'elenco sono inclusi solo i database di cui è stato eseguito il backup in base alla cronologia di backup di msdb .This list contains only databases that have been backed up according to the msdb backup history.

    • Dispositivo di origineFrom device

      Fare clic sul pulsante SfogliaClick the browse button. Nella finestra di dialogo Seleziona dispositivi di backup selezionare uno dei tipi di dispositivo elencati nella casella di riepilogo Tipo di supporti di backup .In the Specify backup devices dialog box, select one of the listed device types in the Backup media type list box. Per selezionare uno o più dispositivi per la casella di riepilogo Supporti di backup , fare clic su Aggiungi.To select one or more devices for the Backup media list 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.

  7. Nella griglia Selezionare i set di backup da ripristinare selezionare i set di backup che si desidera ripristinare.In the Select the backup sets to restore grid, select the backups to restore. In questa griglia vengono visualizzati i backup disponibili per il percorso specificato.This grid displays the backups available for the specified location. Per impostazione predefinita, viene suggerito un piano di recupero.By default, a recovery plan is suggested. Per ignorare il piano di recupero suggerito, è possibile modificare le impostazioni selezionate nella griglia.To override the suggested recovery plan, you can change the selections in the grid. I backup che dipendono da un backup deselezionato vengono automaticamente deselezionati.Any backups that depend on a deselected backup are deselected automatically.

    Intestazione della colonnaColumn head ValoriValues
    RipristinaRestore Le caselle di controllo selezionate indicano i set di backup da ripristinare.The selected check boxes indicate the backup sets to be restored.
    NomeName Nome del set di backup.The name of the backup set.
    Tipo di fileFile Type Specifica il tipo di dati nel backup: Dati, Logo Dati FILESTREAM.Specifies the type of data in the backup: Data, Log, or Filestream Data. I dati contenuti nelle tabelle sono nei file Dati .Data that is contained in tables is in Data files. I dati del log delle transazioni sono nei file Log .Transaction log data is in Log files. I dati BLOB (Binary Large Object, oggetto binario di grandi dimensioni) archiviati nel file system si trovano nei file Dati FILESTREAM .Binary large object (BLOB) data that is stored on the file system is in Filestream Data files.
    TipoType Tipo di backup eseguito: Completo, Differenzialeo Log delle transazioni.The type of backup performed: Full, Differential, or Transaction Log.
    ServerServer Nome dell'istanza del Motore di database che ha eseguito l'operazione di backup.The name of the Database-Engine instance that performed the backup operation.
    Nome file logicoFile Logical Name Nome logico del file.The logical name of the file.
    DatabaseDatabase Nome del database interessato dall'operazione di backup.The name of the database involved in the backup operation.
    Data inizioStart Date Data e ora di inizio dell'operazione di backup, visualizzate in base alle impostazioni internazionali del client.The date and time when the backup operation began, presented in the regional setting of the client.
    Data fineFinish Date Data e ora di fine dell'operazione di backup, visualizzate in base alle impostazioni internazionali del client.The date and time when the backup operation finished, presented in the regional setting of the client.
    DimensioneSize Dimensioni in byte del set di backup.The size of the backup set in bytes.
    Nome utenteUser Name Nome dell'utente che ha eseguito l'operazione di backup.The name of the user who performed the backup operation.
  8. Per visualizzare o selezionare le opzioni avanzate, fare clic su Opzioni nel riquadro Selezione pagina.To view or select the advanced options, click Options in the Select a page pane.

  9. Nel pannello Opzioni di ripristino è possibile scegliere una qualsiasi delle opzioni seguenti, in base alla specifica situazione.In the Restore options panel, you can choose any of the following options, if appropriate for your situation.

    Ripristina come filegroupRestore as filegroup
    Indica che un intero filegroup è in fase di ripristino.Indicates that an entire filegroup is being restored.

    Sovrascrivi il database esistenteOverwrite the existing database
    Specifica che l'operazione di ripristino deve sovrascrivere eventuali database esistenti e i file correlati, anche se esiste già un database o un file con lo stesso nome.Specifies that the restore operation should overwrite any existing databases and their related files, even if another database or file already exists with the same name.

    La selezione di questa opzione equivale all'utilizzo dell'opzione REPLACE in un'istruzione RESTORE Transact-SQLTransact-SQL .Selecting this option is equivalent to using the REPLACE option in a Transact-SQLTransact-SQL RESTORE statement.

    Chiedi conferma prima del ripristino di ogni backupPrompt before restoring each backup
    Viene richiesta la conferma dell'utente prima del ripristino di ogni set di backup.Asks you for confirmation before restoring each backup set.

    Questa opzione risulta particolarmente utile quando è necessario scambiare i nastri di set di supporti diversi, ad esempio quando il server dispone di un solo dispositivo nastro.This option is particularly useful where you must swap tapes for different media sets, such as when the server has one tape device.

    Limita accesso al database ripristinatoRestrict access to the restored database
    Consente di rendere disponibile il database ripristinato solo per i membri di db_owner, dbcreatoro sysadmin.Makes the restored database available only to the members of db_owner, dbcreator, or sysadmin.

    La selezione di questa opzione equivale all'utilizzo dell'opzione RESTRICTED_USER in un'istruzione RESTORE Transact-SQLTransact-SQL .Selecting this option is synonymous to using the RESTRICTED_USER option in a Transact-SQLTransact-SQL RESTORE statement.

  10. È possibile ripristinare il database in un nuovo percorso specificando una nuova destinazione di ripristino per ogni file nella griglia Ripristina file di database come .Optionally, you can restore the database to a new location by specifying a new restore destination for each file in the Restore database files as grid.

    Intestazione della colonnaColumn head ValoriValues
    Nome file originaleOriginal File Name Percorso completo di un file di backup di origine.The full path of a source backup file.
    Tipo di fileFile Type Specifica il tipo di dati nel backup: Dati, Logo Dati FILESTREAM.Specifies the type of data in the backup: Data, Log, or Filestream Data. I dati contenuti nelle tabelle sono nei file Dati .Data that is contained in tables is in Data files. I dati del log delle transazioni sono nei file Log .Transaction log data is in Log files. I dati BLOB (Binary Large Object, oggetto binario di grandi dimensioni) archiviati nel file system si trovano nei file Dati FILESTREAM .Binary large object (BLOB) data that is stored on the file system is in Filestream Data files.
    Ripristina comeRestore As Percorso completo del file di database da ripristinare.The full path of the database file to be restored. Per specificare un nuovo file di ripristino, fare clic nella casella di testo e modificare il percorso e il nome del file suggeriti.To specify a new restore file, click the text box and edit the suggested path and file name. La modifica del percorso o del nome file nella colonna Ripristina come equivale all'utilizzo dell'opzione MOVE in un'istruzione RESTORE Transact-SQLTransact-SQL .Changing the path or file name in the Restore As column is equivalent to using the MOVE option in a Transact-SQLTransact-SQL RESTORE statement.
  11. Il pannello Stato di recupero determina lo stato del database dopo l'operazione di ripristino.The Recovery state panel determines the state of the database after the restore operation.

    Lascia il database pronto per l'utilizzo eseguendo il rollback delle transazioni di cui non è stato eseguito il commit. I log delle transazioni aggiuntivi non possono essere ripristinati. (RESTORE WITH RECOVERY)Leave the database ready for use by rolling back the uncommitted transactions. Additional transaction logs cannot be restored. (RESTORE WITH RECOVERY)
    Esegue il recupero del database.Recovers the database. Questo è il comportamento predefinito.This is the default behavior. Selezionare questa opzione solo se si stanno ripristinando tutti i backup necessari.Choose this option only if you are restoring all of the necessary backups now. Questa opzione equivale all'opzione WITH RECOVERY in un'istruzione RESTORE Transact-SQLTransact-SQL .This option is equivalent to specifying WITH RECOVERY in a Transact-SQLTransact-SQL RESTORE statement.

    Lascia il database non operativo e non eseguire il rollback delle transazioni di cui non è stato eseguito il commit. I log delle transazioni aggiuntivi possono essere ripristinati. (RESTORE WITH NORECOVERY)Leave the database non-operational, and don't roll back the uncommitted transactions. Additional transaction logs can be restored. (RESTORE WITH NORECOVERY)
    Il database viene lasciato nello stato di ripristino.Leaves the database in the restoring state. Per recuperare il database sarà necessario eseguire un altro ripristino utilizzando l'opzione RESTORE WITH RECOVERY descritta in precedenza.To recover the database, you will need to perform another restore using the preceding RESTORE WITH RECOVERY option (see above). Questa opzione equivale all'opzione WITH NORECOVERY in un'istruzione RESTORE Transact-SQLTransact-SQL .This option is equivalent to specifying WITH NORECOVERY in a Transact-SQLTransact-SQL RESTORE statement.

    Selezionando questa opzione, l'opzione Mantieni le impostazioni di replica non sarà disponibile.If you select this option, the Preserve replication settings option is unavailable.

    Lascia il database in modalità sola lettura. Esegui il rollback delle transazioni di cui non è stato eseguito il commit e salva l'operazione di rollback in un file in modo che gli effetti del recupero possano essere annullati. (RESTORE WITH STANDBY)Leave the database in read-only mode. Roll back the uncommitted transactions, but save the rollback operation in a file so the recovery effects can be undone. (RESTORE WITH STANDBY)
    Il database viene lasciato nello stato di standby.Leaves the database in a standby state. Questa opzione equivale all'opzione WITH STANDBY in un'istruzione RESTORE Transact-SQLTransact-SQL .This option is equivalent to specifying WITH STANDBY in a Transact-SQLTransact-SQL RESTORE statement.

    Se si seleziona questa opzione è necessario specificare un file standby.Choosing this option requires that you specify a standby file.

    File di rollbackRollback undo file
    Specificare un nome per il file standby nella casella di testo File di rollback .Specify a standby file name in the Rollback undo file text box. Questa opzione è necessaria se il database viene lasciato in modalità sola lettura (RESTORE WITH STANDBY).This option is required if you leave the database in read-only mode (RESTORE WITH STANDBY).

Utilizzo di Transact-SQLUsing Transact-SQL

Per ripristinare file e filegroupTo restore files and filegroups

  1. Eseguire l'istruzione RESTORE DATABASE per ripristinare il backup di file e filegroup, specificando:Execute the RESTORE DATABASE statement to restore the file and filegroup backup, specifying:

    • Nome del database da ripristinare.The name of the database to restore.

    • Dispositivo di backup da cui verrà ripristinato il backup completo del database.The backup device from where the full database backup will be restored.

    • Clausola FILE per ogni file da ripristinare.The FILE clause for each file to restore.

    • Clausola FILEGROUP per ogni filegroup da ripristinare.The FILEGROUP clause for each filegroup to restore.

    • Clausola NORECOVERY.The NORECOVERY clause. Se i file non sono stati modificati dopo la creazione del backup, specificare la clausola RECOVERY.If the files have not been modified after the backup was created, specify the RECOVERY clause.

  2. Se i file sono stati modificati dopo la creazione del backup, eseguire l'istruzione RESTORE LOG per applicare il backup del log delle transazioni, specificando:If the files have been modified after the file backup was created, execute the RESTORE LOG statement to apply the transaction log backup, specifying:

    • Nome del database a cui verrà applicato il log delle transazioni.The name of the database to which the transaction log will be applied.

    • Dispositivo di backup da cui verrà ripristinato il backup del log delle transazioni.The backup device from where the transaction log backup will be restored.

    • Clausola NORECOVERY se è disponibile un altro backup del log delle transazioni successivo a quello corrente. In caso contrario, specificare la clausola RECOVERY.The NORECOVERY clause if you have another transaction log backup to apply after the current one; otherwise, specify the RECOVERY clause.

      Nei backup del log delle transazioni, se applicati, deve essere incluso il periodo di tempo intercorso dall'ultimo backup di file e filegroup fino alla fine del log, a meno che non vengano ripristinati TUTTI i file di database.The transaction log backups, if applied, must cover the time when the files and filegroups were backed up until the end of log (unless ALL database files are restored).

Esempio (Transact-SQL)Example (Transact-SQL)

In questo esempio vengono ripristinati i file e i filegroup per il database MyDatabase .This example restores the files and filegroups for the MyDatabase database. Per ripristinare il database all'ora corrente, verranno applicati due log delle transazioni.To restore the database to the current time, two transaction logs are applied.

USE master;  
GO  
-- Restore the files and filesgroups for MyDatabase.  
RESTORE DATABASE MyDatabase  
   FILE = 'MyDatabase_data_1',  
   FILEGROUP = 'new_customers',  
   FILE = 'MyDatabase_data_2',  
   FILEGROUP = 'first_qtr_sales'  
   FROM MyDatabase_1  
   WITH NORECOVERY;  
GO  
-- Apply the first transaction log backup.  
RESTORE LOG MyDatabase  
   FROM MyDatabase_log1  
   WITH NORECOVERY;  
GO  
-- Apply the last transaction log backup.  
RESTORE LOG MyDatabase  
   FROM MyDatabase_log2  
   WITH RECOVERY;  
GO  

Vedere ancheSee Also

Ripristinare un backup del database con SSMS Restore a Database Backup Using SSMS
Eseguire il backup di file e filegroup (SQL Server) Back Up Files and Filegroups (SQL Server)
Creare un backup completo del database (SQL Server) Create a Full Database Backup (SQL Server)
Eseguire il backup di un log delle transazioni (SQL Server) Back Up a Transaction Log (SQL Server)
Ripristinare un backup del log delle transazioni (SQL Server) Restore a Transaction Log Backup (SQL Server)
RESTORE (Transact-SQL)RESTORE (Transact-SQL)