Migrar esquema/estructura y data MySQL a SQL Server

Ohaio coders!

En esta entrada haremos un pequeño, básico y específico resumen del proceso para migrar data de MySQL a MSSQL Server.

Este es un proceso delicado pero fácil. La primera vez que lo necesité fue con una aplicación en producción en lenguaje Java que iba a ser migrada hacia MSSQL Server 2008 por temas de rendimiento y que para hacerlo fueron unos dos días documentándome, leyendo y asimilando detalle por detalle ya que no podía haber fallos. Al final de cuenta fue un poco exagerado de mi parte ya que es muy intuitivo el proceso.

Necesitarán:

Guía SSMA para MySQL

Instalador SSMA MySQL (gracias a A. Pacheco)

MySQL Connector ODBC

En lo siguiente nos referiremos al SSMA como “el Asistente”.

Inicio:

Lo primero es instalar el Asistente de Migración, el link de más arriba los llevará al directorio principal.

Entrarán a la sección principal de la documentación donde se ve la información detalla y por módulos.

Luego de instalado todo, ejecutamos el SSMA (Todos los Programas > Microsoft SQL Server Migration Assistant for MySQL). Abrirá un pequeño cuadro de diálogo preguntando nombre de proyecto y motor de datos destino, solamente deben seleccionar su motor de datos destino.

En la ventana principal irán a Connect to MySql donde se mostrará un cuadro de diálogo, si instalaron correctamente el ODBC, debe de mostrarse seleccionado por default y sólo procederemos a ingresar los datos de nuestra conexión.

Podremos visualizar el esquema de la base de datos en la ventana anidada del lado izquierdo superior. Procedemos con clickear el botón Connect to SQL Server e ingresamos la información.

Ya después de conectados a los dos motores de base de datos inician con el proceso de selección de las tablas, elementos y objetos que serán del motor origen (MySQL) y terminan creando el esquema.

Noten que mientras crean el esquema pueden ver la futura y posible declaración y scripts que crearán las tablas MSSQL Server por lo que pueden modificarlos. Hago la aclaración ya que puede darse la situación que el tipo seleccionado por el Asistente no sea el deseado en MSSQL Server. Otra punto también es el collation de las tablas, puede ser un dolor de cabeza cuando te das cuenta que en MSSQL Server estás perdiendo los acentos, ñ, y caracteres especiales.

Finalizada la conversión, se procede con lo principal y más desea, migrar la data. Para esto preferiblemente creen un reporte. Así, conocerán posibles incidencias a ocurrir durante el proceso y puede resultar muy certero (muy).

Si reciben un error parecido a “SSMA Data Migration components were not found on SQL Server, server-side data migration will not be possible. Please check if Extension Pack is installed correctly” es que NO instalaron el Extension Pack de SSMA.

Al Fin…

… del proceso solamente nos queda hacer quizás unos ajustes en cuanto a campos y su tipo de valor. A continuación algunas notas a tener en cuenta para revisiones post-migración.

Recordar que los procedimientos fueron creados en MySQL, por lo que puede que el Asistente tenga incidencias en la conversiones de estos. Deben revisarlos, modificarlos y revisar las incongruencias.

Deben revisar los Primary Key, los Identity. Puede darse el caso que los campos no se creen como PK ni Identity y luego vienen los errores, data corrompida y luego de mucho buscar, pues dan con esto. Aclaro para no recibir culpa, estoy bastante lejos para ser encontrado >_<

Algo muy importante también son los campos ‘bit’ de MySQL, la conversión en un 90% de los casos los convierte por lo que en algunos casos (como el mío consumiendo desde Java) puede resultar en un Exception. Para migrar la data (teniendo ya el esquema y tabla creada) yo editaba el tipo de dato a ‘binary(1)’ ya que puede resultar en error. Al terminar la conversión se edita entonces manualmente el diseño de las tablas cambiando el tipo de valor a ‘bit’ nuevamente. Es decir, mis campos bit en MSSQL Server, se vuelven binary(1) para la migración y luego nuevamente bit.

Como bien dije al inicio no pretendía un tutorial si no más bien una ayuda adicional. Tampoco es que necesitan leer toooda la documentación, las aplicaciones de hoy en día todavía funcionan bajo el sentido común.

Por cuestiones de práctica háganlo un par de veces: crean esquema, migran data, eliminan base de datos, crean esquema, migran.. (bis). Se aprenderán el proceso.

Anuncios

2 comentarios en “Migrar esquema/estructura y data MySQL a SQL Server

  1. Angel Pacheco dijo:

    Gracias por el aporte. Solo una observación, si alguien busca descargar el paquete de instalación de SSMA de migración para MySQL será mejor que lo hagan desde este sitio:
    http://www.microsoft.com/en-us/download/confirmation.aspx?id=42657
    La referencia que has colocado al comienzo del articulo, lleva bien al sitio de soporte de Microsoft pero en esa página, la liga al paquete del instalador ahora apunta a otro sitio de Microsoft 😦

¿Quieres agregar algo?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s