Necesita migrar SQL Server a MySQL

22

Tengo una base de datos en SQL Server 2008 en un servidor de Windows y quiero mover todos los datos a una base de datos MySQL en un servidor Ubuntu. He intentado usar el Asistente de importación y exportación de SQL Server con el controlador ODBC de MySQL, y accede correctamente a ambas bases de datos, pero los archivos xml que contienen las especificaciones para la conversión de tipos no existían y las especificaciones eran demasiado limitadas para que pudiera crearlas correctamente. ¿Alguien sabe cómo crear los archivos de conversión de tipos o dónde obtener una mejor herramienta para transferir estos datos?

murgatroid99
fuente
1
¿Has visto esta pregunta? Se trata de replicar datos de MySql a MSSQL. Tal vez encuentres algunas pistas allí.
Marian
@Marian Gracias por el enlace. Usar el servidor MySQL como un servidor vinculado en SQL Server parece ser una solución para mi problema.
murgatroid99
1
¿De cuántos datos estamos hablando? 5mb? 3 TB?
AaronJAnderson
Creo que fueron GB o 10 de GB, pero realmente no recuerdo porque esta pregunta es de hace un año y medio.
murgatroid99

Respuestas:

13

Tengo dos sugerencias:

1) Odio mostrar productos comerciales, pero hay herramientas de $ 49.00 para migrar MSSQL a MySQL

2) Pruebe los foros de migración MSSQL de MySQL para obtener más sugerencias

ACTUALIZACIÓN 2011-06-03 18:03 EDT

Hay un producto antiguo que se convirtió en EOL en enero de 2010 llamado MySQL Migration Toolkit . Si puedes conseguirlo, puedes usarlo.

ACTUALIZACIÓN 2011-06-03 18:06 EDT

Encontré los archivos !!! Aquí está el kit de herramientas de migración de MySQL

ACTUALIZACIÓN 2011-06-03 18:11 EDT

Aquí está la descripción general del kit de herramientas de migración de MySQL

ACTUALIZACIÓN 2011-06-03 19:08 EDT

Otro producto comercial ($ 29)

ACTUALIZACIÓN 2011-06-03 19:30 EDT

Aquí hay una lista de herramientas Freeware que migran MSSQL a MySQL.

ACTUALIZACIÓN 2011-06-15 17:47 EDT

Obtenga el WhitePaper (PDF) de Oracle en la Guía para migrar Microsoft SQL Server a MySQL (todavía comercial)

ACTUALIZACIÓN 2012-08-21 01:24 EDT

Según esta página web de MySQL , la sección MySQL Workbench: Database Migration Wizardafirma que MySQL Workbench tiene la capacidad de migrar objetos DB desde SQL Server a MySQL.

RolandoMySQLDBA
fuente
1
Preferiría no usar ningún producto comercial si puedo evitarlos. Intenté usar el Kit de herramientas de migración, pero creo que es incompatible con la versión más reciente de MySQL: las instrucciones de inserción SQL generadas tenían una enorme cantidad de errores de sintaxis y las tablas generadas no tenían filas después de ejecutar el asistente. Las herramientas shareware también parecen estar hechas para funcionar con versiones anteriores de MySQL. Gracias por intentarlo.
murgatroid99
4

Basado en la sugerencia de Marian, encontré esta respuesta sobre replicar en la otra dirección al configurar el servidor MySQL como un servidor vinculado en MS SQL Server. Con MySQL configurado como un servidor vinculado, puedo ejecutar consultas SQL en ambas bases de datos al mismo tiempo, lo que proporciona exactamente la funcionalidad que necesitaba para resolver este problema.

murgatroid99
fuente
3

¿Has estudiado el uso de SSIS para esta tarea? Esta es la herramienta ETL para SQL Server y tiene muchas transformaciones y lógica que podrían ayudarlo a realizar esta tarea.

SQLChicken
fuente
El asistente de importación / exportación que mencioné usando en realidad crea paquetes SSIS. El problema que tuve fue que SSIS usa archivos XML para almacenar datos sobre cómo convertir entre tipos en diferentes sistemas de administración de bases de datos, y esos archivos no existían para MySQL.
murgatroid99
3

MySQL Workbench puede hacer esto:

http://dev.mysql.com/downloads/workbench

Se puede instalar directamente en la máquina del servidor MS SQL (¡ventaja de velocidad!), Que necesita poder acceder a su servidor Ubuntu MySQL.

mit
fuente
2

Intenté el kit de herramientas de migración para importar desde el servidor SQL a MySQL. Pero los datos externos de SQLyog Import han resultado buenos. Podría programar el proceso de importación y también hacer las asignaciones necesarias para importar a una tabla existente. Descargar desde aquí .

