Condividi tramite


Copiare database con 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 una versione successiva. Tuttavia, i backup di master, modello e msdb creati con una versione precedente di SQL Server non possono essere ripristinati da SQL Server 2014. Inoltre, i backup di SQL Server 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 delle versioni precedenti, è necessario usare l'opzione MOVE. Per informazioni sul nuovo percorso predefinito, vedere Percorsi file per le istanze predefinite e denominate di SQL Server. Per altre informazioni sullo spostamento di file di database, vedere "Spostamento dei file di database" più avanti in questo argomento.

Procedura generale per l'uso del backup e del ripristino per copiare un database

Quando si usa il backup e il ripristino per copiare un database in un'altra istanza di SQL Server, i computer di origine e di destinazione possono essere qualsiasi piattaforma in cui viene eseguito SQL Server.

I passaggi generali sono i seguenti:

  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 desidera copiare il database (il computer di destinazione), connettersi all'istanza di SQL Server in cui si prevede di 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 crea automaticamente tutti i file di database.

Gli argomenti seguenti illustrano considerazioni aggiuntive che possono influire su questo processo.

Prima di ripristinare i file di database

Il ripristino di un database crea automaticamente i file di database necessari per il ripristino del 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.

Facoltativamente, quando si ripristina il database, è possibile specificare il mapping del dispositivo, i nomi di file o il percorso per il database di ripristino. Ciò potrebbe essere necessario nelle situazioni seguenti:

  • La struttura delle directory o la mappatura dei dischi utilizzata dal database nel computer originale non esiste sull'altro computer. Ad esempio, ad esempio, il backup contiene un file che verrebbe ripristinato nell'unità E per impostazione predefinita, ma il computer di destinazione non dispone di un'unità E.

  • La posizione di destinazione potrebbe avere spazio insufficiente.

  • Si sta riutilizzando un nome di database presente nella destinazione di ripristino e uno dei relativi file è denominato uguale a un file di database nel set di backup, si verifica uno dei seguenti:

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

    • Se il file esistente non può essere sovrascritto, si verificherà 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 intende ripristinare.

Spostamento dei file di database

Se i file all'interno del backup del database non possono essere ripristinati nel computer di destinazione a causa dei motivi indicati in precedenza, è necessario spostare i file in un nuovo percorso durante il ripristino. Per esempio:

  • Si vuole ripristinare un database dai backup creati nel percorso predefinito della versione precedente.

  • Potrebbe essere necessario ripristinare alcuni dei file di database nel backup in un'unità diversa a causa delle considerazioni sulla capacità. Questo è probabilmente un evento comune perché la maggior parte dei computer all'interno di un'organizzazione non ha lo stesso numero e dimensioni di unità disco o configurazioni software identiche.

  • Potrebbe essere necessario creare una copia di un database esistente nello stesso computer a scopo di test. In questo caso, i file di database per il database originale esistono già, pertanto è necessario specificare nomi di file diversi quando la copia del database viene creata durante l'operazione di ripristino.

Per altre informazioni, vedere "Per ripristinare file e filegroup in un nuovo percorso", più avanti in questo argomento.

Modifica del nome del database

Il nome del database può essere modificato man mano che viene ripristinato nel computer di destinazione, senza dover prima ripristinare il database e quindi modificare manualmente il nome. Ad esempio, potrebbe essere necessario modificare il nome del database da Sales a SalesCopy per indicare che si tratta di una copia di un database.

Il nome del database specificato in modo esplicito quando si ripristina un database viene utilizzato automaticamente come nuovo nome del database. Poiché il nome del database non esiste già, ne viene creato uno nuovo usando i file nel backup.

Durante l'aggiornamento di un database tramite il ripristino

Quando si ripristinano i backup da una versione precedente, è utile sapere in anticipo se il percorso (unità e directory) di ognuno dei cataloghi full-text in un backup esiste nel 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 nel computer di destinazione, sono disponibili due alternative:

  • Creare la mappatura di unità/cartella equivalente nel computer di destinazione.

  • Spostare i file di catalogo in un nuovo percorso durante l'operazione di ripristino usando 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 Full-Text Ricerca.

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 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 impedire il ripristino non autorizzato di un database, utilizzare password per i supporti di archiviazione o per il set di backup.

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

Quando si ripristina un database in un'altra istanza del server, per offrire un'esperienza coerente agli utenti e alle applicazioni, potrebbe essere necessario ricreare alcuni o tutti i metadati per il 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 di log in un set di backup

Per ripristinare file e filegroup in un nuovo percorso

Per ripristinare file e gruppi di file nei 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 tramite SQL Server Management Objects (SMO)

Vedere anche

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