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 SELECT
su un lato, per ogni riga INSERT
dall'altra. Poiché MSSQL ha transazioni ed è il tuo obiettivo, puoi avviare una transazione, DELETE
tutto da tutte le tabelle, fare la copia, quindi COMMIT
e apparirà istantaneamente per quanto riguarda gli utenti connessi sulla destinazione, non ci saranno incoerenze (a meno che non esistano sulla fonte ovviamente).