Istruzioni RESTORE (Transact-SQL)RESTORE Statements (Transact-SQL)

Consente di ripristinare i backup del database SQL eseguiti tramite il comando BACKUP.Restores SQL database backups taken using the BACKUP command.

Fare clic su una delle schede seguenti per la sintassi, gli argomenti, i commenti, le autorizzazioni e gli esempi per la specifica versione di SQL in uso.Click one of the following tabs for the syntax, arguments, remarks, permissions, and examples for a particular SQL version with which you are working.

Per altre informazioni sulle convenzioni di sintassi, vedere Convenzioni della sintassi Transact-SQL.For more information about the syntax conventions, see Transact-SQL Syntax Conventions.

Fare clic su un prodotto.Click a product!

Nella riga seguente fare clic su qualsiasi nome di prodotto.In the following row, click whichever product name you are interested in. Viene visualizzato contenuto diverso, appropriato per il prodotto su cui si fa clic:The click displays different content here, appropriate for whichever product you click:

** * SQL Server * **  * SQL Server *   Istanza gestita
database SQL
SQL Database
managed instance
Piattaforma di strumenti
analitici (PDW)
Analytics Platform
System (PDW)

 

SQL ServerSQL Server

Questo comando consente di effettuare gli scenari di ripristino seguenti:This command enables you to perform the following restore scenarios:

  • Ripristinare un intero database da un backup completo del database (ripristino completo).Restore an entire database from a full database backup (a complete restore).
  • Ripristinare parte di un database (ripristino parziale).Restore part of a database (a partial restore).
  • Ripristinare file o filegroup in un database (ripristino di file).Restore specific files or filegroups to a database (a file restore).
  • Ripristinare pagine specifiche in un database (ripristino di pagina).Restore specific pages to a database (a page restore).
  • Ripristinare un log delle transazioni in un database (ripristino del log delle transazioni).Restore a transaction log onto a database (a transaction log restore).
  • Eseguire un ripristino temporizzato di un database fino al punto nel tempo acquisito in uno snapshot del database.Revert a database to the point in time captured by a database snapshot.

Per altre informazioni sugli scenari di ripristino di SQL ServerSQL Server, vedere Panoramica del ripristino e del recupero.For more information about SQL ServerSQL Server restore scenarios, see Restore and Recovery Overview. Per altre informazioni sulle descrizioni degli argomenti, vedere Argomenti dell'istruzione RESTORE.For more information about descriptions of the arguments, see RESTORE Arguments. Quando si ripristina un database da un'altra istanza, vedere le informazioni in Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server (SQL Server).When restoring a database from another instance, consider the information from Manage Metadata When Making a Database Available on Another Server Instance (SQL Server).

Nota

Per altre informazioni sul ripristino dal servizio di archiviazione BLOB di Microsoft Azure, vedere Backup e ripristino di SQL Server con il servizio di archiviazione BLOB di Microsoft Azure.For more information about restoring from the Microsoft Azure Blob storage service, see SQL Server Backup and Restore with Microsoft Azure Blob Storage Service.

SintassiSyntax

--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
 [ FROM <backup_device> [ ,...n ] ]
 [ WITH
   {
    [ RECOVERY | NORECOVERY | STANDBY =
        {standby_file_name | @standby_file_name_var }
       ]
   | ,  <general_WITH_options> [ ,...n ]
   | , <replication_WITH_option>
   | , <change_data_capture_WITH_option>
   | , <FILESTREAM_WITH_option>
   | , <service_broker_WITH options>
   | , \<point_in_time_WITH_options-RESTORE_DATABASE>
   } [ ,...n ]
 ]
[;]

