Copiare database tramite backup e ripristino

In SQL Server 2012 è possibile creare un nuovo database ripristinando un backup di un database creato tramite SQL Server 2005 o una versione successiva. Tuttavia, i backup dei database master, model e msdb creati tramite una versione precedente di SQL Server non possono essere ripristinati da SQL Server 2012. Inoltre, i backup di SQL Server 2012 non possono essere ripristinati da una qualsiasi versione precedente di SQL Server.

Nota importanteImportante

In SQL Server 2012 viene utilizzato un percorso predefinito diverso rispetto alle versioni precedenti. Pertanto, per ripristinare i backup di un database creato nel percorso predefinito di SQL Server 2005 o SQL Server 2008, è 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 ulteriori informazioni sullo spostamento dei file di database, vedere "Spostamento dei file di database" di seguito in questo argomento.

Procedura generale per l'utilizzo di operazioni di backup e ripristino per copiare un database

Quando si utilizza 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 utilizzare qualsiasi piattaforma sulla quale viene eseguito SQL Server.

Di seguito sono indicati i passaggi fondamentali:

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

  2. Sul computer sul quale copiare il database (il computer di destinazione), connettersi all'istanza di SQL Server sulla quale si desidera ripristinare il database. Se necessario, sull'istanza del server di destinazione, creare gli stessi dispositivi di backup utilizzati dal backup dei database di origine.

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

Negli argomenti riportati di seguito sono illustrate considerazioni aggiuntive che possono avere effetto su questo processo.

Operazioni preliminari al ripristino dei 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, per i file creati da SQL Server durante il processo di ripristino vengono utilizzati 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 utilizzare la tabella della cronologia backupfile per individuare i file di database e di log nel backup che si intende ripristinare.

Spostamento dei file di database

Se per i motivi elencati in precedenza non è possibile ripristinare i file di backup del database nel computer di destinazione, sarà necessario spostare i file in un nuovo percorso mano a mano che vengono ripristinati, come illustrato di seguito:

  • Si supponga di voler ripristinare un database da backup creati nel percorso predefinito di SQL Server 2005 o SQL Server 2008.

  • Per problemi di spazio, potrebbe essere necessario ripristinare alcuni file di database nel backup in un'altra unità disco. Questa eventualità può verificarsi frequentemente, in quanto la maggior parte dei computer di un'organizzazione non ha 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 al momento della creazione della copia del database tramite l'operazione di ripristino sarà necessario specificare nomi di file diversi.

Per ulteriori 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 utilizzato 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.

Aggiornamento di un database utilizzando il ripristino

Nel ripristino dei backup da SQL Server 2005 o SQL Server 2008 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, utilizzare un'istruzione RESTORE FILELISTONLY FROM <backup_device>. Per ulteriori 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 ulteriori informazioni, vedere RESTORE (Transact-SQL).

Per informazioni sulle opzioni alternative per l'aggiornamento di indici full-text, vedere Aggiornamento della ricerca full-text in SQL Server 2005.

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 di 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 ulteriori informazioni, vedere Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server (SQL Server).

Per visualizzare i file di dati e i file di log in un set di backup

Per ripristinare file e filegroup in una nuova posizione

Per ripristinare file e filegroup sovrascrivendo file esistenti

Per ripristinare un database con un nuovo nome

Per riavviare un'operazione di ripristino interrotta

Per modificare il proprietario di un database

Per copiare un database utilizzando SMO (SQL Server Management Objects)

Vedere anche

Riferimento

RESTORE FILELISTONLY (Transact-SQL)

RESTORE (Transact-SQL)

Concetti

Copia di database in altri server

Percorsi dei file per le istanze predefinite e denominate di SQL Server