Skip to main content

Migrando a Mysql

Submitted by drw on
Este articulo me pareció muy interesante para cuando queremos migrar desde una base de datos pagada empresarial a mysql ya sea por ahorrarnos costos o por migrar los datos de un sistema a otro. Habla sobre las herramientas que podemos utilizar para poder realizar este proceso de migración con el menor riesgo posible. La url es: http://dev.mysql.com/tech-resources/articles/migration-software.html Pero como esta en ingles me he dado el trabajo de traducirlo para que pueda ayudar a los que no dominan mucho el idioma ingles. -- Para una migración exitosa de bases de datos empresariales corriendo en Oracle, SQL Server, Informix y Sybase a MySQL, tienes que elegir herramientas que automaticen el proceso de migración y evite riesgos y costos ocultos asociados con conversión parcial.

Introducción

Las ultimas versiones de MySQL a incrementado el rango a aplicaciones empresariales que pueden beneficiarse del alto desempeño, confiabilidad, seguridad, escalabilidad y reducción de costos ofrecidos por este servidor de base de datos. Eso es porque mas y mas companias hoy consideran cambiar su misión critica de DB empresariales corriendo en Oracle, Microsoft SQL Server, Sybase e Informix a MySQL. Sin embargo la migración de base de datos es un gran desafió a los profesionales de IT porque involucra un multitud de problemas de conversión causados por las considerables incompatibilidades entre la principal DB y la necesidad de preservar las propiedades de ejecución de las aplicaciones de DB existentes. Los especialistas de IT a menudo desestiman la complejidad de la conversión de DB y no toman en cuenta todas las dificultades que envueltas en este proceso. Como resultado, usan herramientas que aseguran la conversión parcial y tienen que tratar con las tareas principales manualmente. Pero debido al largo numero de objetos (tablas, procedimientos, etc) en base de datos empresariales, el manejo manual de cualquier problema inesperado aparece en el transcurso del proyecto puede llevar a demorar y dramáticamente arriesgar el costo de migración. El propósito de este articulo es describir los problemas y tareas envueltas en la migración de bases de datos empresariales a MySQL, y ayudar a profesionales a elegir las herramientas que aseguren el mas compresivo y apropiada conversión y hacer posible completar el proyecto de migración en tiempo y presupuesto.

Requerimientos en la Migración de Bases de datos Empresariales

Además de las significativas diferencias entre la sintaxis SQL y la funcionalidad de diferentes sistemas manejadores de bases de datos, toma en cuenta los siguientes factores que influencian la complejidad de la migración de bases de datos enterprise y la elección de métodos y herramientas.

Conversión de bases de datos y aplicaciones - No solo transferir datos

Las clases de sistemas manejadores de bases de datos como Oracle, SQL Server y otros provee gran funcionalidad para el desarrollo de aplicaciones. Son herméticamente limitadas con aplicaciones base de datos implementa una significante parte de lógica de negocios y reglas, mejorando el desempeño, seguridad y modularidad de aplicaciones criticas. Por esta razón, la migración de bases de datos no debe ser considerada meramente como transferir datos. También involucra la conversión de esquema de base de datos (tablas y definición de vistas, integridad de relaciones, etc) y lógica de negocios del servidor (procedimientos almacenados y funciones). Todas estas características de bases de datos y objetos de bases de datos son importantes para aplicaciones que deben ser convertidas para preservar aplicaciones ? comportamiento y funcionalidad.

Gran número de objetos de bases de datos — Costo de Esfuerzo manual

Las bases de datos corporativas contienen de cientos a miles de objetos de bases de datos (tablas, vistas, procedimientos, etc). Debido a este gran número de objetos y la variedad de características usadas, una herramienta de migración debe resolver tantas tareas de conversión como sea posible. Manual se corrige un par de menores dificultades, involucra muchos objetos y por eso viene el consumo extremado de tiempo y costo. Otro problema es la gran interdependencia de los objetos de la DB. Casi todos los procedimientos hacen referencia a tablas, vistas y otros procedimientos y las dependencias deben ser mantenidas en el curso de conversión. Por ejemplo, si el identificador origen (nombre de la tabla o columna, etc) es una palabra reservada en MySQL, debe ser encerrada en caracteres especiales o cambiado cuando se migre a MySQL. Esta modificación debe también ser hecha en todas las vistas, procedimientos y aplicaciones que a la que se refiere este identificador.

Gran volumen de datos

Base de datos empresariales usualmente almacenan gran volumen de datos. Debido a este transferencia de datos a MySQL puede tomar variar docenas de horas, dependiendo del método elegido para importar los datos. La diferencia de tiempo en este caso es considerable ye importante al usar la mas apropiada herramienta para transferir datos tan rápido como sea posible.

Requerimientos para Migración de Software

