Voglio replicare il contenuto di un database MySQL in un database MS SQL Server 2008.
È possibile? Qualcuno può delineare i passaggi necessari per raggiungere questo obiettivo?
Grazie.
Voglio replicare il contenuto di un database MySQL in un database MS SQL Server 2008.
È possibile? Qualcuno può delineare i passaggi necessari per raggiungere questo obiettivo?
Grazie.
Risposte:
Personalmente attingerei al metodo MS SQL rispetto alla spinta dal metodo MySQL. Perché? Bene, Windows ha driver ODBC MySQL a 32 e 64 bit pronti all'uso e la configurazione di un server collegato è banale. Ho molti server MySQL collegati da MS SQL. Inoltre, connettersi a MS SQL da Linux / Unix non è sempre eccezionale e di solito non si è in grado di utilizzare tutte le funzionalità. FreeTDS ha dei limiti; potresti colpirli prima o poi, quindi perché non saltarli. Tutto questo presuppone che tu stia eseguendo MySQL su * nix. In caso contrario, si avvicina un po 'di più a 50/50 ma sceglierei comunque di estrarre da MS SQL in quanto sembra che non sia il database "live", quindi caricare il carico su qualsiasi ETL o l'elaborazione è più ideale. La soluzione GoldenGate sembra interessante, ma sono sicuro che non è gratuita.
Considerando che ho impostato questo tipo di scenario con database MySQL e Oracle replicati in MS SQL, fornirò alcuni suggerimenti che hanno funzionato meglio per me:
Spero che i suggerimenti siano d'aiuto!
La stessa domanda è stata posta su StackOverflow qui: replica da MySQL a MSSQL .
Sembra che ci siano alcune soluzioni alternative, ma non una soluzione molto semplice.
Credo che dovresti assolutamente provare a creare un pacchetto SSIS per importare i dati necessari da MySQL DB a MSSQL DB. SSIS consente di importare dati da varie fonti. Quindi dovresti essere in grado di pianificare il pacchetto usando l'utilità di pianificazione di Windows o i lavori sql.
Se per replica intendi la spedizione dei log o qualcosa del genere, credo che tu sia sfortunato. Tuttavia, puoi certamente impostare un database MySQL come server collegato e creare il tuo schema di replica. La cosa più semplice è solo fare istantanee periodiche di tutte le tabelle usando le istruzioni truncate e insert. Aggiungi complessità secondo le tue esigenze.
A tale scopo, puoi utilizzare GoldenGate per MySQL e MS SQL . Dovresti semplicemente installare il prodotto GoldenGate su ciascun lato, quindi procedere come per una replica omogenea.
In alternativa, per una replica "snapshot", è possibile utilizzare uno script Python (o simile) per connettersi semplicemente a entrambe le origini dati (utilizzando UnixODBC e FreeTDS per connettersi a MS SQL), scorrere le tabelle eseguendo SELECTsu un lato, per ogni riga INSERTdall'altra. Poiché MSSQL ha transazioni ed è il tuo obiettivo, puoi avviare una transazione, DELETEtutto da tutte le tabelle, fare la copia, quindi COMMITe apparirà istantaneamente per quanto riguarda gli utenti connessi sulla destinazione, non ci saranno incoerenze (a meno che non esistano sulla fonte ovviamente).