È necessario migrare SQL Server su MySQL


22

Ho un database su SQL Server 2008 su un server Windows e voglio spostare tutti i dati in un database MySQL su un server Ubuntu. Ho provato a utilizzare l'importazione / esportazione guidata di SQL Server con il driver ODBC MySQL e accede correttamente a entrambi i database, ma i file XML contenenti le specifiche per la conversione dei tipi non esistevano e le specifiche erano troppo limitate per me per crearli correttamente. Qualcuno sa come creare i file di conversione dei tipi o dove ottenere uno strumento migliore per il trasferimento di questi dati?


1
Hai visto questa domanda? Si tratta di replicare i dati da MySql a MSSQL. Forse troverai alcuni suggerimenti lì.
Marian,

@Marian Grazie per il link. L'uso del server MySQL come server collegato in SQL Server sembra essere una soluzione al mio problema.
murgatroid99,

1
Di quanti dati stiamo parlando? 5mb? 3TB?
AaronJAnderson,

Penso che fossero GB o 10 di GB, ma non ricordo davvero perché questa domanda è di un anno e mezzo fa.
murgatroid99,

Risposte:


13

Ho due suggerimenti:

1) Odio portare prodotti commerciali ma ci sono strumenti da $ 49,00 per migrare MSSQL su MySQL

2) Prova i forum sulla migrazione MSSQL di MySQL per ulteriori suggerimenti

AGGIORNAMENTO 2011-06-03 18:03 EDT

Esiste un vecchio prodotto che è diventato EOL a gennaio 2010 chiamato MySQL Migration Toolkit . Se riesci a trovarlo, puoi usarlo.

AGGIORNAMENTO 2011-06-03 18:06 EDT

Ho trovato gli archivi !!! Ecco il MySQL Migration Toolkit

AGGIORNAMENTO 2011-06-03 18:11 EDT

Ecco la panoramica di MySQL Migration Toolkit

AGGIORNAMENTO 2011-06-03 19:08 EDT

Un altro prodotto commerciale ($ 29)

AGGIORNAMENTO 2011-06-03 19:30 EDT

Ecco un elenco di strumenti Freeware che migrano da MSSQL a MySQL.

AGGIORNAMENTO 2011-06-15 17:47 EDT

Ottieni WhitePaper (PDF) da Oracle nella Guida alla migrazione di Microsoft SQL Server a MySQL (Still Commercial)

AGGIORNAMENTO 2012-08-21 01:24 EDT

Secondo questa pagina Web MySQL , la sezione MySQL Workbench: Database Migration Wizardafferma che MySQL Workbench ha la capacità di migrare oggetti DB da SQL Server a MySQL.


1
Preferirei non utilizzare prodotti commerciali se posso evitarli. Ho provato a utilizzare Migration Toolkit, ma penso che sia incompatibile con la versione più recente di MySQL: le istruzioni di inserimento SQL generate avevano un numero enorme di errori di sintassi e le tabelle generate non avevano righe dopo aver eseguito la procedura guidata. Gli strumenti shareware sembrano anche fatti funzionare con le versioni precedenti di MySQL. Grazie per averci provato.
murgatroid99,

4

Sulla base del suggerimento di Marian, ho trovato questa risposta sulla replica nell'altra direzione configurando il server MySQL come server collegato in MS SQL Server. Con MySQL configurato come server collegato, posso eseguire query SQL su entrambi i database contemporaneamente, il che fornisce esattamente la funzionalità di cui avevo bisogno per risolvere questo problema.


3

Hai esaminato l'utilizzo di SSIS per questa attività? Questo è lo strumento ETL per SQL Server e ha molte trasformazioni e logiche che potrebbero aiutarti a eseguire questa attività.


La procedura guidata di importazione / esportazione che ho menzionato usando in realtà crea pacchetti SSIS. Il problema che ho avuto è stato che SSIS utilizza i file XML per archiviare i dati su come convertire tra tipi in diversi sistemi di gestione del database e quei file non esistevano per MySQL.
murgatroid99,


2

Ho provato il Migration Toolkit per importare da SQL Server a MySQL. Ma ho trovato SQLyog Import dati esterni buoni. Potrei pianificare il processo di importazione e anche eseguire i mapping necessari per importare in una tabella esistente. Scarica da qui .

inserisci qui la descrizione dell'immagine


SQLyog è un ottimo strumento, ma la funzionalità "importa dati esterni" è estremamente lenta. Come in molti ordini di grandezza più lenti di MySQL Workbench. Vorrei che gli sviluppatori SQLyog risolvessero il problema, perché l'interfaccia è molto più intuitiva di Workbench. Ma a meno che tu non stia importando solo centinaia di righe, devi essere pronto ad aspettare ore o forse giorni per il completamento dell'importazione.
nextgentech,