--To perform the first step of the initial restore sequence of a piecemeal restore:
RESTORE DATABASE { database_name | @database_name_var }
   <files_or_filegroups> [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
      PARTIAL, NORECOVERY
      [  , <general_WITH_options> [ ,...n ]
       | , \<point_in_time_WITH_options-RESTORE_DATABASE>
      ] [ ,...n ]
[;]  

--To Restore Specific Files or Filegroups:
RESTORE DATABASE { database_name | @database_name_var }
   <file_or_filegroup> [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
   {
      [ RECOVERY | NORECOVERY ]
      [ , <general_WITH_options> [ ,...n ] ]
   } [ ,...n ]
[;]  

--To Restore Specific Pages:
RESTORE DATABASE { database_name | @database_name_var }
   PAGE = 'file:page [ ,...n ]'
 [ , <file_or_filegroups> ] [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
       NORECOVERY
      [ , <general_WITH_options> [ ,...n ] ]
[;]

--To Restore a Transaction Log:
RESTORE LOG { database_name | @database_name_var }
 [ <file_or_filegroup_or_pages> [ ,...n ] ]
 [ FROM <backup_device> [ ,...n ] ]
 [ WITH
   {
     [ RECOVERY | NORECOVERY | STANDBY =
        {standby_file_name | @standby_file_name_var }
       ]
    | , <general_WITH_options> [ ,...n ]
    | , <replication_WITH_option>
    | , \<point_in_time_WITH_options-RESTORE_LOG>
   } [ ,...n ]
 ]
[;]

--To Revert a Database to a Database Snapshot:
RESTORE DATABASE { database_name | @database_name_var }
FROM DATABASE_SNAPSHOT = database_snapshot_name

<backup_device>::=
{
   { logical_backup_device_name |
      @logical_backup_device_name_var }
 | { DISK
     | TAPE
     | URL
   } = { 'physical_backup_device_name' |
      @physical_backup_device_name_var }
}
Note: URL is the format used to specify the location and the file name for the Microsoft Azure Blob. Although Microsoft Azure storage is a service, the implementation is similar to disk and tape to allow for a consistent and seamless restore experience for all the three devices.
<files_or_filegroups>::=
{
   FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }
 | FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
 | READ_WRITE_FILEGROUPS
}

<general_WITH_options> [ ,...n ]::=
--Restore Operation Options
   MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'
          [ ,...n ]
 | REPLACE
 | RESTART
 | RESTRICTED_USER | CREDENTIAL

--Backup Set Options
 | FILE = { backup_set_file_number | @backup_set_file_number }
 | PASSWORD = { password | @password_variable }

--Media Set Options
 | MEDIANAME = { media_name | @media_name_variable }
 | MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
 | BLOCKSIZE = { blocksize | @blocksize_variable }

--Data Transfer Options
 | BUFFERCOUNT = { buffercount | @buffercount_variable }
 | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

--Error Management Options
 | { CHECKSUM | NO_CHECKSUM }
 | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

--Monitoring Options
 | STATS [ = percentage ]

--Tape Options.
 | { REWIND | NOREWIND }
 | { UNLOAD | NOUNLOAD }

<replication_WITH_option>::=
 | KEEP_REPLICATION

<change_data_capture_WITH_option>::=
 | KEEP_CDC

<FILESTREAM_WITH_option>::=
 | FILESTREAM ( DIRECTORY_NAME = directory_name )

<service_broker_WITH_options>::=
 | ENABLE_BROKER
 | ERROR_BROKER_CONVERSATIONS
 | NEW_BROKER

\<point_in_time_WITH_options-RESTORE_DATABASE>::=
 | {
   STOPAT = { 'datetime'| @datetime_var }
 | STOPATMARK = 'lsn:lsn_number'
                 [ AFTER 'datetime']
 | STOPBEFOREMARK = 'lsn:lsn_number'
                 [ AFTER 'datetime']
   }

\<point_in_time_WITH_options-RESTORE_LOG>::=
 | {
   STOPAT = { 'datetime'| @datetime_var }
 | STOPATMARK = { 'mark_name' | 'lsn:lsn_number' }
                 [ AFTER 'datetime']
 | STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' }
                 [ AFTER 'datetime']
   }

ArgomentiArguments

Per le descrizioni degli argomenti, vedere Argomenti dell'istruzione RESTORE.For descriptions of the arguments, see RESTORE Arguments.

Informazioni sugli scenari di ripristinoAbout Restore Scenarios

SQL ServerSQL Server supporta un'ampia gamma di scenari di ripristino:supports a variety of restore scenarios:

Se il ripristino online è supportato e il database è online, i ripristini di file e pagine vengono eseguiti automaticamente online, così come i ripristini di filegroup secondari dopo la fase iniziale di un ripristino a fasi.Where online restore is supported, if the database is online, file restores and page restores are automatically online restores and, also, restores of secondary filegroup after the initial stage of a piecemeal restore.

Nota

Nei ripristini online possono essere incluse transazioni posticipate.Online restores can involve deferred transactions.

Per altre informazioni, vedere Ripristino in linea.For more information, see Online Restore.

Considerazioni aggiuntive sulle opzioni RESTOREAdditional Considerations About RESTORE Options

Parole chiave RESTORE obsoleteDiscontinued RESTORE Keywords

In SQL Server 2008SQL Server 2008 non sono più disponibili le parole chiave seguenti:The following keywords were discontinued in SQL Server 2008SQL Server 2008:

Parola chiave obsoletaDiscontinued keyword Parola chiave di sostituzioneReplaced by... Esempio di parola chiave di sostituzioneExample of replacement keyword
LOADLOAD RESTORERESTORE RESTORE DATABASE
TRANSACTIONTRANSACTION LOGLOG RESTORE LOG
DBO_ONLYDBO_ONLY RESTRICTED_USERRESTRICTED_USER RESTORE DATABASE ... WITH RESTRICTED_USER

RESTORE LOGRESTORE LOG

È possibile includere un elenco di file in RESTORE LOG per consentire la creazione di file durante il roll forward.RESTORE LOG can include a file list to allow for creation of files during roll forward. Questa procedura viene utilizzata quando il backup del log contiene record di log scritti al momento dell'aggiunta di un file al database.This is used when the log backup contains log records written when a file was added to the database.

Nota

Per un database impostato per l'utilizzo del modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk, nella maggior parte dei casi è necessario eseguire il backup della parte finale del log prima di ripristinare il database.For a database using the full or bulk-logged recovery model, in most cases you must back up the tail of the log before restoring the database. Se si esegue il ripristino di un database senza aver prima eseguito il backup della parte finale del log si verificherà un errore, a meno che nell'istruzione RESTORE DATABASE non sia inclusa la clausola WITH REPLACE o WITH STOPAT, che deve consentire di specificare l'ora o la transazione verificatasi al termine del backup dei dati.Restoring a database without first backing up the tail of the log results in an error, unless the RESTORE DATABASE statement contains either the WITH REPLACE or the WITH STOPAT clause, which must specify a time or transaction that occurred after the end of the data backup. Per altre informazioni sui backup della parte finale del log, vedere Backup della parte finale del log.For more information about tail-log backups, see Tail-Log Backups.

Differenze tra RECOVERY e NORECOVERYComparison of RECOVERY and NORECOVERY

Il rollback viene controllato dall'istruzione RESTORE tramite le opzioni [ RECOVERY | NORECOVERY ]:Roll back is controlled by the RESTORE statement through the [ RECOVERY | NORECOVERY ] options:

  • NORECOVERY specifica che il rollback non deve essere eseguito.NORECOVERY specifies that roll back not occur. Questo consente la continuazione del roll forward con l'istruzione successiva nella sequenza.This allows roll forward to continue with the next statement in the sequence.

    In questo caso, tramite la sequenza di ripristino è possibile ripristinare altri backup ed eseguirne il roll forward.In this case, the restore sequence can restore other backups and roll them forward.

  • RECOVERY (opzione predefinita) indica che il rollback deve essere eseguito dopo il completamento del roll forward per il backup corrente.RECOVERY (the default) indicates that roll back should be performed after roll forward is completed for the current backup.

    Per il recupero del database è necessario che l'intero set di dati da ripristinare (set di roll forward) sia coerente con il database.Recovering the database requires that the entire set of data being restored (the roll forward set) is consistent with the database. Se il roll forward del set di roll forward non è stato eseguito a un livello sufficiente per garantirne la coerenza con il database e si specifica l'opzione RECOVERY, si verifica un errore nel Motore di databaseDatabase Engine.If the roll forward set has not been rolled forward far enough to be consistent with the database and RECOVERY is specified, the Motore di databaseDatabase Engine issues an error.

Informazioni sulla compatibilitàCompatibility Support

I backup dei database master, model e msdb creati tramite una versione precedente di SQL ServerSQL Server non possono essere ripristinati da SQL Server 2017SQL Server 2017.Backups of master, model and msdb that were created by using an earlier version of SQL ServerSQL Server cannot be restored by SQL Server 2017SQL Server 2017.

Nota

Nessun backup di SQL ServerSQL Server può essere ripristinato in una versione di SQL ServerSQL Server precedente a quella tramite cui è stato creato il backup.No SQL ServerSQL Server backup be restored to an earlier version of SQL ServerSQL Server than the version on which the backup was created.

Ogni versione di SQL ServerSQL Server utilizza un percorso predefinito diverso rispetto alle versioni precedenti.Each version of SQL ServerSQL Server uses a different default path than earlier versions. Per ripristinare un database creato nel percorso predefinito per i backup di versioni precedenti, è necessario utilizzare l'opzione MOVE.Therefore, to restore a database that was created in the default location for earlier version backups, you must use the MOVE option. Per informazioni sul nuovo percorso predefinito, vedere Percorsi dei file per le istanze predefinite e denominate di SQL Server.For information about the new default path, see File Locations for Default and Named Instances of SQL Server.

Dopo aver ripristinato un database di una versione precedente a SQL Server 2017SQL Server 2017, il database viene aggiornato automaticamente.After you restore an earlier version database to SQL Server 2017SQL Server 2017, the database is automatically upgraded. In genere, il database diventa subito disponibile.Typically, the database becomes available immediately. Se tuttavia un database di SQL Server 2005 (9.x)SQL Server 2005 (9.x) include indici full-text, questi vengono importati, reimpostati o ricompilati dal processo di aggiornamento, a seconda dell'impostazione della proprietà del server upgrade_option.However, if a SQL Server 2005 (9.x)SQL Server 2005 (9.x) database has full-text indexes, the upgrade process either imports, resets, or rebuilds them, depending on the setting of the upgrade_option server property. Se l'opzione di aggiornamento è impostata per l'importazione (upgrade_option = 2) o la ricompilazione (upgrade_option = 0), gli indici full-text non saranno disponibili durante l'aggiornamento.If the upgrade option is set to import (upgrade_option = 2) or rebuild (upgrade_option = 0), the full-text indexes will be unavailable during the upgrade. A seconda della quantità di dati indicizzati, l'importazione può richiedere diverse ore, mentre la ricompilazione può risultare dieci volte più lunga.Depending the amount of data being indexed, importing can take several hours, and rebuilding can take up to ten times longer. Si noti inoltre che quando l'opzione di aggiornamento è impostata sull'importazione, gli indici full-text associati vengono ricompilati se non è disponibile un catalogo full-text.Note also that when the upgrade option is set to import, the associated full-text indexes are rebuilt if a full-text catalog is not available. Per modificare l'impostazione della proprietà del server upgrade_option , usare sp_fulltext_service.To change the setting of the upgrade_option server property, use sp_fulltext_service.

Quando un database viene collegato per la prima volta a una nuova istanza di SQL ServerSQL Servero ripristinato, nel server non è ancora archiviata una copia della chiave master del database, crittografata dalla chiave master del servizio.When a database is first attached or restored to a new instance of SQL ServerSQL Server, a copy of the database master key (encrypted by the service master key) is not yet stored in the server. È necessario usare l'istruzione OPEN MASTER KEY per decrittografare la chiave master del database.You must use the OPEN MASTER KEY statement to decrypt the database master key (DMK). Dopo aver decrittografato la DMK, è possibile usare l'istruzione ALTER MASTER KEY REGENERATE per abilitare la decrittografia automatica per le operazioni successive, in modo da fornire al server una copia della DMK crittografata con la chiave master del servizio (SMK).Once the DMK has been decrypted, you have the option of enabling automatic decryption in the future by using the ALTER MASTER KEY REGENERATE statement to provision the server with a copy of the DMK, encrypted with the service master key (SMK). Quando un database è stato aggiornato da una versione precedente, la DMK deve essere rigenerata per usare l'algoritmo AES più recente.When a database has been upgraded from an earlier version, the DMK should be regenerated to use the newer AES algorithm. Per altre informazioni sulla rigenerazione della DMK, vedere ALTER MASTER KEY.For more information about regenerating the DMK, see ALTER MASTER KEY. Il tempo richiesto per rigenerare la chiave DMK e aggiornarla ad AES dipende dal numero di oggetti protetti dalla DMK.The time required to regenerate the DMK key to upgrade to AES depends upon the number of objects protected by the DMK. È necessario rigenerare la chiave DMK per l'aggiornamento ad AES una sola volta e l'operazione non influenza le rigenerazioni future che fanno parte di una strategia di rotazione della chiave.Regenerating the DMK key to upgrade to AES is only necessary once, and has no impact on future regenerations as part of a key rotation strategy.

Osservazioni generaliGeneral Remarks

Durante un ripristino offline, se il database specificato è in uso, l'istruzione RESTORE comporta la disconnessione degli utenti dopo un breve intervallo.During an offline restore, if the specified database is in use, RESTORE forces the users off after a short delay. Per il ripristino online di un filegroup non primario, il database può rimanere in uso a meno che il filegroup da ripristinare non venga portato offline.For online restore of a non-primary filegroup, the database can stay in use except when the filegroup being restored is being taken offline. Tutti i dati del database specificato vengono sostituiti dai dati ripristinati.Any data in the specified database is replaced by the restored data.

Per altre informazioni sul ripristino del database, vedere Panoramica del ripristino e del recupero.For more information about database recovery, see Restore and Recovery Overview.

È possibile eseguire operazioni di ripristino tra piattaforme diverse, e anche tra tipi di processore diversi, a condizione che il sistema operativo supporti le regole di confronto del database.Cross-platform restore operations, even between different processor types, can be performed as long as the collation of the database is supported by the operating system.

È possibile riavviare un'operazione RESTORE dopo un errore.RESTORE can be restarted after an error. È inoltre possibile impostare l'istruzione RESTORE per continuare le operazioni anche in caso di errori e in questo caso viene eseguito il ripristino di tutti i dati possibili (vedere l'opzione CONTINUE_AFTER_ERROR).In addition, you can instruct RESTORE to continue despite errors, and it restores as much data as possible (see the CONTINUE_AFTER_ERROR option).

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

Il ripristino di un database master danneggiato viene effettuato tramite una procedura speciale.Restoring a damaged master database is performed using a special procedure. Per altre informazioni, vedere Backup e ripristino di database di sistema.For more information, see Back Up and Restore of System Databases.

Il ripristino di un database comporta la cancellazione della cache dei piani per l'istanza di SQL ServerSQL Server.Restoring a database clears the plan cache for the instance of SQL ServerSQL Server. La cancellazione della cache dei piani comporta la ricompilazione di tutti i piani di esecuzione successivi e può causare un peggioramento improvviso e temporaneo delle prestazioni di esecuzione delle query.Clearing the plan cache causes a recompilation of all subsequent execution plans and can cause a sudden, temporary decrease in query performance. Il log degli errori di SQL ServerSQL Server contiene il messaggio informativo seguente per ogni archivio cache cancellato nella cache dei piani: "SQL ServerSQL Server ha rilevato %d occorrenza/e di scaricamento dell'archivio cache '%s' (parte della cache dei piani) a causa di operazioni di manutenzione o riconfigurazione del database".For each cleared cachestore in the plan cache, the SQL ServerSQL Server error log contains the following informational message: " SQL ServerSQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations". Questo messaggio viene registrato ogni cinque minuti per tutta la durata dello scaricamento della cache.This message is logged every five minutes as long as the cache is flushed within that time interval.

Per ripristinare un database di disponibilità, ripristinare innanzitutto il database in base all'istanza di SQL ServerSQL Server, quindi aggiungerlo al gruppo di disponibilità.To restore an availability database, first restore the database to the instance of SQL ServerSQL Server, and then add the database to the availability group.

InteroperabilitàInteroperability

Impostazioni e ripristino del databaseDatabase Settings and Restoring

Durante il ripristino, la maggior parte delle opzioni del database che possono essere impostate con ALTER DATABASE viene reimpostata sui valori attivi alla fine del backup.During a restore, most of the database options that are settable using ALTER DATABASE are reset to the values in force at the time of the end of backup.

Se si utilizza l'opzione WITH RESTRICTED_USER, tuttavia, questo comportamento viene ignorato per l'impostazione dell'opzione di accesso dell'utente.Using the WITH RESTRICTED_USER option, however, overrides this behavior for the user access option setting. Questa opzione viene sempre impostata dopo l'esecuzione di un'istruzione RESTORE in cui è inclusa l'opzione WITH RESTRICTED_USER.This setting is always set following a RESTORE statement, which includes the WITH RESTRICTED_USER option.

Ripristino di un database crittografatoRestoring an Encrypted Database

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.

Ripristino di un database abilitato per l'archiviazione vardecimalRestoring a Database Enabled for vardecimal Storage

Il backup e il ripristino funzionano correttamente con il formato di archiviazione vardecimal.Backup and restore work correctly with the vardecimal storage format. Per altre informazioni sul formato di archiviazione vardecimal, vedere sp_db_vardecimal_storage_forma.For more information about vardecimal storage format, see sp_db_vardecimal_storage_format.

Ripristino di dati full-textRestore Full-Text Data

I dati full-text vengono ripristinati insieme agli altri dati del database durante un ripristino completo.Full-text data is restored together with other database data during a complete restore. Con la normale sintassi RESTORE DATABASE database_name FROM backup_device, i file full-text vengono ripristinati nell'ambito del ripristino dei file del database.Using the regular RESTORE DATABASE database_name FROM backup_device syntax, the full-text files are restored as part of the database file restore.

L'istruzione RESTORE consente inoltre di eseguire ripristini in posizioni alternative, ripristini differenziali, ripristini di file e filegroup, nonché ripristini differenziali di file e filegroup di dati full-text.The RESTORE statement also can be used to perform restores to alternate locations, differential restores, file and filegroup restores, and differential file and filegroup restores of full-text data. È inoltre possibile utilizzare l'istruzione RESTORE per ripristinare solo i file full-text, come nel caso dei dati di database.In addition, RESTORE can restore full-text files only, as well as with database data.

Nota

I cataloghi full-text importati da SQL Server 2005 (9.x)SQL Server 2005 (9.x) vengono ancora gestiti come file di database.Full-text catalogs imported from SQL Server 2005 (9.x)SQL Server 2005 (9.x) are still treated as database files. Per tali file, la procedura di SQL Server 2005 (9.x)SQL Server 2005 (9.x) per l'esecuzione del backup dei cataloghi full-text rimane applicabile, a meno che la sospensione e la ripresa durante l'operazione di backup non siano più necessarie.For these, the SQL Server 2005 (9.x)SQL Server 2005 (9.x) procedure for backing up full-text catalogs remains applicable, except that pausing and resuming during the backup operation are no longer necessary. Per altre informazioni, vedere Backup e ripristino di cataloghi full-text.For more information, see Backing Up and Restoring Full-Text Catalogs.

MetadatiMetadata

In SQL ServerSQL Server sono incluse tabelle cronologiche per backup e ripristini in cui viene tenuta traccia dell'attività di backup e ripristino per ogni istanza del server.SQL ServerSQL Server includes backup and restore history tables that track the backup and restore activity for each server instance. Quando si effettua un'operazione di ripristino, vengono modificate anche le tabelle di cronologia di backup.When a restore is performed, the backup history tables are also modified. Per informazioni su queste tabelle, vedere Informazioni sulla cronologia e sull'intestazione del backup.For information on these tables, see Backup History and Header Information.

Impatto dell'opzione REPLACEREPLACE Option Impact

L'opzione REPLACE deve essere utilizzata raramente e solo dopo un'attenta valutazione.REPLACE should be used rarely and only after careful consideration. In genere, il ripristino impedisce la sovrascrittura accidentale di un database con un altro.Restore normally prevents accidentally overwriting a database with a different database. Se il database specificato in un'istruzione RESTORE esiste già nel server corrente e il GUID del gruppo di database specificato è diverso da quello registrato nel set di backup, il database non verrà ripristinato.If the database specified in a RESTORE statement already exists on the current server and the specified database family GUID differs from the database family GUID recorded in the backup set, the database is not restored. Questa misura di sicurezza è importante.This is an important safeguard.

L'opzione REPLACE ignora diversi controlli di sicurezza importanti, eseguiti generalmente durante il ripristino.The REPLACE option overrides several important safety checks that restore normally performs. I controlli ignorati riguardano le operazioni seguenti:The overridden checks are as follows:

  • Ripristino di un database esistente con un backup di un altro databaseRestoring over an existing database with a backup taken of another database.

    Con l'opzione REPLACE, il ripristino consente di sovrascrivere un database esistente con qualsiasi database incluso nel set di backup, anche se il nome del database specificato è diverso da quello registrato nel set di backup.With the REPLACE option, restore allows you to overwrite an existing database with whatever database is in the backup set, even if the specified database name differs from the database name recorded in the backup set. Questa operazione può causare la sovrascrittura accidentale di un database con un altro.This can result in accidentally overwriting a database by a different database.

  • Ripristino di un database mediante il modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk in cui manca il backup della parte finale del log e non viene utilizzata l'opzione STOPATRestoring over a database using the full or bulk-logged recovery model where a tail-log backup has not been taken and the STOPAT option is not used.

    Con l'opzione REPLACE, è possibile perdere le transazioni di cui è stato eseguito il commit, in quanto non viene eseguito il backup del log in cui sono stati registrati i dati più recenti.With the REPLACE option, you can lose committed work, because the log written most recently has not been backed up.

  • Sovrascrittura di file esistentiOverwriting existing files.

    In seguito a un errore, ad esempio, potrebbe essere consentita la sovrascrittura di file esistenti di tipo non corretto, ad esempio con estensione xls, o utilizzati da un altro database che non è online.For example, a mistake could allow overwriting files of the wrong type, such as .xls files, or that are being used by another database that is not online. Se i file vengono sovrascritti, può verificarsi la perdita di dati arbitrari, anche se il database ripristinato è completo.Arbitrary data loss is possible if existing files are overwritten, although the restored database is complete.

Ripetizione di un ripristinoRedoing a Restore

Non è possibile annullare gli effetti di un ripristino. È tuttavia possibile annullare gli effetti della copia e del roll forward dei dati, rieseguendo l'operazione file per file.Undoing the effects of a restore is not possible; however, you can negate the effects of the data copy and roll forward by starting over on a per-file basis. Per ricominciare, ripristinare il file desiderato ed eseguire nuovamente il roll forward.To start over, restore the desired file and perform the roll forward again. Se, ad esempio, vengono ripristinati per errore troppi backup del log superando il punto previsto per l'interruzione del ripristino, è necessario riavviare la sequenza.For example, if you accidentally restored too many log backups and overshot your intended stopping point, you would have to restart the sequence.

È possibile interrompere e riavviare una sequenza di ripristino tramite il ripristino dell'intero contenuto dei file interessati.A restore sequence can be aborted and restarted by restoring the entire contents of the affected files.

Ripristino di un database a uno snapshot del databaseReverting a Database to a Database Snapshot

L'operazione di ripristino del database (specificata con l'opzione DATABASE_SNAPSHOT) consente di portare un database di origine completo in un momento anteriore nel tempo tramite il ripristino del momento di uno snapshot del database, ovvero sovrascrivendo il database di origine con i dati di quel momento presenti nello snapshot specificato del database.A revert database operation (specified using the DATABASE_SNAPSHOT option) takes a full source database back in time by reverting it to the time of a database snapshot, that is, overwriting the source database with data from the point in time maintained in the specified database snapshot. Al momento del ripristino, può esistere solo lo snapshot da ripristinare.Only the snapshot to which you are reverting can currently exist. L'operazione include la ricompilazione del log, pertanto non è possibile eseguire successivamente il roll forward di un database così ripristinato fino al punto di un errore utente specifico.The revert operation then rebuilds the log (therefore, you cannot later roll forward a reverted database to the point of user error).

La perdita di dati è limitata agli aggiornamenti del database eseguiti dopo la creazione dello snapshot.Data loss is confined to updates to the database since the snapshot's creation. I metadati di un database così ripristinato corrispondono a quelli esistenti al momento della creazione dello snapshot.The metadata of a reverted database is the same as the metadata at the time of snapshot creation. Il ripristino a uno snapshot causa tuttavia l'eliminazione di tutti i cataloghi full-text.However, reverting to a snapshot drops all the full-text catalogs.

Il ripristino da uno snapshot del database non è adatto per il recupero di supporti.Reverting from a database snapshot is not intended for media recovery. A differenza di un normale set di backup, lo snapshot del database è una copia incompleta dei file del database.Unlike a regular backup set, the database snapshot is an incomplete copy of the database files. Se il database o lo snapshot del database è danneggiato, è improbabile che sia possibile eseguire il ripristino da uno snapshot.If either the database or the database snapshot is corrupted, reverting from a snapshot is likely to be impossible. Anche quando possibile, è inoltre improbabile che il ripristino in caso di danneggiamento consenta di risolvere il problema.Furthermore, even when possible, reverting in the event of corruption is unlikely to correct the problem.

Restrizioni per il ripristino da snapshotRestrictions on Reverting

Il ripristino da snapshot non è supportato nei casi seguenti:Reverting is unsupported under the following conditions:

  • Il database di origine contiene filegroup di sola lettura o compressi.The source database contains any read-only or compressed filegroups.
  • Alcuni file online al momento della creazione dello snapshot sono offline.Any files are offline that were online when the snapshot was created.
  • Sono disponibili più snapshot del database.More than one snapshot of the database currently exists.

Per altre informazioni, vedere Ripristinare un database a uno snapshot del database.For more information, see Revert a Database to a Database Snapshot.

SecuritySecurity

Per un'operazione di backup è possibile specificare password per un set di supporti o un set di backup oppure per entrambi.A backup operation may optionally specify passwords for a media set, a backup set, or both. Se è stata impostata una password per un set di supporti o un set di backup, la password o le password corrette devono essere specificate nell'istruzione RESTORE.When a password has been defined on a media set or backup set, you must specify the correct password or passwords in the RESTORE statement. Queste password impediscono operazioni di ripristino non autorizzate e l'aggiunta non autorizzata di set di backup ai supporti tramite gli strumenti di SQL ServerSQL Server.These passwords prevent unauthorized restore operations and unauthorized appends of backup sets to media using SQL ServerSQL Server tools. I supporti protetti con password possono tuttavia essere sovrascritti con l'opzione FORMAT dell'istruzione BACKUP.However, password-protected media can be overwritten by the BACKUP statement's FORMAT option.

Importante

Il livello di protezione garantito da questa password è vulnerabile.The protection provided by this password is weak. Lo scopo è impedire un ripristino non corretto da parte di utenti autorizzati o non autorizzati mediante gli strumenti di SQL ServerSQL Server.It is intended to prevent an incorrect restore using SQL ServerSQL Server tools by authorized or unauthorized users. Non impedisce la lettura dei dati di backup eseguita con altri mezzi o la sostituzione della password.It does not prevent the reading of the backup data by other means or the replacement of the password. Questa funzionalità è in manutenzione e potrebbe essere rimossa in una delle prossime versioni di Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.Per ottenere un livello di protezione adeguato dei backup è consigliabile archiviare i nastri di backup in un luogo sicuro oppure eseguire il backup in file su disco protetti da elenchi di controllo di accesso (ACL) appropriati.The best practice for protecting backups is to store backup tapes in a secure location or back up to disk files that are protected by adequate access control lists (ACLs). Gli elenchi di controllo di accesso devono essere impostati a livello della directory radice in cui vengono creati i backup.The ACLs should be set on the directory root under which backups are created.

Nota

Per informazioni specifiche sul backup e sul ripristino di SQL Server con il servizio di archiviazione BLOB di Microsoft Azure, vedere Backup e ripristino di SQL Server con il servizio di archiviazione BLOB di Microsoft Azure.For information specific to SQL Server backup and restore with the Microsoft Azure Blob storage, see SQL Server Backup and Restore with Microsoft Azure Blob Storage Service.

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.

EsempiExamples

In tutti gli esempi si presuppone che sia stato eseguito un backup completo del database.All the examples assume that a full database backup has been performed.

Sono disponibili gli esempi seguenti per l'istruzione RESTORE:The RESTORE examples include the following:

Nota

Per altri esempi, vedere gli argomenti relativi alle procedure di ripristino elencati in Panoramica del ripristino e del recupero.For additional examples, see the restore how-to topics that are listed in Restore and Recovery Overview.

A.A. Ripristino di un database completoRestoring a full database

Nell'esempio seguente viene ripristinato un backup completo del database dal dispositivo di backup logico AdventureWorksBackups.The following example restores a full database backup from the AdventureWorksBackups logical backup device. Per un esempio della creazione di questo dispositivo, vedere Dispositivi di backup.For an example of creating this device, see Backup Devices.

RESTORE DATABASE AdventureWorks2012
  FROM AdventureWorks2012Backups;

Nota

Per un database impostato per l'utilizzo del modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk, in SQL ServerSQL Server nella maggior parte dei casi è necessario eseguire il backup della parte finale del log prima di ripristinare il database.For a database using the full or bulk-logged recovery model, SQL ServerSQL Server requires in most cases that you back up the tail of the log before restoring the database. Per altre informazioni, vedere Backup della parte finale del log.For more information, see Tail-Log Backups.

[Inizio degli esempi][Top of examples]

B.B. Ripristino di backup completi e differenziali del databaseRestoring full and differential database backups

Nell'esempio seguente viene ripristinato un backup completo del database seguito da un backup differenziale dal dispositivo di backup Z:\SQLServerBackups\AdventureWorks2012.bak, in cui sono entrambi contenuti.The following example restores a full database backup followed by a differential backup from the Z:\SQLServerBackups\AdventureWorks2012.bak backup device, which contains both backups. Il backup completo del database da ripristinare rappresenta il sesto set di backup nel dispositivo (FILE = 6), mentre il backup differenziale del database rappresenta il nono set di backup nel dispositivo (FILE = 9).The full database backup to be restored is the sixth backup set on the device (FILE = 6), and the differential database backup is the ninth backup set on the device (FILE = 9). Il database viene recuperato al termine del recupero del backup differenziale.As soon as the differential backup is recovered, the database is recovered.

RESTORE DATABASE AdventureWorks2012
    FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
    WITH FILE = 6
      NORECOVERY;
RESTORE DATABASE AdventureWorks2012
    FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
    WITH FILE = 9
      RECOVERY;

[Inizio degli esempi][Top of examples]

C.C. Ripristino di un database con la sintassi RESTARTRestoring a database using RESTART syntax

Nell'esempio seguente viene utilizzata l'opzione RESTART per riavviare un'operazione RESTORE interrotta a causa di un'interruzione dell'alimentazione del server.The following example uses the RESTART option to restart a RESTORE operation interrupted by a server power failure.

-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE AdventureWorks2012
    FROM AdventureWorksBackups;
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE AdventureWorks2012
    FROM AdventureWorksBackups WITH RESTART;

[Inizio degli esempi][Top of examples]

D.D. Ripristino di un database e spostamento dei fileRestoring a database and move files

Nell'esempio seguente vengono ripristinati un database completo e il log delle transazioni. Il database ripristinato viene quindi spostato nella directory C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data.The following example restores a full database and transaction log and moves the restored database into the C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data directory.

RESTORE DATABASE AdventureWorks2012
    FROM AdventureWorksBackups
    WITH NORECOVERY,
      MOVE 'AdventureWorks2012_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf',
      MOVE 'AdventureWorks2012_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';
RESTORE LOG AdventureWorks2012
    FROM AdventureWorksBackups
    WITH RECOVERY;

[Inizio degli esempi][Top of examples]

E.E. Copia di un database tramite BACKUP e RESTORECopying a database using BACKUP and RESTORE

Nell'esempio seguente vengono utilizzate le istruzioni BACKUP e RESTORE per creare una copia del database AdventureWorks2012AdventureWorks2012.The following example uses both the BACKUP and RESTORE statements to make a copy of the AdventureWorks2012AdventureWorks2012 database. L'istruzione MOVE consente di ripristinare i file di dati e di log nelle posizioni specificate.The MOVE statement causes the data and log file to be restored to the specified locations. L'istruzione RESTORE FILELISTONLY viene utilizzata per determinare il numero e i nomi dei file del database da ripristinare.The RESTORE FILELISTONLY statement is used to determine the number and names of the files in the database being restored. Alla nuova copia del database viene assegnato il nome TestDB.The new copy of the database is named TestDB. Per altre informazioni, vedere RESTORE FILELISTONLY.For more information, see RESTORE FILELISTONLY.

BACKUP DATABASE AdventureWorks2012
    TO AdventureWorksBackups ;

RESTORE FILELISTONLY
    FROM AdventureWorksBackups ;

RESTORE DATABASE TestDB
    FROM AdventureWorksBackups
    WITH MOVE 'AdventureWorks2012_Data' TO 'C:\MySQLServer\testdb.mdf',
    MOVE 'AdventureWorks2012_Log' TO 'C:\MySQLServer\testdb.ldf';
GO

[Inizio degli esempi][Top of examples]

F.F. Ripristino temporizzato tramite STOPATRestoring to a point-in-time using STOPAT

Nell'esempio seguente viene ripristinato lo stato del database corrispondente alle ore 12:00 AM del giorno April 15, 2020 e viene illustrata un'operazione di ripristino di più backup del log.The following example restores a database to its state as of 12:00 AM on April 15, 2020 and shows a restore operation that involves multiple log backups. Nel dispositivo di backup, AdventureWorksBackups, il backup completo del database da ripristinare è il terzo set di backup (FILE = 3), il primo backup del log è il quarto set di backup (FILE = 4) e il secondo backup del log è il quinto set di backup (FILE = 5).On the backup device, AdventureWorksBackups, the full database backup to be restored is the third backup set on the device (FILE = 3), the first log backup is the fourth backup set (FILE = 4), and the second log backup is the fifth backup set (FILE = 5).

RESTORE DATABASE AdventureWorks2012
    FROM AdventureWorksBackups
    WITH FILE=3, NORECOVERY;

RESTORE LOG AdventureWorks2012
    FROM AdventureWorksBackups
    WITH FILE=4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';

RESTORE LOG AdventureWorks2012
    FROM AdventureWorksBackups
    WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks2012 WITH RECOVERY;

[Inizio degli esempi][Top of examples]

G.G. Ripristino del log delle transazioni fino a un contrassegnoRestoring the transaction log to a mark

Nell'esempio seguente viene ripristinato il log delle transazioni fino al contrassegno nella transazione contrassegnata denominata ListPriceUpdate.The following example restores the transaction log to the mark in the marked transaction named ListPriceUpdate.

USE AdventureWorks2012
GO
BEGIN TRANSACTION ListPriceUpdate
    WITH MARK 'UPDATE Product list prices';
GO

UPDATE Production.Product
    SET ListPrice = ListPrice * 1.10
    WHERE ProductNumber LIKE 'BK-%';
GO

COMMIT TRANSACTION ListPriceUpdate;
GO

-- Time passes. Regular database
-- and log backups are taken.
-- An error occurs in the database.
USE master;
GO

RESTORE DATABASE AdventureWorks2012
FROM AdventureWorksBackups
WITH FILE = 3, NORECOVERY;
GO

RESTORE LOG AdventureWorks2012
  FROM AdventureWorksBackups
    WITH FILE = 4,
    RECOVERY,
    STOPATMARK = 'UPDATE Product list prices';

[Inizio degli esempi][Top of examples]

H.H. Ripristino con la sintassi TAPERestoring using TAPE syntax

Nell'esempio seguente viene ripristinato un backup completo del database da un dispositivo di backup di tipo TAPE.The following example restores a full database backup from a TAPE backup device.

RESTORE DATABASE AdventureWorks2012
    FROM TAPE = '\\.\tape0';

[Inizio degli esempi][Top of examples]

I.I. Ripristino con la sintassi FILE e FILEGROUPRestoring using FILE and FILEGROUP syntax

Nell'esempio seguente viene ripristinato un database denominato MyDatabase che include due file, un filegroup secondario e un log delle transazioni.The following example restores a database named MyDatabase that has two files, one secondary filegroup, and one transaction log. Per il database viene utilizzato il modello di recupero con registrazione completa.The database uses the full recovery model.

Il backup del database è il nono set di backup nel set di supporti in un dispositivo di backup logico denominato MyDatabaseBackups.The database backup is the ninth backup set in the media set on a logical backup device named MyDatabaseBackups. Vengono quindi ripristinati tre backup del log, disponibili nei tre set di backup successivi (10, 11 e 12) nel dispositivo MyDatabaseBackups, utilizzando WITH NORECOVERY.Next, three log backups, which are in the next three backup sets (10, 11, and 12) on the MyDatabaseBackups device, are restored by using WITH NORECOVERY. Dopo il ripristino dell'ultimo backup del log, il database viene recuperato.After restoring the last log backup, the database is recovered.

Nota

Il recupero viene eseguito come passaggio distinto per ridurre la possibilità che questa operazione venga eseguita troppo presto, ovvero prima del ripristino di tutti i backup del log.Recovery is performed as a separate step to reduce the possibility of you recovering too early, before all of the log backups have been restored.

Si noti che in RESTORE DATABASE sono disponibili due tipi di opzioni FILE.In the RESTORE DATABASE, notice that there are two types of FILE options. Le opzioni FILE che precedono il nome del dispositivo di backup specificano i nomi di file logici dei file di database da ripristinare dal set di backup, ad esempio FILE = 'MyDatabase_data_1'.The FILE options preceding the backup device name specify the logical file names of the database files that are to be restored from the backup set; for example, FILE = 'MyDatabase_data_1'. Questo set di backup non è il primo backup del database nel set di supporti. La relativa posizione nel set di supporti viene pertanto indicata tramite l'opzione FILE nella clausola WITH, FILE=9.This backup set is not the first database backup in the media set; therefore, its position in the media set is indicated by using the FILE option in the WITH clause, FILE=9.

RESTORE DATABASE MyDatabase
    FILE = 'MyDatabase_data_1',
    FILE = 'MyDatabase_data_2',
    FILEGROUP = 'new_customers'
    FROM MyDatabaseBackups
    WITH
      FILE = 9,
      NORECOVERY;
GO  
-- Restore the log backups
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 10,
      NORECOVERY;
GO
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 11,
      NORECOVERY;
GO
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 12,
      NORECOVERY;
GO
--Recover the database
RESTORE DATABASE MyDatabase WITH RECOVERY;
GO

[Inizio degli esempi][Top of examples]

J.J. Ripristino da uno snapshot del databaseReverting from a database snapshot

Nell'esempio seguente viene eseguito il ripristino di un database con uno snapshot del database.The following example reverts a database to a database snapshot. Nell'esempio si presuppone che per il database esista un solo snapshot.The example assumes that only one snapshot currently exists on the database. Per un esempio di come creare lo snapshot di questo database, vedere Creare uno snapshot del database.For an example of how to create this database snapshot, see Create a Database Snapshot.

Nota

Il ripristino da uno snapshot causa l'eliminazione di tutti i cataloghi full-text.Reverting to a snapshot drops all the full-text catalogs.

USE master;
RESTORE DATABASE AdventureWorks2012 FROM DATABASE_SNAPSHOT = 'AdventureWorks_dbss1800';
GO

Per altre informazioni, vedere Ripristinare un database a uno snapshot del database.For more information, see Revert a Database to a Database Snapshot.

[Inizio degli esempi][Top of examples]

K.K. Ripristino dal servizio di archiviazione BLOB di Microsoft AzureRestoring from the Microsoft Azure Blob storage service

I tre esempi seguenti prevedono l'uso del servizio di archiviazione di Microsoft Azure.The three examples below involve the use of the Microsoft Azure storage service. Il nome dell'account di archiviazione è mystorageaccount, mentreThe storage Account name is mystorageaccount. Il contenitore per i file di dati è denominato myfirstcontainer.The container for data files is called myfirstcontainer. Il contenitore per i file di backup è denominato mysecondcontainer.The container for backup files is called mysecondcontainer. Sono stati creati criteri di accesso archiviati con diritti di lettura, scrittura, eliminazione ed elenco per ogni contenitore.A stored access policy has been created with read, write, delete, and list, rights for each container. Le credenziali di SQL Server sono state create usando una firma di accesso condiviso associata ai criteri di accesso archiviati.SQL Server credentials were created using Shared Access Signatures that are associated with the Stored Access Policies. Per informazioni specifiche sul backup e sul ripristino di SQL Server con il servizio di archiviazione BLOB di Microsoft Azure, vedere Backup e ripristino di SQL Server con il servizio di archiviazione BLOB di Microsoft Azure.For information specific to SQL Server backup and restore with the Microsoft Azure Blob storage, see SQL Server Backup and Restore with Microsoft Azure Blob Storage Service.

K1. Ripristinare un backup completo del database dal servizio di archiviazione di Microsoft Azure Un backup completo del database Sales, situato in mysecondcontainer, verrà ripristinato in myfirstcontainer.K1. Restore a full database backup from the Microsoft Azure storage service A full database backup, located at mysecondcontainer, of Sales will be restored to myfirstcontainer. Sales attualmente non esiste nel server.Sales does not currently exist on the server.

RESTORE DATABASE Sales
  FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
  WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
  MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
  STATS = 10;

K2. Ripristinare un backup completo del database dal servizio di archiviazione di Microsoft Azure in una risorsa di archiviazione locale Un backup completo del database Sales, situato in mysecondcontainer, verrà ripristinato in una risorsa di archiviazione locale.K2. Restore a full database backup from the Microsoft Azure storage service to local storage A full database backup, located at mysecondcontainer, of Sales will be restored to local storage. Sales attualmente non esiste nel server.Sales does not currently exist on the server.

RESTORE DATABASE Sales
  FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
  WITH MOVE 'Sales_Data1' to 'H:\DATA\Sales_Data1.mdf',
  MOVE 'Sales_log' to 'O:\LOG\Sales_log.ldf',
  STATS = 10;

K3. Ripristinare un backup completo del database da una risorsa di archiviazione locale al servizio di archiviazione di Microsoft AzureK3. Restore a full database backup from local storage to the Microsoft Azure storage service

RESTORE DATABASE Sales
  FROM DISK = 'E:\BAK\Sales.bak'
  WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
  MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
  STATS = 10;

[Inizio degli esempi][Top of examples]

Ulteriori informazioniMore information

SQL ServerSQL Server ** * Istanza gestita
database SQL*
**
* SQL Database
managed instance *
Piattaforma di strumenti
analitici (PDW)
Analytics Platform
System (PDW)

 

Istanza gestita di database SQL di AzureAzure SQL Database managed instance

Questo comando consente di ripristinare un intero database da un backup completo del database (ripristino completo) dall'account di archiviazione BLOB di Azure.This command enables you to restore an entire database from a full database backup (a complete restore) from Azure Blob Storage account.

Per informazioni sugli altri comandi RESTORE supportati, vedere:For other supported RESTORE commands, see:

Importante

Per eseguire il ripristino da backup automatici di un'istanza gestita di database SQL di Azure, vedere Ripristino del database SQL.To restore from Azure SQL Database managed instance automatic backups, see SQL Database Restore.

SintassiSyntax

--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
 FROM URL = { 'physical_device_name' | @physical_device_name_var } [ ,...n ]
[;]

ArgomentiArguments

DATABASEDATABASE

Specifica il database di destinazione.Specifies the target database.

FROM URLFROM URL

Specifica uno o più dispositivi di backup inseriti sugli URL che verranno usati per l'operazione di ripristino.Specifies one or more backup devices placed on URLs that will be used for the restore operation. Il formato URL viene usato per il ripristino dei backup dal servizio di archiviazione di Microsoft Azure.The URL format is used for restoring backups from the Microsoft Azure storage service.

Importante

Per eseguire il ripristino da più dispositivi durante il ripristino da URL, è necessario usare token di firma di accesso condiviso (SAS).In order to restore from multiple devices when restoring from URL, you must use Shared Access Signature (SAS) tokens. Per esempi di creazione di una firma di accesso condiviso, vedere Backup di SQL Server nell'URL e Simplifying creation of SQL Credentials with Shared Access Signature (SAS) tokens on Azure Storage with Powershell (Semplificazione della creazione di credenziali SQL con token di firma di accesso condiviso (SAS) in Archiviazione di Azure con Powershell).For examples creating a Shared Access Signature, see SQL Server Backup to URL and Simplifying creation of SQL Credentials with Shared Access Signature (SAS) tokens on Azure Storage with Powershell.

n è un segnaposto che indica che è possibile specificare fino a 64 dispositivi di backup in un elenco delimitato da virgole.n Is a placeholder that indicates that up to 64 backup devices may be specified in a comma-separated list.

Osservazioni generaliGeneral Remarks

Come prerequisito, è necessario creare una credenziale con il nome corrispondente all'URL dell'account di archiviazione BLOB e la firma di accesso condiviso inserita come segreto.As a prerequisite, you need to create a credential with the name that matches the blob storage account url, and Shared Access Signature placed as secret. Il comando RESTORE cercherà le credenziali usando l'URL di archiviazione BLOB per trovare le informazioni necessarie per leggere il dispositivo di backup.RESTORE command will lookup credential using the blob storage url to find the information required to read the backup device.

L'operazione di ripristino è asincrona, vale a dire che il ripristino continua anche se la connessione client si interrompe.RESTORE operation is asynchronous - the restore continues even if client connection breaks. Se la connessione è interrotta, è possibile controllare nella visualizzazione sys.dm_operation_status lo stato di un'operazione di ripristino (e lo stato di CREATE e DROP DATABASE).If your connection is dropped, you can check sys.dm_operation_status view for the status of a restore operation (as well as for CREATE and DROP database).

Le seguenti opzioni di database sono impostate/sottoposte a override e non possono essere modificate in un secondo momento:The following database options are set/overridden and cannot be changed later:

  • NEW_BROKER (se il broker non è abilitato nel file con estensione bak)NEW_BROKER (if broker is not enabled in .bak file)
  • ENABLE_BROKER (se il broker non è abilitato nel file con estensione bak)ENABLE_BROKER (if broker is not enabled in .bak file)
  • AUTO_CLOSE=OFF (se un database nel file con estensione bak ha l'impostazione AUTO_CLOSE=ON)AUTO_CLOSE=OFF (if a database in .bak file has AUTO_CLOSE=ON)
  • RECOVERY FULL (se un database nel file con estensione bak ha la modalità di ripristino SIMPLE o BULK_LOGGED)RECOVERY FULL (if a database in .bak file has SIMPLE or BULK_LOGGED recovery mode)
  • Il filegroup con ottimizzazione per la memoria viene aggiunto e denominato XTP se non era presente nel file con estensione bak di origine.Memory optimized filegroup is added and called XTP if it was not in the source .bak file. Qualsiasi filegroup con ottimizzazione per la memoria esistente viene rinominato come XTPAny existing memory optimized filegroup is renamed to XTP
  • Le opzioni SINGLE_USER e RESTRICTED_USER vengono convertite in MULTI_USERSINGLE_USER and RESTRICTED_USER options are converted to MULTI_USER

Limitazioni - Istanza gestita di database SQLLimitations - SQL Database managed instance

Si applicano le seguenti limitazioni:These limitations apply:

  • I file con estensione bak contenenti più set di backup non possono essere ripristinati..BAK files containing multiple backup sets cannot be restored.
  • I file con estensione bak contenenti più file di log non possono essere ripristinati..BAK files containing multiple log files cannot be restored.
  • Il ripristino non riesce se il file con estensione bak contiene dati FILESTREAM.Restore will fail if .bak contains FILESTREAM data.
  • Non è possibile ripristinare i backup contenenti database con oggetti in memoria attivi in un'istanza gestita per utilizzo generico.Backups containing databases that have active In-memory objects cannot be restored to a General Purpose managed instance.
  • Attualmente non è possibile ripristinare i backup contenenti database in modalità di sola lettura.Backups containing databases in read-only mode cannot currently be restored. Questa limitazione verrà rimossa a breve.This limitation will be removed soon.

Per altre informazioni, vedere Istanza gestitaFor more information, see managed instance

Ripristino di un database crittografatoRestoring an Encrypted Database

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.

AutorizzazioniPermissions

Per eseguire RESTORE, l'utente deve avere le autorizzazioni CREATE DATABASE.The user must have CREATE DATABASE permissions to be able to execute RESTORE.

CREATE LOGIN mylogin WITH PASSWORD = 'Very Strong Pwd123!';
GRANT CREATE ANY DATABASE TO [mylogin];

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.

EsempiExamples

L'esempio seguente ripristina un backup di database di sola copia da URL, inclusa la creazione di una credenziale.The following examples restore a copy only database backup from URL, including the creation of a credential.

A.A. Ripristinare il database da quattro dispositivi di backupRestore database from four backup devices


-- Create credential
CREATE CREDENTIAL [https://mybackups.blob.core.windows.net/wide-world-importers]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
      SECRET = 'sv=2017-11-09&ss=bq&srt=sco&sp=rl&se=2022-06-19T22:41:07Z&st=2018-06-01T14:41:07Z&spr=https&sig=s7wddcf0w%3D';
GO
-- Restore database
RESTORE DATABASE WideWorldImportersStandard
FROM URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/00-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/01-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/02-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/03-WideWorldImporters-Standard.bak'

Se il database esiste già viene visualizzato l'errore seguente:The following error is shown if the database already exists:

Msg 1801, Level 16, State 1, Line 9
Database 'WideWorldImportersStandard' already exists. Choose a different database name.

B.B. Ripristinare il database specificato tramite la variabileRestore database specified via variable

DECLARE @db_name sysname = 'WideWorldImportersStandard';
DECLARE @url nvarchar(400) = N'https://mybackups.blob.core.windows.net/wide-world-importers/WideWorldImporters-Standard.bak';

RESTORE DATABASE @db_name
FROM URL = @url

C.C. Tenere traccia dello stato dell'istruzione RESTORETrack progress of restore statement

SELECT query = a.text, start_time, percent_complete,
    eta = dateadd(second,estimated_completion_time/1000, getdate())
FROM sys.dm_exec_requests r
    CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command = 'RESTORE DATABASE'

Nota

In questa visualizzazione verranno probabilmente mostrate due richieste di ripristino.This view will probably show two restore requests. Una è l'istruzione RESTORE originale inviata dal client e l'altra è l'istruzione RESTORE in background eseguita anche se la connessione client non riesce.One is original RESTORE statement sent by the client, and the another one is background RESTORE statement that is executing even if the client connection fails.

SQL ServerSQL Server Istanza gestita
database SQL
SQL Database
managed instance
** * Piattaforma di strumenti
analitici (PDW) *
**
* Analytics
Platform System (PDW) *

 

Sistema della piattaforma di analisiAnalytics Platform System

Ripristina un database utente Parallel Data WarehouseParallel Data Warehouse da un backup di database a un'appliance Parallel Data WarehouseParallel Data Warehouse.Restores a Parallel Data WarehouseParallel Data Warehouse user database from a database backup to a Parallel Data WarehouseParallel Data Warehouse appliance. Il database viene ripristinato da un backup creato in precedenza dal comando BACKUP DATABASE - Piattaforma di strumenti analitici di Parallel Data WarehouseParallel Data Warehouse.The database is restored from a backup that was previously created by the Parallel Data WarehouseParallel Data Warehouse BACKUP DATABASE - Analytics Platform System command. Usare le operazioni di backup e ripristino per creare un piano di ripristino di emergenza o per spostare i database da un'appliance a un'altra.Use the backup and restore operations to build a disaster recovery plan, or to move databases from one appliance to another.

Nota

Il ripristino del database master include il ripristino delle informazioni di accesso all'appliance.Restoring master includes restoring appliance login information. Per ripristinare il database master, usare la pagina Ripristinare il database master nello strumento Configuration Manager.To restore master, use the Restore the master Database page in the Configuration Manager tool. Questa operazione può essere eseguita da un amministratore con accesso al nodo di controllo.An administrator with access to the Control node can perform this operation. Per altre informazioni sui backup di database Parallel Data WarehouseParallel Data Warehouse, vedere la sezione relativa a backup e ripristino nella Documentazione del prodotto Parallel Data WarehouseParallel Data Warehouse product documentation.For more information about Parallel Data WarehouseParallel Data Warehouse database backups, see "Backup and Restore" in the Documentazione del prodotto Parallel Data WarehouseParallel Data Warehouse product documentation.

SintassiSyntax


-- Restore the master database
-- Use the Configuration Manager tool.

Restore a full user database backup.
RESTORE DATABASE database_name
    FROM DISK = '\\UNC_path\full_backup_directory'
[;]

--Restore a full user database backup and then a differential backup.
RESTORE DATABASE database_name
    FROM DISK = '\\UNC_path\differential_backup_directory'
    WITH [ ( ] BASE = '\\UNC_path\full_backup_directory' [ ) ]
[;]

--Restore header information for a full or differential user database backup.
RESTORE HEADERONLY
    FROM DISK = '\\UNC_path\backup_directory'
[;]

ArgomentiArguments

RESTORE DATABASE database_name specifica il ripristino di un database utente in un database denominato database_name.RESTORE DATABASE database_name Specifies to restore a user database to a database called database_name. Il database ripristinato può avere un nome diverso da quello del database di origine di cui è stato eseguito il backup.The restored database can have a different name than the source database that was backed up. database_name non può essere un database già esistente nell'appliance di destinazione.database_name cannot already exist as a database on the destination appliance. Per altri dettagli sui nomi consentiti per i database, vedere la sezione relativa alle regole di denominazione degli oggetti nella Documentazione del prodotto Parallel Data WarehouseParallel Data Warehouse product documentation.For more details on permitted database names, see "Object Naming Rules" in the Documentazione del prodotto Parallel Data WarehouseParallel Data Warehouse product documentation.

Il ripristino di un database utente implica il ripristino di un backup completo del database e, facoltativamente, di un backup differenziale nell'appliance.Restoring a user database restores a full database backup and then optionally restores a differential backup to the appliance. Il ripristino di un database utente include il ripristino degli utenti e dei ruoli del database.A restore of a user database includes restoring database users, and database roles.

FROM DISK = '\\UNC_path\backup_directory' indica il percorso di rete e la directory da cui Parallel Data WarehouseParallel Data Warehouse ripristina i file di backup.FROM DISK = '\\UNC_path\backup_directory' The network path and directory from which Parallel Data WarehouseParallel Data Warehouse will restore the backup files. Ad esempio, FROM DISK = '\\xxx.xxx.xxx.xxx\backups\2012\Monthly\08.2012.Mybackup'.For example, FROM DISK = '\\xxx.xxx.xxx.xxx\backups\2012\Monthly\08.2012.Mybackup'.

backup_directory specifica il nome della directory che contiene il backup completo o differenziale.backup_directory Specifies the name of a directory that contains the full or differential backup. È ad esempio possibile eseguire un'operazione RESTORE HEADERONLY per un backup completo o differenziale.For example, you can perform a RESTORE HEADERONLY operation on a full or differential backup.

full_backup_directory specifica il nome della directory che contiene il backup completo.full_backup_directory Specifies the name of a directory that contains the full backup.

differential_backup_directory specifica il nome della directory che contiene il backup differenziale.differential_backup_directory Specifies the name of the directory that contains the differential backup.

  • Il percorso e la directory di backup devono essere già esistenti e devono essere specificati sotto forma di percorso UNC completo.The path and backup directory must already exist and must be specified as a fully qualified universal naming convention (UNC) path.
  • Il percorso della directory di backup non può essere un percorso locale e non può essere il percorso di uno dei nodi di appliance Parallel Data WarehouseParallel Data Warehouse.The path to the backup directory cannot be a local path and it cannot be a location on any of the Parallel Data WarehouseParallel Data Warehouse appliance nodes.
  • La lunghezza massima del percorso UNC e del nome della directory di backup è di 200 caratteri.The maximum length of the UNC path and backup directory name is 200 characters.
  • Il server o l'host deve essere specificato come indirizzo IP.The server or host must be specified as an IP address.

RESTORE HEADERONLY specifica che vengono restituite solo le informazioni di intestazione per un backup del database utente.RESTORE HEADERONLY Specifies to return only the header information for one user database backup. Tra gli altri campi, l'intestazione include la descrizione in formato testo del backup e il nome del backup stesso.Among other fields, the header includes the text description of the backup, and the backup name. Il nome del backup non deve necessariamente corrispondere al nome della directory in cui sono archiviati i file di backup.The backup name does not need to be the same as the name of the directory that stores the backup files.

I risultati di RESTORE HEADERONLY seguono il modello dei risultati di RESTORE HEADERONLY di SQL ServerSQL Server.RESTORE HEADERONLY results are patterned after the SQL ServerSQL Server RESTORE HEADERONLY results. Il risultato ha più di 50 colonne, che non vengono usate tutte da Parallel Data WarehouseParallel Data Warehouse.The result has over 50 columns, which are not all used by Parallel Data WarehouseParallel Data Warehouse. Per una descrizione delle colonne nei risultati di RESTORE HEADERONLY di SQL ServerSQL Server, vedere RESTORE HEADERONLY.For a description of the columns in the SQL ServerSQL Server RESTORE HEADERONLY results, see RESTORE HEADERONLY.

AutorizzazioniPermissions

È necessaria l'autorizzazione CREATE ANY DATABASE.Requires the CREATE ANY DATABASE permission.

È necessario un account di Windows con l'autorizzazione di accesso e lettura per la directory di backup.Requires a Windows account that has permission to access and read from the backup directory. È anche necessario archiviare il nome e la password dell'account di Windows in Parallel Data WarehouseParallel Data Warehouse.You must also store the Windows account name and password in Parallel Data WarehouseParallel Data Warehouse.

Gestione degli erroriError Handling

Il comando RESTORE DATABASE genera errori nelle condizioni seguenti:The RESTORE DATABASE command results in errors under the following conditions:

  • Il nome del database da ripristinare esiste già nell'appliance di destinazione.The name of the database to restore already exists on the target appliance. Per evitare questo problema, scegliere un nome di database univoco oppure rilasciare il database esistente prima di eseguire il ripristino.To avoid this, choose a unique database name, or drop the existing database before running the restore.
  • Nella directory di backup è presente un set di file di backup non valido.There is an invalid set of backup files in the backup directory.
  • Le autorizzazioni di accesso non sono sufficienti per il ripristino di un database.The login permissions are not sufficient to restore a database.
  • Parallel Data WarehouseParallel Data Warehouse non ha le autorizzazioni corrette per il percorso di rete in cui si trovano i file di backup.does not have the correct permissions to the network location where the backup files are located.
  • Il percorso di rete della directory di backup non esiste o non è disponibile.The network location for the backup directory does not exist, or is not available.
  • Lo spazio su disco è insufficiente nei nodi di calcolo o nel nodo di controllo.There is insufficient disk space on the Compute nodes or Control node. Parallel Data WarehouseParallel Data Warehouse non conferma la disponibilità di spazio su disco sufficiente nell'appliance prima dell'avvio del ripristino.does not confirm that sufficient disk space exists on the appliance before initiating the restore. È quindi possibile che venga generato un errore di spazio su disco insufficiente durante l'esecuzione dell'istruzione RESTORE DATABASE.Therefore, it is possible to generate an out-of-disk-space error while running the RESTORE DATABASE statement. Quando si verifica l'errore di spazio su disco insufficiente, Parallel Data WarehouseParallel Data Warehouse esegue il rollback del ripristino.When insufficient disk space occurs, Parallel Data WarehouseParallel Data Warehouse rolls back the restore.
  • L'appliance di destinazione in cui il database è in corso di ripristino ha un numero di nodi di calcolo inferiore a quello dell'appliance di origine da cui è stato eseguito il backup del database.The target appliance to which the database is being restored has fewer Compute nodes than the source appliance from which the database was backed up.
  • Viene tentato il ripristino del database dall'interno di una transazione.The database restore is attempted from within a transaction.

Osservazioni generaliGeneral Remarks

Parallel Data WarehouseParallel Data Warehouse tiene traccia dell'esito positivo del ripristino dei database.tracks the success of database restores. Prima di ripristinare un backup differenziale del database, Parallel Data WarehouseParallel Data Warehouse verifica che il ripristino completo del database sia stato completato.Before restoring a differential database backup, Parallel Data WarehouseParallel Data Warehouse verifies the full database restore finished successfully.

Dopo un ripristino, il database utente ha un livello di compatibilità pari a 120.After a restore, the user database will have database compatibility level 120. Questo vale per tutti i database, indipendentemente dal livello di compatibilità originale.This is true for all databases regardless of their original compatibility level.

Ripristino in un'appliance con un numero maggiore di nodi di calcoloRestoring to an Appliance With a Larger Number of Compute Nodes

Eseguire DBCC SHRINKLOG (Azure SQL Data Warehouse) dopo il ripristino di un database da un'appliance più piccola a una più grande, poiché la ridistribuzione aumenta le dimensioni del log delle transazioni.Run DBCC SHRINKLOG (Azure SQL Data Warehouse) after restoring a database from a smaller to larger appliance since redistribution will increase transaction log.

Il ripristino di un backup in un'appliance con un numero maggiore di nodi di calcolo aumenta la dimensione allocata al database proporzionalmente al numero di nodi di calcolo.Restoring a backup to an appliance with a larger number of Compute nodes grows the allocated database size in proportion to the number of Compute nodes.

Se ad esempio si ripristina un database da 60 GB da un'appliance da 2 nodi (30 GB per nodo) in un'appliance da 6 nodi, Parallel Data WarehouseParallel Data Warehouse crea un database di 180 GB (6 nodi con 30 GB per nodo) nell'appliance da 6 nodi.For example, when restoring a 60 GB database from a 2-node appliance (30 GB per node) to a 6-node appliance, Parallel Data WarehouseParallel Data Warehouse creates a 180 GB database (6 nodes with 30 GB per node) on the 6-node appliance. Parallel Data WarehouseParallel Data Warehouse inizialmente ripristina il database in 2 nodi, in modo che corrisponda alla configurazione dell'origine, e quindi ridistribuisce i dati in tutti i 6 nodi.initially restores the database to 2 nodes to match the source configuration, and then redistributes the data to all 6 nodes.

Dopo la ridistribuzione, ogni nodo di calcolo contiene meno dati effettivi e più spazio disponibile rispetto a ogni nodo di calcolo nell'appliance di origine di dimensioni inferiori.After the redistribution each Compute node will contain less actual data and more free space than each Compute node on the smaller source appliance. Usare lo spazio aggiuntivo per l'aggiunta di altri dati al database.Use the additional space to add more data to the database. Se le dimensioni del database ripristinato sono maggiori del necessario, è possibile usare ALTER DATABASE - PDW per compattare le dimensioni dei file del database stesso.If the restored database size is larger than you need, you can use ALTER DATABASE - PDW to shrink the database file sizes.

Limitazioni e restrizioniLimitations and Restrictions

In questa sezione, per appliance di origine si intende l'appliance da cui è stato creato il backup del database e per appliance di destinazione si intende l'appliance in cui viene ripristinato il database.For these limitations and restrictions, the source appliance is the appliance from which the database backup was created, and the target appliance is the appliance to which the database will be restored.

  • Il ripristino di un database non implica la rigenerazione automatica delle statistiche.Restoring a database does not automatically rebuild statistics.
  • In qualsiasi momento, nell'appliance può essere in esecuzione una sola istruzione RESTORE DATABASE o BACKUP DATABASE.Only one RESTORE DATABASE or BACKUP DATABASE statement can be running on the appliance at any given time. Se vengono inviate contemporaneamente più istruzioni di backup e ripristino, l'appliance le inserisce in una coda e le elabora una alla volta.If multiple backup and restore statements are submitted concurrently, the appliance will put them into a queue and process them one at a time.
  • È possibile ripristinare un backup del database solo in un'appliance di destinazione Parallel Data WarehouseParallel Data Warehouse con un numero di nodi di calcolo uguale o maggiore a quello dell'appliance di origine.You can only restore a database backup to a Parallel Data WarehouseParallel Data Warehouse target appliance that has the same number or more Compute nodes than the source appliance. L'appliance di destinazione non può avere un numero di nodi di calcolo minore dell'appliance di origine.The target appliance cannot have fewer Compute nodes than the source appliance.
  • Non è possibile ripristinare un backup creato in un'appliance con hardware SQL Server 2012 PDW in un'appliance con hardware SQL Server 2008 R2.You cannot restore a backup that was created on an appliance that has SQL Server 2012 PDW hardware to an appliance that has SQL Server 2008 R2 hardware. Ciò vale anche se l'appliance è stata originariamente acquistata con hardware SQL Server 2008 R2 PDW e ora esegue software SQL Server 2012 PDW.This holds true even if the appliance was originally purchased with the SQL Server 2008 R2 PDW hardware and is now running SQL Server 2012 PDW software.

Utilizzo di blocchiLocking

Acquisisce un blocco esclusivo per l'oggetto DATABASE.Takes an exclusive lock on the DATABASE object.

EsempiExamples

A.A. Esempi di RESTORE sempliciSimple RESTORE examples

L'esempio seguente ripristina un backup completo nel database SalesInvoices2013.The following example restores a full backup to the SalesInvoices2013 database. I file di backup sono archiviati nella directory \\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full.The backup files are stored in the \\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full directory. Nell'appliance di destinazione non può essere già presente un database SalesInvoices2013. In caso contrario, questo comando avrà esito negativo e genererà un errore.The SalesInvoices2013 database cannot already exist on the target appliance or this command will fail with an error.

RESTORE DATABASE SalesInvoices2013
FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full';

B.B. Ripristinare un backup completo e un backup differenzialeRestore a full and differential backup

L'esempio seguente ripristina un backup completo e quindi un backup differenziale nel database SalesInvoices2013The following example restores a full, and then a differential backup to the SalesInvoices2013 database

Il backup completo del database viene ripristinato usando il backup completo archiviato nella directory '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'.The full backup of the database is restored from the full backup which is stored in the '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full' directory. Se il ripristino viene completato correttamente, il backup differenziale viene ripristinato nel database SalesInvoices2013. Il backup differenziale è archiviato nella directory '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff'.If the restore completes successfully, the differential backup is restored to the SalesInvoices2013 database.The differential backup is stored in the '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff' directory.

RESTORE DATABASE SalesInvoices2013
    FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff'
    WITH BASE = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]

C.C. Ripristino dell'intestazione del backupRestoring the backup header

Questo esempio ripristina le informazioni di intestazione per il backup del database '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'.This example restores the header information for database backup '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full' . Il comando ha come risultato una riga di informazioni per il backup Invoices2013Full.The command results in one row of information for the Invoices2013Full backup.

RESTORE HEADERONLY
    FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]

È possibile usare le informazioni di intestazione per controllare il contenuto di un backup o per assicurarsi che l'appliance di ripristino di destinazione sia compatibile con l'appliance di backup di origine prima di tentare il ripristino del backup.You can use the header information to check the contents of a backup, or to make sure the target restoration appliance is compatible with the source backup appliance before attempting to restore the backup.

Vedere ancheSee Also