Condividi tramite


Copiare database tramite backup e ripristino

In SQL Server 2014 è possibile creare un nuovo database ripristinando un backup di un database utente creato usando SQL Server 2005 o versione successiva. Tuttavia, i backup di master, modello e msdb creati usando una versione precedente di SQL Server non possono essere ripristinati da SQL Server 2014. Inoltre, SQL Server backup 2014 non possono essere ripristinati da alcuna versione precedente di SQL Server.

Importante

SQL Server 2014 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'utilizzo 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 o versione successiva. 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, 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, 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 di cronologia dei file di backup per individuare i file di database e di log nel backup che si prevede di 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, 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, 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 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 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 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 elencare i nomi logici e i nomi fisici, il percorso e il nome file) di ogni file in un backup, inclusi i file di catalogo, usare un'istruzione RESTORE FILELISTONLY FROM <backup_device> . 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 SQL Server o l'utente di Microsoft Windows che avvia 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 altre informazioni, vedere Gestire i 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

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