Domanda

Sto facendo un lavoro di migrazione del database. Devo copiare un database in MSSQL nel database MySql. È stato possibile trovare una piccola utility java per copiare la struttura delle tabelle da MSSQL al database MySql. Ora devo copiare tutti i dati da MSSQL a MySql. Ho provato a utilizzare il gruppo di risultati in Java per ottenere tutti i dati da una tabella, ma è stato possibile recuperare solo una piccola parte dei dati. Esiste una soluzione alternativa per ottenere tutti i dati dalla tabella al gruppo di risultati o ad altre strutture simili che potrei eventualmente usare, per inserire gli stessi dati in mysql Db. Ci sono più di 25.000.000 di record per una tabella.

È stato utile?

Soluzione

Un set di risultati JDBC dovrebbe in linea di principio consentire di ripetere l'intero risultato di una query di grandi dimensioni.

Tuttavia, passare attraverso Java potrebbe non essere l'approccio più efficiente. L'esportazione in blocco in un file e l'importazione in blocco possono essere la strada da percorrere. Sembra che MS abbia un'utilità bcp che può eseguire l'esportazione.

Altri suggerimenti

Il modo migliore per ottenere una migrazione del database come descritto è utilizzare ETL Tool: qui è disponibile una buona panoramica di ETL:

http://en.wikipedia.org/wiki/Extract,_transform,_load

Non c'è motivo per cui non saresti in grado di farlo con JDBC e quindi se sei pronto a lanciare il tuo, ti preghiamo di approfondire "potresti recuperare solo una piccola parte dei dati":

  • qual è la query che stai eseguendo?
  • stai ricevendo un'eccezione?
  • quale driver JDBC stai usando per connetterti a MS-SQL?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top