Copiare database tramite backup e ripristinoCopy Databases with Backup and Restore

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

In SQL Server 2017SQL Server 2017 è possibile creare un nuovo database ripristinando un backup di un database utente creato tramite SQL Server 2005SQL Server 2005 o una versione successiva.In SQL Server 2017SQL Server 2017, you can create a new database by restoring a backup of a user database created by using SQL Server 2005SQL Server 2005 or a later version. Tuttavia, i backup di master, model e msdb creati con una versione precedente di SQL ServerSQL Server non possono essere ripristinati da SQL Server 2017SQL Server 2017.However, 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. Inoltre, i backup di SQL Server 2017SQL Server 2017 non possono essere ripristinati da una qualsiasi versione precedente di SQL ServerSQL Server.Also, SQL Server 2017SQL Server 2017 backups cannot be restored by any earlier version of SQL ServerSQL Server.

IMPORTANTEIMPORTANT! SQL Server 2016 usa un percorso predefinito diverso rispetto alle versioni precedenti.SQL Server 2016 uses a different default path than earlier versions. Pertanto, per ripristinare i backup di un database creato nel percorso predefinito di versioni precedenti, è necessario utilizzare l'opzione MOVE.Therefore, to restore backups of a database created in the default location of earlier versions 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. Per altre informazioni sullo spostamento dei file di database, vedere "Spostamento dei file di database" di seguito in questo argomento.For more information about moving database files, see "Moving the Database Files," later in this topic.

Procedura generale per l'uso di operazioni di backup e ripristino per copiare un databaseGeneral steps for using Backup and Restore to copy a database

Quando si usa un'operazione di backup e ripristino per copiare un database in un'altra istanza di SQL Server, i computer di origine e di destinazione possono usare qualsiasi piattaforma sulla quale viene eseguito SQL Server.When you use backup and restore to copy a database to another instance of SQL Server, the source and destination computers can be any platform on which SQL Server runs.

Di seguito sono indicati i passaggi fondamentali:The general steps are:

  1. Effettuare il backup del database di origine che può risiedere in un'istanza di SQL Server 2005SQL Server 2005 o versioni successive.Back up the source database, which can reside on an instance of SQL Server 2005SQL Server 2005 or later. Il computer in cui è in esecuzione questa istanza di SQL ServerSQL Server è il computer di origine.The computer on which this instance of SQL ServerSQL Server is running is the source computer.

  2. Nel computer in cui si vuole copiare il database ( computer di destinazione), connettersi all'istanza di SQL Server in cui si intende ripristinare il database.On the computer to which you want to copy the database (the destination computer), connect to the instance of SQL Server on which you plan to restore the database. Se necessario, nell'istanza del server di destinazione creare gli stessi dispositivi di backup usati per il backup dei database di origine .If needed, on the destination server instance, create the same backup devices as used to the backup of the source databases.

  3. Ripristinare il backup del database di origine nel computer di destinazione .Restore the backup of the source database on the destination computer. Il ripristino del database determina la creazione automatica di tutti i file del database.Restoring the database automatically creates all of the database files.

Considerazioni aggiuntive che possono avere effetto su questo processo:Some additional considerations that may affect this process:

Prima di ripristinare i file di databaseBefore You restore database files

Il ripristino di un database determina la creazione automatica dei file di database necessari al database in fase di ripristino.Restoring a database automatically creates the database files needed by the restoring database. Per impostazione predefinita, i file creati da SQL Server durante il processo di ripristino usano gli stessi nomi e percorsi dei file di backup del database originale nel computer di origine.By default, the files created by SQL Server during the restoration process use the same names and paths as the backup files from the original database on the source computer.

Facoltativamente, quando si ripristina il database, è possibile specificare il mapping dei dispositivi, i nomi dei file oppure il percorso per il database in fase di ripristino.Optionally, when restoring the database, you can specify the device mapping, file names, or path for the restoring database.