Tomando en cuenta las especificaciones de las DB empresariales y las aplicaciones descritas anteriormente, podemos definir los particulares requerimientos para la migración de software debido para automatizar mas las tareas de conversión y evitar el esfuerzo manual.

Solución compresiva e integrada

La migración de software convertiría solo datos, pero también el esquema y lógica de negocios de la DB (procedimientos almacenados e.g.). Este software debe apoyar la conversión de datos incluyendo columnas LOB (imágenes, video, etc), definición de tablas incluyendo tipo de datos, NULL e identificando propiedades, valores por defecto, claves primarias y foráneas, relaciones únicas, vistas, procedimientos almacenados y funciones. Son la diferencias de la sintaxis SQL, el software debe también resolver problemas específicos como palabras reservadas y conflicto de identificadores. Cada DB tiene una lista de palabras reservadas que no se permite usar como identificadores sin comillas. Los problemas se presentan cuando un identificador no es un palabra reservada en la DB fuente, pero es una palabra reservada en MySQL. Por ejemplo, LIMIT no es una palabra reservada en Oracle, pero lo es en MySQL. Mientras convertimos a MySQL, los identificadores deben estar en comillas o cambiados donde sean usados (en vistas, procedimientos almacenados etc.). La herramienta también debe prevenir la sintaxis MySQL tan bien como los requerimientos necesarios para generar los índices para claves foráneas en tablas hijo no requeridas en otras DB. La herramienta de migración debe estar integrada al automáticamente mantener cambios en los objetos de la DB relacionados. Por ejemplo, si cualquier cambio es hecho a la tabla este debe reflejarse automáticamente en todos los objetos dependientes (vistas, procedimientos almacenados) que se refieren a esta tabla. Si la migración de software no conoce estos requerimientos y convierte solamente los datos e.g., debes realizar una conversión manual o generar una migración mas complicada combinando varias herramientas. En ultimo caso herramientas diferentes de ser integradas, cualquier cambio hecho en la DB en una herramienta no son consideradas en las otras.

Solución flexible provee reglas globales

Generalmente, no requiere considerablemente transformar la estructura DB y los datos durante la conversión desde la consecuente necesidad de re-escribir la aplicación esto haría la migración muy costosa. En muchos casos, la DB migrada no son modificadas preservando la funcionalidad de las aplicaciones. Aun, renunciar a menudo puedes requerir un cambio imperceptible del esquema de la DB o setear especificas opciones al encontrar nuevos requerimientos de aplicaciones. Por ejemplo, puedes requerir cambiar el tipo de dato mapeado entre le BD fuente y MySQL o especificando el tipo de tabla InnoDB para apoyar las claves foráneas e incluirlas. Puedes también querer especificar reglas para convertir los identificadores que son palabras reservadas o contienen caracteres especiales. Por defecto como identificadores son encerrados con caracteres comillas (backtick in MySQL), pero es inusual e inconveniente para desarrolladores usar identificadores con comillas cuando escribes consultas SQL o procedimientos, y puedes querer cambiar identificadores para evitar comillas obligadas. Finalmente, la migración de software de DB debería ser suficientemente flexible de permitirte desarrollar cualquier cambio requerido y definir varias configuraciones. Además ser capaz de cambiar todos los objetos individualmente, la herramienta debe también ofrecerte una forma global de setear opciones o reglas efectivas para todos los objetos. De otra manera puede consumir mucho tiempo setear las mismas opciones para múltiples objetos

Facilitando la conversión de aplicaciones

Muy frecuentemente las aplicaciones deben ser modificadas despues de la conversión de DB. Usualmente estas modificaciones no afectan la estructura de la aplicación y es requerido el cambio nativa de expresiones SQL, tomando en cuenta los cambios hechos e la DB (identificadores, tipos de datos etc.) tanto como resolver posibles interfaces incompatibles entre la aplicación y la DB MySQL. Es importante para la migración de software proveer un reporte de todos los cambios hechos en la DB durante la conversión. No es necesario reportar todas los objetos de la DB y columnas su información puede ser obtenida de cualquier herramienta para manejar la DB y permitir análisis de cambios que afecten la ejecución de la aplicación y requiere modificación. La migración de software debe facilitar la migración de aplicaciones y proveer utilidades para convertir expresiones SQL y resolver otros problemas de conversión.

Alto desempeño

Desde que las DB empresariales almacenan gran volumen de datos, toma mucho tiempo transferir datos desde la DB origen a MySQL. Por esta razón es importante que la migración de software provea el método mas rápido de importar datos a MySQL. Como Oracle o IBM DB2, MySQL ofrecen herramienta de alto desempeño que es especialmente eficiente para cargar gran volumen de datos. El comando de MySQL LOAD DATA INFILE es usualmente 20 veces mas rápido que la importación de los mismo datos con la ayuda de expresiones SQL INSERT (Para mayor información mira el capitulo en la documentación de MySQL "MySQL Optimization" ). La migración de software debe ofrecer una opción para migrar datos con la ayuda de LOAD DATA INFILE para reducir el tiempo de transferencia (que puede tomar varias horas usando un comando de alto-desempeño). Transfiriendo datos usando la interface ODBC y expresiones INSERT de SQL puede ser inaceptable para DB empresariales. Para incrementar el desempeño de importación de datos, la conversión de software debe permitir crear integridad de relaciones e índices después importar datos.

