martes, agosto 13, 2013

Iseries Db2 A Mysql con Migration Toolkit

Una de las tareas recurrentes a la que nos enfrentamos quienes estamos dedicados al desarrollo de sistemas o a la administración de bases de datos es la migración de información entre difrentes o iguales SGBD.  Actualmente, cada motor de base de datos ofrece en mayor o menor medida, herramientas que facilitan estas tareas. En este artículo trataré el caso de Mysql que incluye  en su paquete de instalación un programa destinado a migrar datos desde cualquier motor que proporcione una interfaz de conexión JBDC.
Que necesitaremos?
Bueno, antes de iniciar con el proceso será necesario que tengas instalado en tu equipo lo siguiente:
  • Mysql Gui Tools.  Esto lo puedes descargar desde la página de mysql en http://www.mysql.com/
  • Mysql Migration Toolkit. Este programa está incluido en las Gui Tools y lo podrás encontrar en el menú Inicio / Programas / Mysql
  • IBM Iseries Access for Windows.  Esto lo puedes descargar de la página de IBM
  • También tendrás que tener instalado el JDK de java pues la comunicación será a través de JBDC
Para el artículo quiero suponer que ya  sabes como instalar las herramientas de conexión por lo que me enfocaré al proceso de migración.
 Lo primero que tendremos que hacer es copiar los .jar  de IBM que nos permitirán comunicarnos con Iseries. Para ello, dependiendo de tu sistema operativo, iremos a la carpeta de instalación del client access que en mi caso es:  C:\Program Files\IBM\Client Access  Luego buscaremos la ruta jt400 y entraremos a lib.  La ruta de acceso completa es: C:\Program Files\IBM\Client Access\jt400\lib. Una vez que hemos llegado a este directorio vamos a seleccionar los siguientes archivos de extensión Jar:
  • jt400.jar
  • jt400Servlet.jar
  • jui400.jar
  • uitools.jar
  • util400.jar
  • x4j400.jar
y los copiaremos al directorio Java / Lib del directorio de instalación de las Gui Tools de Mysql. En mi caso este directorio es: C:\Program Files\MySQL\MySQL Tools for 5.0\java\lib.  Muy bien, hecho lo anterior, hemos incluido el soporte para comunicarnos a Iseries Db2.
Ahora. ejecutaremos el programa “Mysql Migration ToolKit” que está en Inicio / Programas / Mysql  la pantalla inicial que veremos es la siguiente:
 


  Esta pantalla es muy importante  pues nos permite saber si el programa cuenta con los requerimientos mínimos para ejecutarse. Como podemos observar en la imagen a la izquierda, tanto el Java Loader como el entorno de ejecución deben encontrarse inicializados.
Hecho esto presionamos el botón “Next” para continuar a la pantalla “configuration type”



Aquí nos aparecerán dos opciones. Para el caso que nos ocupa seleccionaremos “Direct Migration”


Después presionaremos “Next” para continuar con el proceso.  El programa nos mostrará la pantalla “Source Database”. Es en esta pantalla donde estableceremos la configuración del origen de datos.  


Al dar click en Database System,  veremos que el programa soporta la migración por default de orígenes tan diversos como SqlServer, Oracle, Sybase, Etc. Para casos como el de DB2 que no está contemplado por defecto, tendremos que seleccionar “Generic Jdbc”.  Seleccionado esto nos aparecerá en la parte inferior de la ventana , el cuadro de configuración de la conexión.

La información que deberemos capturar es la siguiente:
  • Class Name: Es el nombre de la clase java a usar para conectarnos a Iseries. El valor a capturar es: com.ibm.as400.access.AS400JDBCDriver
  • Connection String: La cadena de conexión que se compone de jdbc:<clase>://<dsn o ip del servidor iseries>>/<instancia>;libraries:<Base de datos o schema>;socket timeout=3000000;thread used=false Quedando en mi caso de la siguiente manera: jdbc:as400://DNSNOMBSERVIDOR/NOMBLIB;libraries=MIDATABASE;socket timeout=3000000;thread used=false
  • Username: Nombre de usuario
  • Password: Password de acceso.