2

Di recente ho rilasciato etlalchemy per svolgere questo compito. È una soluzione open source che consente la migrazione tra 2 database SQL con 4 linee di Python . Gli RDBMS supportati includono MySQL, PostgreSQL, Oracle, SQLite e SQL Server.

Questo si occuperà del compito scoraggiante di mappare i tipi di colonna di un fornitore SQL, a quelli di un altro. Non solo trasferirà e tradurrà lo schema , ma migrerà anche tutti i dati, gli indici e i vincoli attraverso i database.

Installare:

$ pip install etlalchemy

Su El Capitan :pip install --ignore-installed etlalchemy

Correre:

from etlalchemy import ETLAlchemySource, ETLAlchemyTarget

mssql_db_source = ETLAlchemySource("mssql+pyodbc://username:password@DSN")

mysql_db_target = ETLAlchemyTarget("mysql://username:password@hostname/db_name", drop_database=True)
mysql_db_target.addSource(mssql_db_source)

Per avere maggiori informazioni sulle origini del progetto, dai un'occhiata a questo post. Se riscontri errori nell'esecuzione dello strumento, apri un problema sul repository github e lo riparerò in meno di una settimana!


0

Lo strumento di migrazione di MySQL Workbench può aiutarti a svolgere questa attività

1) Per avviare il processo di migrazione, nella schermata principale di MySQL Workbench, vai su Database-> Migrazione guidata.

2) Dovremmo controllare i prerequisiti per confermare se possiamo continuare l'attività. Se tutto sembra a posto, possiamo premere su Avvia migrazione.

3) In questo passaggio, è necessario fornire le informazioni sul database di origine, in questo caso SQL Server.

Configureremo il nostro parametro sorgente:

Sistema di database: Microsoft SQL Server

Metodo di connessione: ODBC (nativo)

Driver: SQL Server

Server: localhost

Nome utente: sa

4) Ora possiamo verificare la connessione utilizzando il pulsante Test connessione.

5) Quindi, dobbiamo aggiungere i parametri target:

Metodo di connessione: Standard (TCP / IP)

Nome host: Your_host_name

Porto: 3306

Nome utente: migrazione

6) E premere Test connessione per confermare le informazioni aggiunte.

7) Nel prossimo passaggio, MySQL Workbench si collegherà al nostro SQL Server per recuperare un elenco di cataloghi e schemi.

8) Ora, sceglieremo il database Your_database_name dall'elenco.

Siamo in grado di scegliere come mappare gli schemi e l'oggetto a ingegneria inversa. Useremo Catalog.Schema.Table -> Catalog.Table, quindi nel nostro MySQL avremo selezionato il database e le tabelle correnti che abbiamo nel nostro database SQL Server.

9) Se tutto è andato bene, avremo un elenco di oggetti da migrare.

10) In questo caso, abbiamo oggetti Table, View Objects e Routine Objects. Selezioneremo solo gli oggetti tabella perché per il resto dell'oggetto dovremmo controllare manualmente il codice equivalente MySQL corrispondente.

11) In questo passaggio, gli oggetti dalla sorgente vengono convertiti in oggetti compatibili con MySQL.

12) Se tutto è andato bene, possiamo continuare selezionando come vogliamo creare lo schema migrato nella destinazione. Utilizzeremo l'opzione predefinita "Crea schema in RDBMS di destinazione".

13) Ora, controlliamo il processo dello schema di creazione.

14) Nel passaggio successivo, possiamo verificare il risultato di ogni esecuzione di script e possiamo verificare il nuovo database creato sul nostro server MySQL.

15) A questo punto avremo la struttura del database, ma non abbiamo ancora i dati. Ora selezioneremo come vogliamo copiare i dati nel server MySQL. Utilizzeremo l'opzione "Copia online dei dati della tabella per indirizzare RDBMS".

16) Nell'ultimo passaggio, possiamo controllare il rapporto sulla migrazione e completare l'attività.

Un altro metodo semplice per convertire un DB MS SQL in MySQL è utilizzare lo strumento fai-da-te Stellar chiamato Stellar Converter per Database che può selezionare direttamente il file di database di un database specifico e fornire l'anteprima delle tabelle convertibili e dopo la conversione memorizzerà direttamente i dati nel database specificato installato sul tuo sistema. In questo caso dovrai fornire il file di database MS SQL e dopo la conversione verrà archiviato nel database MySQL installato nel sistema. Puoi ottenere la versione gratuita di questo software dal sito Web ufficiale di Stellar .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.