Personalización de servicios en la migración de software

En general la migración de DB es muy complejo emprendiemiento al automatizar 100% para todas las posibles DB y aplicaciones. No obstante, cada DB y aplicación provista usa un limitado conjunto de características, la presente disponibilidad de herramientas de migración pueden automatizar la conversión de algo mas del 95% de ellas. Como se describe anteriormente, debido al gran número de objetos y el uso de características inconvertibles en la mayoría de los objetos, cualquier manual fortalece la migración de mas del 5% de lo que es realmente después de que la automática conversión incrementa el   total del costo y tiempo del proyecto de gran manera. Por esta razón, es muy importante que el vendedor del software de migración provea servicios de corte rapido de software al proyecto particular necesita y evitar esfuerzo manual.

Resumen de herramientas de migración para MySQL

Actualmente hay varias herramientas en el mercado que pueden convertir bases de datos privadas a MySQL.

Ispirer SQLWays

SQLWays es el mas comprensiva herramienta de migración para MySQL. Convierte datos, esquema de base de datos(tablas y definición de vistas, tipo de datos, claves primarias y foráneas, relaciones únicas, identificación y propiedades NULL, valores por defecto, comentarios) y lógica de negocios (procedimientos almacenados y funciones) desde Oracle, SQL Server, Sybase, IBM DB2 e Informix a MySQL. SQLWays es un software de migración especializado, flexible y efectivo para uso de varios proyectos de conversión. La herramienta te permite redefinir tipo de datos mapeados globalmente y para cada tabla, elige el tipo de datos para almacenar datos (InnoDB e.g.) y especifica otras opciones. SQLWays automáticamente resuelve conflicto de identificadores y palabras reservadas. En adelante casos tambien cuando el usuario modifica objetos de la DB, la herramienta refleja todos los cambios en las tablas dependientes, vistas, procediemientos almacenados etc. SQLWays exporta la DB origen a scripts SQL, puedes extender el proceso de migración  usando terceras partes en herramientas o lenguajes de scripts (Perl e,g.). SQLWays crea reporte en modificaciones realizadas durante la conversión y facilita la conversión de aplicaciones. Como las herramientas de migración dadas por Oracle e IBM para sus bases de datos, SQLWays utiliza el proceso export/import para migración de DB privadas, e internamente usa el alto desempeño del comando de MySQL LOAD DATA INFILE al dar la rapida importación de datos a MySQL. Para mayor información acerca de SQLWays, mira http://www.ispirer.com

Embarcadero DT/Studio

DT/Studio is a high-performance ETL tool (Extraction, Transformation and Loading) that can be used for transferring data from various databases to MySQL. DT/Studio es pretendido para usar datos en proyectos warehouse y el enfoque en transferencia de datos y transformación. Pero desde que  DT/Studio tiene modelado de datos y capacidad de ingeniería inversa, también te permite convertir el esquema de BD a MySQL. No es tipico para proyectos de migración, DT/Studio es altamente efectivo si necesitas re-diseñar la estructura de la DB y transformar datos durante el proceso de conversión, provee muchas características de transformación y funciones. DT/Studio no apoya la conversión de lógica de negocios del lado del servidor (procedimientos almacenados y funciones, etc) y aplicaciones a MySQL. Para mayor información acerca de DT/Studio, mira http://www.embarcadero.com/products/dtstudio/

Microsoft DTS

Microsoft DTS is an ETL tool (Extraction, Transformation and Loading) that can be used to transferring data from various databases to MySQL. DTS is also mostly focused on data transfer and transformation and allows you specifying data transformations using Visual Basic scripts. DTS allows you to redefine data types for each table, modify table and column names and specify CREATE TABLE statements for tables. You have to set options for each table individually; DTS does not provide options affective for all converted tables. DTS provides limited capabilities for the schema conversion. It does not support primary and foreign keys, unique constraints, default values and identity columns. DTS does not convert views and stored procedures to MySQL. Para mayor información acerca de DTS, mira http://www.microsoft.com/sql

Conclusion

You have to thoroughly assess the requirements of your migration project and choose the most appropriate tool that will cover all the conversion issues and eliminate the risks and hidden costs associated with partial conversion. While converting enterprise databases to MySQL, you should reduce the manual effort to the greatest possible extent; otherwise the migration project may be very time consuming and incur unexpected additional costs.
Secciones

Contenido Relacionado

Sun cerrará el código de MySQL

Sun cerrará el código de MySQL

Tips para consultas MySQL

Tips para consultas MySQL