Tale operazione potrebbe essere necessaria nelle situazioni seguenti:This might be necessary in the following situations:

  • La struttura di directory o il mapping delle unità utilizzato dal database nel computer originale non è più disponibile nell'altro computer.The directory structure or drive mapping used by the database on the original computer not exist on the other computer. Si supponga, ad esempio, che nel backup sia incluso un file che, per impostazione predefinita, verrebbe ripristinato all'unità E, ma tale unità non è disponibile nel computer di destinazione.For example, perhaps the backup contains a file that would be restored to drive E by default, but the destination computer lacks a drive E.

  • Lo spazio nel percorso di destinazione non è sufficiente.The target location might have insufficient space.

  • Si sta riutilizzando un nome del database già presente nella destinazione di ripristino e il nome di qualsiasi file contenuto nel database è uguale al file di database del set di backup, pertanto si verifica una delle situazioni indicate di seguito.You are reusing a database name that exists on the restore destination and any of its files is named the same as a database file in the backup set, one of the following occurs:

    • Se è possibile sovrascrivere il file di database esistente, verrà sovrascritto (ciò non influisce su un file appartenente a un nome di database diverso).If the existing database file can be overwritten, it will be overwritten (this would not affect a file that belongs to a different database name).

    • Se non è possibile sovrascrivere il file esistente, si verifica un errore di ripristino.If the existing file cannot be overwritten, a restore error would occur.

    Per evitare errori e conseguenze impreviste, prima dell'operazione di ripristino è possibile usare la tabella della cronologia backupfile per trovare i file di database e di log nel backup che si intende ripristinare.To avoid errors and unpleasant consequences, before the restore operation, you can use the backupfile history table to find out the database and log files in the backup you plan to restore.

Spostamento dei file di databaseMoving the database files

Se non è possibile ripristinare i file di backup del database nel computer di destinazione, sarà necessario spostarli in un nuovo percorso man mano che vengono ripristinati.If the files within the database backup cannot be restored onto the destination computer, it is necessary to move the files to a new location while they are being restored. Esempio:For example:

  • Si supponga di voler ripristinare un database da backup creati nella posizione predefinita di versioni precedenti.You want to restore a database from backups created in the default location of the earlier version.

  • Per problemi di spazio, potrebbe essere necessario ripristinare alcuni file di database nel backup in un'altra unità disco.It may be necessary to restore some of the database files in the backup to a different drive because of capacity considerations. Questa eventualità può verificarsi frequentemente, dato che nella maggior parte dei casi i computer di un'organizzazione non hanno lo stesso numero o le stesse dimensioni di unità disco o configurazioni software identiche.This is a common occurrence because most computers within an organization do not have the same number and size of disk drives or identical software configurations.

  • Può essere necessario creare una copia di un database esistente sullo stesso computer, a scopo di prova.It may be necessary to create a copy of an existing database on the same computer for testing purposes. In questo caso i file del database originale esistono già, quindi è necessario specificare nomi di file diversi quando viene creata la copia del database durante l'operazione di ripristino.In this case, the database files for the original database already exist, so different file names must be specified when the database copy is created during the restore operation.

    Per altre informazioni, vedere "Per ripristinare file e filegroup in una nuova posizione" di seguito in questo argomento.For more information, see "To restore files and filegroups to a new location," later in this topic.

Modifica del nome del databaseChanging the database name

Il nome del database può essere modificato al momento del ripristino nel computer di destinazione. Non è necessario ripristinare il database e quindi modificare il nome manualmente.The name of the database can be changed as it is restored to the destination computer, without having to restore the database first and then change the name manually. Ad esempio, può risultare necessario cambiare il nome del database da Sales a SalesCopy per indicare che si tratta di una copia.For example, it may be necessary to change the database name from Sales to SalesCopy to indicate that this is a copy of a database.