Como ejemplo:
  • Class Name: com.ibm.as400.access.AS400JDBCDriver
  • Connection String: jdbc: as400://192.168.200.5/SEGURI;libraries=SEGURI;socket timeout=3000000;thread used=false
  • User Name: Usuario
  • Password: Password
Ya que hemos capturado la información de conexión presionaremos “Next” para dirigirnos a la siguiente pantalla donde configuraremos la conexión al servidor de base de datos destino.

 Ya que la base de datos destino es el propio mysql, la configuración nos va a resultar familiar pues solo deberemos indicar ip del servidor, nombre de usuario y contraseña.  Presionamos ”Next” para continuar a la siguiente pantalla, donde, si hemos configurado correctamente nuestras conexiones nos mostrará la siguiente información.

 Hasta este punto solo hemos configurado la conexión entre mysql y Db2 por lo que al presionar el botón “Next” comenzaremos a configurar tanto el origen como el destino de los datos a migrar. La pantalla  que nos aparece “Source schemadata selection” nos muestra los schemas del servidor de base de datos y nos pide seleccionemos del cuál queremos migrar datos.

Seleccionamos el schema del que deseamos migrar información y presionamos siguiente.
La pantalla inicia el proceso de ingeniería inversa para obtener la información de objetos en el schema seleccionado.  Una vez que ha finalizado el análisis presionamos “Next”


En esta pantalla el programa nos muestra el total de objetos que ha encontrado en el schema seleccionado.

Si el objetivo es migrar el total de tablas encontradas da click en “Next” para continuar con el siguiente paso. De otra manera tendrás que dar click en “Detailed selection” para elegir la o tablas a migrar.

Como podemos ver en la pantalla previa, se nos muestra el contenido del schema seleccionado donde podemos elegir la tabla o tablas a migrar. Presionamos “Next” para continuar.
En esta nueva pantalla tendremos que establecer las opciones de migración tanto para el origen como para el destino. Si no tienes mucha experiencia con los Engines de mysql así como el collation te recomiendo que intentes la migración con los valores por default.




Presionamos “Next” para continuar. y el programa comenzará a generar el bloque de sentencias DDL para la migración de datos. Una vez que haya finalizado presionamos ”Next” 





Si todo es correcto, nos dará un mensaje indicándonos que el mapeo se ha realizado correctamente. Presionamos siguiente.




En esta parte del asistente podemos elegir entre crear los objetos al vuelo o, si queremos verificar la definición de nuestros campos generar el script con todo el bloque de sentencias DDL para la migración. Seleccionamos la creación OnLine y presionamos “Next”




En este momento se comenzarán a crear los objetos seleccionados para su migración. Al finalizar el proceso podremos ver el resultado. Presionamos “Next” al ver que todo va bien en este punto.

 

El programa nos confirma que todo va bien. Aquí es importante mencionar que de ocurrir algún error en la creación de los objetos, se nos mostrará los problemas al seleccionar el filtro: “Show create problems”. Presionaremos “Next”




Una vez creadas las tablas que migraremos, procederemos a definir la manera en que el contenido será transferido a mysql. Podemos, como en el caso del metadata hacerlo al vuelo u online, o generar el script de migración para su análisis y revisión. En este caso hemos elegido OnLine. Presionamos Next




Hecho lo anterior, el programa comenzará el proceso de transferencia de datos desde Iseries Db2 hasta Mysql. De ser satisfactoria la transferencia, el programa nos lo indicará con un mensaje de éxito.

Y ahora prácticamente hemos terminado con el proceso de migración desde Db2 Iseries a Mysql.  El sistema en la pantalla que le sigue a la anterior nos mostrará un resumen del proceso de migración donde además de conocer el número y tipo de objetos migrados, también podremos ver el resultado de cualquier error ocurrido durante el proceso. Aquí la pantalla de resumen y la vista de la tabla migrada a Mysql:

 





Como pueden ver, migrar información a Mysql desde DB2, Oracle, Access, Ms Sql o cualquier motor que soporte conectividad JDBC es muy sencillo.
Tomado de: Articulo original

1 comentario:

Edgar dijo...

Buen día compañero.

Solo para comentarle que he movido mi blog a:

http://edgartec.com/iseries-db2-a-mysql-con-migration-toolkit/