Quiero replicar el contenido de una base de datos MySQL a una base de datos MS SQL Server 2008.
es posible? ¿Alguien puede describir los pasos necesarios para lograr esto?
Gracias.
fuente
Quiero replicar el contenido de una base de datos MySQL a una base de datos MS SQL Server 2008.
es posible? ¿Alguien puede describir los pasos necesarios para lograr esto?
Gracias.
Personalmente, me acercaría al método MS SQL frente al empuje del método MySQL. ¿Por qué? Bueno, Windows tiene controladores ODBC MySQL de 32 bits y 64 bits listos para usar y la configuración de un servidor vinculado es trivial. Tengo muchos servidores MySQL vinculados desde MS SQL. Además, conectarse a MS SQL desde Linux / Unix no siempre es excelente y, por lo general, no puede usar todas las funciones. FreeTDS tiene limitaciones; puede golpearlos más temprano que tarde, así que ¿por qué no simplemente omitirlo? Todo esto supone que está ejecutando MySQL en * nix. Si no, se acerca un poco a 50/50, pero aún así elegiría sacar de MS SQL, ya que parece que no es la base de datos "en vivo", por lo que poner la carga sobre cualquier ETL o procesamiento es más ideal. La solución GoldenGate suena interesante, pero estoy seguro de que no es gratuita.
Teniendo en cuenta que he configurado este tipo de escenario con las bases de datos MySQL y Oracle que se replican en MS SQL, proporcionaré algunos consejos que me han funcionado mejor:
Espero que los consejos ayuden!
La misma pregunta se abordó en StackOverflow aquí: replicación de MySQL a MSSQL .
Parece que hay algunas soluciones, pero no es una solución muy fácil.
Creo que definitivamente debería intentar crear un paquete SSIS para importar los datos necesarios de MySQL DB a MSSQL DB. SSIS le permite a uno importar datos de varias fuentes. Entonces debería poder programar el paquete usando el programador de tareas de Windows o los trabajos sql.
Si por replicación te refieres al envío de registros o algo así, creo que no tienes suerte. Sin embargo, ciertamente puede configurar una base de datos MySQL como un servidor vinculado y ejecutar su propio esquema de replicación. Lo más simple es hacer instantáneas periódicas de todas las tablas usando declaraciones truncadas e insertadas. Agregue complejidad según sus requisitos.
Puede usar GoldenGate para MySQL y MS SQL para hacer esto. Simplemente instale el producto GoldenGate en cada lado, luego proceda como para una replicación homogénea.
Alternativamente, para una replicación de "instantánea", puede usar un script Python (o similar) para simplemente conectarse a ambas fuentes de datos (usando UnixODBC y FreeTDS para conectarse a MS SQL), recorrer las tablas
SELECT
en un lado, para cada filaINSERT
en el otro. Como MSSQL tiene transacciones y es su objetivo, puede comenzar una transacción,DELETE
todo desde todas las tablas, hacer la copia,COMMIT
y aparecerá instantáneamente en lo que respecta a los usuarios conectados en el objetivo, no habrá inconsistencias (a menos que existan) en la fuente, por supuesto).fuente