Il nome del database specificato esplicitamente al momento del ripristino viene usato automaticamente come nuovo nome del database.The database name explicitly supplied when you restore a database is used automatically as the new database name. Poiché il nome del database non esiste, viene creato un database con il nuovo nome tramite i file presenti nel backup.Because the database name does not already exist, a new one is created by using the files in the backup.

Quando si aggiorna un database usando il ripristinoWhen upgrading a database by using Restore

Nel ripristino dei backup da una versione precedente può essere utile sapere in anticipo se il percorso (unità e directory) di ogni catalogo full-text di un backup sia esistente sul computer di destinazione.When restoring backups from an earlier version, it is helpful to know in advance whether the path (drive and directory) of each of the full-text catalogs in a backup exists on the destination computer. Per un elenco dei nomi logici e fisici (percorso e nome file) di ogni file in un backup, inclusi i file di catalogo, usare un'istruzione RESTORE FILELISTONLY FROM .To list the logical names and physical names, path and file name) of every file in a backup, including the catalog files, use a RESTORE FILELISTONLY FROM statement. Per altre informazioni, vedere RESTORE FILELISTONLY (Transact-SQL).For more information, see RESTORE FILELISTONLY (Transact-SQL).

Se lo stesso percorso non esiste sul computer di destinazione, sono disponibili due alternative:If the same path does not exist on the destination computer, you have two alternatives:

  • Creare il mapping di unità/directory equivalente sul computer di destinazione.Create the equivalent drive/directory mapping on the destination computer.

  • Spostare i file di catalogo in una nuova posizione durante l'operazione di ripristino, utilizzando la clausola WITH MOVE nell'istruzione RESTORE DATABASE.Move the catalog files to a new location during the restore operation, by using the WITH MOVE clause in your RESTORE DATABASE statement. Per altre informazioni, vedere RESTORE (Transact-SQL).For more information, see RESTORE (Transact-SQL).

    Per informazioni sulle opzioni alternative per l'aggiornamento degli indici full-text, vedere Aggiornare la ricerca full-text.For information about alternative options for upgrading full-text indexes, see Upgrade Full-Text Search.

Proprietà dei databaseDatabase ownership

Quando un database viene ripristinato in un altro computer, l'account di accesso di SQL ServerSQL Server o l'utente di MicrosoftMicrosoft Windows che inizia l'operazione di ripristino diventa automaticamente il proprietario del nuovo database.When a database is restored on another computer, the SQL ServerSQL Server login or MicrosoftMicrosoft Windows user who initiates the restore operation becomes the owner of the new database automatically. Al momento del ripristino, l'amministratore di sistema o il nuovo proprietario del database possono modificare il proprietario del database.When the database is restored, the system administrator or the new database owner can change database ownership. Per evitare ripristini non autorizzati di un database, impostare password per i supporti o i set di backup.To prevent unauthorized restoration of a database, use media or backup set passwords.

Gestione dei metadati durante il ripristino in un'altra istanza del serverManaging metadata when restoring to another server instance

Quando si ripristina un database in un'altra istanza del server per offrire a utenti e applicazioni un sistema più coerente, può essere necessario ricreare alcuni o tutti i metadati del database, ad esempio account di accesso e processi, nell'altra istanza del server.When you restore a database onto another server instance, to provide a consistent experience to users and applications, you might have to re-create some or all of the metadata for the database, such as logins and jobs, on the other server instance. Per altre informazioni, vedere Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server (SQL Server).For more information, see Manage Metadata When Making a Database Available on Another Server Instance (SQL Server).

Visualizzare i file di dati e i file di log in un set di backupView the data and log files in a backup set

Vedere ancheSee also

Copia di database in altri server Copy Databases to Other Servers
Percorsi dei file per le istanze predefinite e denominate di SQL Server File Locations for Default and Named Instances of SQL Server
RESTORE FILELISTONLY (Transact-SQL) RESTORE FILELISTONLY (Transact-SQL)
RESTORE (Transact-SQL)RESTORE (Transact-SQL)