ingrese la descripción de la imagen aquí

Jacob
fuente
SQLyog es una gran herramienta, pero la función "importar datos externos" es extremadamente lenta. Como en varios órdenes de magnitud más lento que MySQL Workbench. Deseo que los desarrolladores de SQLyog solucionen el problema, porque la interfaz es mucho más intuitiva que Workbench. Pero a menos que solo importe cientos de filas, esté preparado para esperar horas o posiblemente días para que finalice la importación.
nextgentech
2

Recientemente lancé etlalchemy para lograr esta tarea. Es una solución de código abierto que permite la migración entre 2 bases de datos SQL con 4 líneas de Python. . Los RDBMS admitidos incluyen MySQL, PostgreSQL, Oracle, SQLite y SQL Server.

Esto se encargará de la desalentadora tarea de asignar los tipos de columna de un proveedor SQL a los de otro. No solo transferirá y traducirá el esquema , sino que también migrará todos los datos, índices y restricciones a través de las bases de datos.

Instalar:

$ pip install etlalchemy

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

Correr:

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)

Para obtener más información sobre los orígenes del proyecto, consulte esta publicación. Si obtiene algún error al ejecutar la herramienta, abra un problema en el repositorio de github y lo solucionaré en menos de una semana.

El Aelfinn
fuente
0

La herramienta de migración MySQL Workbench puede ayudarlo a realizar esta tarea

1) Para iniciar el proceso de migración, en la pantalla principal de MySQL Workbench, vaya a Base de datos-> Asistente de migración.

2) Debemos verificar los requisitos previos para confirmar si podemos continuar con la tarea. Si todo se ve bien, podemos presionar en Iniciar migración.

3) En este paso, debemos proporcionar la información sobre la base de datos de origen, en este caso, SQL Server.

Configuraremos nuestro parámetro fuente:

Sistema de base de datos: Microsoft SQL Server

Método de conexión: ODBC (nativo)

Controlador: SQL Server

Servidor: localhost

Nombre de usuario: sa

4) Ahora, podemos verificar la conexión usando el botón Probar conexión.

5) Luego, necesitamos agregar los parámetros objetivo:

Método de conexión: estándar (TCP / IP)

Nombre de host: Your_host_name

Puerto: 3306

Nombre de usuario: migración

6) Y presione Test Connection para confirmar la información agregada.

7) En el siguiente paso, MySQL Workbench se conectará a nuestro SQL Server para obtener una lista de los catálogos y esquemas.

8) Ahora, elegiremos la base de datos Your_database_name de la lista.

Podemos elegir cómo se deben asignar los esquemas y el objeto de ingeniería inversa. Usaremos la opción Catalog.Schema.Table -> Catalog.Table, por lo que en nuestro MySQL, habremos seleccionado la base de datos y las tablas actuales que tenemos en nuestra base de datos de SQL Server.

9) Si todo salió bien, tendremos una lista de objetos para migrar.

10) En este caso, tenemos objetos de tabla, objetos de vista y objetos de rutina. Solo seleccionaremos los Objetos de tabla porque para el resto del objeto deberíamos verificar el código equivalente de MySQL correspondiente manualmente.

11) En este paso, los objetos de la fuente se convierten en objetos compatibles con MySQL.

12) Si todo salió bien, podemos continuar seleccionando cómo queremos crear el esquema migrado en el destino. Utilizaremos la opción predeterminada "Crear esquema en RDBMS objetivo".

13) Ahora, verifiquemos el proceso del esquema de creación.

14) En el siguiente paso, podemos verificar el resultado de la ejecución de cada script, y podemos verificar la nueva base de datos creada en nuestro servidor MySQL.

15) En este punto, tendremos la estructura de la base de datos, pero todavía no tenemos los datos. Ahora, seleccionaremos cómo queremos copiar los datos en el servidor MySQL. Utilizaremos la opción "Copia en línea de los datos de la tabla para apuntar a RDBMS".

16) En el último paso, podemos verificar el informe de migración y finalizar la tarea.

Otro método fácil de convertir un MS SQL DB a MySQL es usar la herramienta de bricolaje de Stellar llamada Stellar Converter for Database que puede elegir directamente el archivo de base de datos de una base de datos específica y proporcionar una vista previa de las tablas convertibles y después de la conversión almacenará directamente los datos en la base de datos especificada instalado en su sistema. En este caso, deberá proporcionar el archivo de base de datos MS SQL y, después de la conversión, se almacenará en la base de datos MySQL instalada en el sistema. Puede obtener una versión gratuita de este software en el sitio web oficial de Stellar .

Priyanka
fuente