Share via


Copia di database tramite backup e ripristino

In SQL Server 2008 è possibile creare un nuovo database ripristinando un backup di un database tramite SQL Server 2000, SQL Server 2005 o SQL Server 2008. Tuttavia, i backup dei database master, model e msdb creati utilizzando SQL Server 2000 oppure SQL Server 2005 non possono essere ripristinati tramite SQL Server 2008. Non è inoltre possibile ripristinare i backup di SQL Server 2008 in una qualsiasi versione precedente di SQL Server.

Il formato dei backup di database creati utilizzando SQL Server 7.0 o versione precedente non è compatibile e non è possibile ripristinare tali backup in SQL Server 2008. Per informazioni sulla procedura di migrazione di un database creato utilizzando SQL Server 6.5 o versione precedente in SQL Server 2005, vedere Copia di database da SQL Server 7.0 o versioni precedenti.

Nota importanteImportante

SQL Server 2008 utilizza un percorso predefinito diverso rispetto alle versioni precedenti. Pertanto, per ripristinare un database creato nella posizione predefinita di SQL Server 2000 o di SQL Server 2005 da backup, è 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. Eseguire il backup del database di origine, che può risiedere su un'istanza di SQL Server 2000, SQL Server 2005 oppure SQL Server 2008. Il computer sul quale questa istanza di SQL Server è in esecuzione è 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 necessari al database in fase di ripristino. Per impostazione predefinita, i file creati da SQL Server durante il processo di ripristino utilizzano lo stesso nome e percorso dei file di backup del database originale sul computer di origine. Per evitare errori e conseguenze indesiderate, prima dell'operazione di ripristino individuare i file creati automaticamente dall'operazione, in quanto:

  • È possibile che file con lo stesso nome esistano già nel computer e vengano pertanto generati errori.

  • Lo spazio sulla posizione di destinazione potrebbe non essere sufficiente.

  • È possibile che la struttura di directory o il mapping delle unità non esista nel computer.

    Si supponga, ad esempio, che il backup includa un file necessario per ripristinare l'unità E, ma che nel computer di destinazione tale unità non esista.

  • Se è consentita la sostituzione dei file del database, i database e i file con nomi identici a quelli presenti nel backup vengono sovrascritti, salvo nel caso in cui appartengano a un altro database.

Nota di attenzioneAttenzione

Se si riutilizza un nome e una posizione di database esistenti e i relativi file vengono sovrascritti, i file con nomi identici a quelli presenti nel backup vengono sovrascritti.

Quando si ripristina il database, se necessario, è possibile specificare il mapping delle unità, i nomi dei file oppure il percorso per il database da ripristinare.

Spostamento dei file del database

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

  • Si supponga di voler ripristinare un database da backup creati nella posizione predefinita di SQL Server 2000 o SQL Server 2005.

  • Per problemi di spazio, potrebbe essere necessario ripristinare alcuni file del 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 2000 o SQL Server 2005 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.

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. Per ulteriori informazioni, vedere Considerazioni sulla protezione per il backup e il ripristino.

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.

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 file e filegroup in una nuova posizione

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)