2009-11-16 4 views
5

Devo spostare un intero database da un computer SQL Server 2008 a un computer SQL Server 2000.Ripristino del database di SQL Server 2008 su SQL Server 2000

Ho creato un backup utilizzando Management Studio 2008, l'ho copiato sul disco rigido del box 2000 e da with Management Studio 2008, ho scelto Ripristino database nel box 2000.

Viene visualizzato un messaggio di errore che indica che "La famiglia di supporti sul dispositivo ... non è stata formata correttamente. SQL Server non può ripristinare questa famiglia di supporti".

Se utilizzo Enterprise Manager 2000 ottengo lo stesso errore.

C'è un modo per spostare un intero database dal più recente server SQL al precedente?

risposta

10

L'unica cosa che posso pensare è ricreare l'intera struttura e quindi copiare i dati da un database attivo. Quindi, creare script che creeranno le tabelle, le viste e gli sp e quindi creare script per copiare i dati dal database esistente.

+1

Ho appena finito di farlo da solo. L'unico modo in cui ho trovato di farlo è stato quello di creare script dell'intero database (inclusi i dati) ed eseguire lo script sul computer di destinazione. Ora, questo è un problema, perché il DB 2008 può creare uno script che non verrà eseguito su 2000 (beh, il mio ha fatto), quindi dovrai modificare lo script generato prima di eseguirlo nel 2000. Fai scorta di Tylenol prima di iniziare. In bocca al lupo. – BoltBait

+4

Sì, questo è l'unico modo per farlo. SQL Server non è mai stato retrocompatibile, ad es. non sei mai stato in grado di ripristinare una versione più recente su un server precedente. Non credo che questo cambierà probabilmente –

0

Ho sentito che puoi farlo solo generando il dump dell'istruzione SQL dallo strumento di amministrazione DB e rieseguendo queste query sul database precedente di destinazione.

+1

Ovviamente dovrete manipolarli a mano mentre lo strumento di script inserisce cose che il 2000 non riconoscerà. – HLGEM

1

non è possibile spostare i backup da una versione più recente di un vecchio, in questo caso è possibile creare script il database, eseguire nella casella del 2000, quindi è possibile utilizzare il trasferimento di dati standard per trasferire tutti i dati che si desidera

0

È possibile generare uno script che ricreerà tutti gli oggetti e trasferirà tutti i dati ... purché tutto nel db sia valido in SQL 2000. Quindi nessun ROW_NUMBER(), nessuna PARTITION, nessun CTE, nessun datetime2, gerarchia o molti altri tipi di campo, non EXECUTE AS e molte altre qualità. Fondamentalmente, ci sono buone probabilità che non sia possibile a meno che il tuo db sia piuttosto semplice.

1

Se si dispone di una connessione di rete tra le macchine, utilizzare SSIS. Molto più facile e molto meno pasticcio.

1

È possibile utilizzare Script Generator per il database e quindi selezionare nelle proprietà del modulo: Generale-> Script per la versione server: SQL Server 2000.

Il generatore di script vi mostrerà cose che non compatibile con la versione del server .

2

Come già detto, non esiste un modo predefinito per farlo. Non è supportato. Qui ci sono maggiori dettagli su come farlo correttamente ed evitare qualsiasi problema di migrazione.

È necessario generare script per struttura e dati e quindi eseguirli su SQL 2000 (come già detto altri) ma ci sono alcune cose da tenere in considerazione.

generare script in SSMS

  • Assicurati di controllare l'opzione per i dati di scripting per SQL 2000 per evitare problemi quando si cerca di creare qualcosa di simile colonna di tipo geografico su SQL 2000.
  • Assicurati di rivedere l'ordine di esecuzione di script per evitare errori a base di dipendenza

Questa è una grande opzione per le piccole e medie banche dati di dimensioni e richiede una certa conoscenza di SQL Server (dipendenze, le differenze tra le versioni e simili)

strumenti di terze parti

  • idea è quella di utilizzare terze parti strumenti di confronto del database, come ApexSQL Diff o Data Diff
  • lato buono è che questi si prenderà cura di esecuzione di script e le differenze tra le versioni
  • Non così bene è il fatto che avrete bisogno di pagare per questi dopo il processo si conclude
  • Ho usato questi due strumenti con successo ma non puoi sbagliare con nessun altro strumento sul mercato. Here è una lista di altri strumenti in questa categoria.
0

Abbiamo una situazione simile. Un molto low-tech, ma la soluzione a portata di mano è:

  1. di backup e troncare le tabelle in SQL 2000.
  2. creare un server collegato in SQL 2008, che punta a SQL 2000
  3. gestiscono una query di selezione in sysobjects a generare uno script di query per insert into LINKED SERVER.table select * from table
  4. eseguire script di query.