Copiare database tramite backup e ripristino

Si applica a: SQL Server

In SQL Server puoi creare un nuovo database ripristinando un backup di un database utente creato tramite SQL Server 2005 (9.x) o una versione successiva. Tuttavia, i backup di master, modello e msdb creati con una versione precedente di SQL Server non possono essere ripristinati da questo. Inoltre, i backup di SQL Server non possono essere ripristinati da una qualsiasi versione precedente dello stesso.

Importante

SQL Server 2016 usa un percorso predefinito diverso rispetto alle versioni precedenti. Pertanto, per ripristinare i backup di un database creato nel percorso predefinito di versioni precedenti, è necessario utilizzare l'opzione MOVE. Per informazioni sul nuovo percorso predefinito, vedere Percorsi dei file per le istanze predefinite e denominate di SQL Server. Per altre informazioni sullo spostamento dei file di database, vedere "Spostamento dei file di database" di seguito in questo argomento.

Procedura generale per l'uso di operazioni di backup e ripristino per copiare un 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.

Di seguito sono indicati i passaggi fondamentali:

  1. Eseguire il backup del database di origine che può risiedere in un'istanza di SQL Server 2005 (9.x) o versioni successive. Il computer in cui è in esecuzione questa istanza di SQL Server è il computer di origine.

  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. Se necessario, nell'istanza del server di destinazione creare gli stessi dispositivi di backup usati per il backup dei database di origine .

  3. Ripristinare il backup del database di origine nel computer di destinazione . Il ripristino del database determina la creazione automatica di tutti i file del database.

Considerazioni aggiuntive che possono avere effetto su questo processo:

Prima di ripristinare i file di database

Il ripristino di un database determina la creazione automatica dei file di database necessari al database in fase di ripristino. 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.

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.

Tale operazione potrebbe essere necessaria nelle situazioni seguenti:

  • La struttura di directory o il mapping delle unità utilizzato dal database nel computer originale non è più disponibile nell'altro 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.

  • Lo spazio nel percorso di destinazione non è sufficiente.

  • 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.

    • Se è possibile sovrascrivere il file di database esistente, verrà sovrascritto (ciò non influisce su un file appartenente a un nome di database diverso).

    • Se non è possibile sovrascrivere il file esistente, si verifica un errore di ripristino.

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.

Spostamento dei file di database

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. Ad esempio:

  • Si supponga di voler ripristinare un database da backup creati nella posizione predefinita di versioni precedenti.

  • Per problemi di spazio, potrebbe essere necessario ripristinare alcuni file di database nel backup in un'altra unità disco. 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.

  • Può essere necessario creare una copia di un database esistente sullo stesso computer, a scopo di prova. 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.

Per altre informazioni, vedere "Per ripristinare file e filegroup in una nuova posizione" di seguito in questo argomento.

Modifica del nome del database

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. Ad esempio, può risultare necessario cambiare il nome del database da Sales a SalesCopy per indicare che si tratta di una copia.

Il nome del database specificato esplicitamente al momento del ripristino viene usato automaticamente come nuovo nome del database. Poiché il nome del database non esiste, viene creato un database con il nuovo nome tramite i file presenti nel backup.

Quando si aggiorna un database usando il ripristino

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. Per un elenco dei nomi logici e fisici (percorso e nome file) di ogni file in un backup, inclusi i file di catalogo, usa un'istruzione RESTORE FILELISTONLY FROM <dispositivo_backup>. Per altre informazioni, vedere RESTORE FILELISTONLY (Transact-SQL).

Se lo stesso percorso non esiste sul computer di destinazione, sono disponibili due alternative:

  • Creare il mapping di unità/directory equivalente sul computer di destinazione.

  • Spostare i file di catalogo in una nuova posizione durante l'operazione di ripristino, utilizzando la clausola WITH MOVE nell'istruzione RESTORE DATABASE. Per altre informazioni, vedere RESTORE (Transact-SQL).

Per informazioni sulle opzioni alternative per l'aggiornamento degli indici full-text, vedere Aggiornare la ricerca full-text.

Proprietà dei database

Quando un database viene ripristinato in un altro computer, l'account di accesso di SQL Server o l'utente di Microsoft Windows che inizia l'operazione di ripristino diventa automaticamente il proprietario del nuovo database. Al momento del ripristino, l'amministratore di sistema o il nuovo proprietario del database possono modificare il proprietario del database. Per evitare ripristini non autorizzati di un database, impostare password per i supporti o i set di backup.

Gestione dei metadati durante il ripristino in un'altra istanza del server

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. Per altre informazioni, vedere Gestire i metadati quando si rende disponibile un database in un'altra istanza del server (SQL Server).

Visualizzare i file di dati e i file di log in un set di backup

Ripristinare file e filegroup in una nuova posizione

Ripristinare file e filegroup sovrascrivendo file esistenti

Ripristinare un database con un nuovo nome

Riavviare un'operazione di ripristino interrotta

Cambiare il proprietario del database

Copiare un database mediante SMO (SQL Server Management Objects)

Vedi anche

Copiare database in altri server
Percorsi dei file per le istanze predefinite e denominate di SQL Server
RESTORE FILELISTONLY (Transact-SQL)
RESTORE (Transact-SQL)