Blog
home > blog > Ripristinare un backup su una versione precedente di SQL Server

Tag: SQL Server, backup, Microsoft

Ripristinare un backup su una versione precedente di SQL Server

Microsoft impedisce di ripristinare un backup creato con una versione successiva di SQL Server. Esaminiamo un workaround per aggirare il problema.
di Maurizio Ceravolo
Microsoft per scelta progettuale impedisce di ripristinare un backup creato da una versione successiva di SQL Server su una versione precedente. Anche se il backup fa riferimento ad un database in compatibilità dell'SQL Server precedente.

Immaginiamo di stare sviluppando una applicazione sul proprio computer dove c'è SQL Server 2008 R2. Progettiamo un database in compatibilità SQL Server 2008. Una volta finito, facciamo il backup lo spostiamo sul server dove c'è installato SQL Server 2008. Ripristiniamo il backup e dopo pochi secondi si blocca e ritorna questo errore:

The database was backed up on a server running version %ls. That version is incompatible with this server, which is running version %ls. Either restore the database on a server that supports the backup, or use a backup that is compatible with this server.

Purtroppo non c'è alcun verso per farglielo digerire. Se il database che abbiamo progettato non ha ancora dati dentro, la soluzione è molto semplice. Si fa creare dal Managment Studio lo script di generazione del database e lo si fa eseguire in remoto.

Se sono presenti dati invece abbiamo davanti a noi due strade che dipendono dalle dimensioni del database stesso. Se è dell'ordine delle poche migliaia di record, possiamo pensare di far scriptare oltre alla struttura anche i dati. Se per caso abbiamo già decine di migliaia di record o più, allora la questione si fa spinosa. L'unica maniera è fare una importazione di dati da un db all'altro. Però c'è il grosso rischio che ci siano blocchi continui, per violazioni di integrità referenziali. Per evitare di importare una tabella per volta, conviene disabilitare prima i vincoli già presenti sul database, come ho spiegato nel post precedente a questo.

Prima di iniziare l'importazione, non dimenticate di abilitare anche l'IDENTITY INSERT per ogni tabella, altrimenti o non vengono inseriti i dati oppure, peggio, vengono create chiavi nuove per le tabelle.

Con un po' di fatica alla fine il database viene importato. Il consiglio, però, è di verificare prima su che SQL Server andrete a pubblicare il database, e se è precedente a quello su cui di solito sviluppate, o fatevi una macchina virtuale con quella versione di SQL Server o sviluppate il db direttamente sul server remoto (se possibile). Vi risparmierete ore di perdita di tempo.
Post correlati
2012
12
Aprile
SQL Server 2012 è stato rilasciato
Maurizio Ceravolo
Microsoft ha comunicato di aver reso disponibile per la vendita ed il download SQL Server 2012, l'ultima release del suo DBMS.
2012
13
Aprile
Introducing Microsoft SQL Server 2012: Ebook gratuito
Maurizio Ceravolo
Con il rilascio di SQL Server 2012, Microsoft pubblica in maniera gratuita l'ebook "Introducing Microsoft SQL Server 2012" per iniziare a conoscere il nuovo dbms.
2010
9
Dicembre
TSQL: concatenare più record senza usare un cursore
Maurizio Ceravolo
Concatenare più record di una tabella in un'unica stringa necessita un cursore, che però è poco performante. Vediamo un metodo tramite FOR XML PATH per concatenare con una query secca.
2011
14
Febbraio
Nokia - Windows Phone 7: matrimonio fatto
Maurizio Ceravolo
Il matrimonio fra Nokia e Microsoft è stato fatto. I nuovi smartphone di Nokia avranno una versione privilegiata di Windows Phone 7. Tutti i dettagli.
2011
4
Febbraio
Dimensioni di tutte le tabelle di un database SQL Server
Maurizio Ceravolo
Vediamo una stored procedure per calcolare le dimensioni, in numero di record ed in occupazione su disco, di dati ed indici di ogni tabella di un database su SQL Server.


Archivio Mensile Blog
Tag Cloud
Apple dbms Facebook geek Google Google+ humor ignoranza innovazione iPad Microsoft Programmazione social network turismo video videogiochi viral web search Windows Phone 7 Xbox
Ultimi Post
I migliori di oggi
I più popolari del mese
Top post