Migración de Oracle a PostgreSQL … Migración de Oracle a PostgreSQL …hacia la independencia tecnológica Prof. José Tomás Cadenas, PhD jtcadenas@usb.ve Prof. Josué Ramírez, MSc ramirezjosue@usb.ve Departamento de Computación y Tecnología de Información Universidad Simón Bolívar Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … Agenda 1. Introducción 2. Comparativa Oracle vs PostgreSQL 3. Oportunidades para la migración 4. Dificultades para la migración 5. Estrategias de migración 6. Conclusiones Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 1. Introducción: Hi. I was promoting PostgreSQL to an AIX/Oracle shop yesterday, they are looking to switch to open source to cut their licensing costs, and was asked how large a database does PostgreSQL support? Is there an upper bound on database size and if so, what it is? Aleksey Tsalolikhin (17/04/2013) Well, anything over hundreds of gigabytes is going to require tuning, and above a terabyte is going to require partitioning. There isn't a hard limit, but we don't see many serves over tens of terabytes. Bruce Momjian - EnterpriseDB Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 1. Introducción: “¿Cuál es la BD más segura?" “PostgreSQL es posiblemente la BD más consciente de la seguridad disponible…". David Litchfield et al. (2005) “The database Hacker's Handbook: Defending Database Servers“ RDBMS examinados: Oracle, DB2, Informix, Sybase ASE, MySQL y SQL Server Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 1. Introducción: PostgreSQL es un software de fuente abierta, flexible y con una gran comunidad de soporte. Diversas compañías ofrecen soporte comercial. Algunas organizaciones reconocidas que usan PostgreSQL: • Yahoo! - versión modificada de PostgreSQL para una base de datos considerada en 2008 como la más grande en el mundo • MySpace, Hi5 - Red Social • Skype – Telefonía, Videoconferencia • Sony - Plataforma de juegos en línea Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 1. Introducción: Sitios web importantes que usan alternativas a Oracle • Google: BigTable sistema propietario (No SQL) • Facebook: Cassandra, fuente abierta que proviene de BigTable (No SQL) • Youtube: BigTable (No SQL) • Yahoo!: PostgreSQL • Wikipedia: MySQL • Twitter: MySQL y Cassandra (No SQL) Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 2. Comparativa Oracle vs PostgreSQL Criterio Oracle PostgreSQL Sistema operativo del Servidor HP-UX Linux OS X Solaris Windows z/OS AIX HP-UX Linux OS X Solaris Windows JDBC ODBC ODP.NET Oracle Call Interface (OCI) JDBC ODBC APIs y métodos de acceso Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes FreeBSD NetBSD OpenBSD Unix native C library streaming API for large objects ADO.NET Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 2. Comparativa Oracle vs PostgreSQL Criterio Oracle PostgreSQL Control de Acceso Brute-force Protection Enterprise Directory Compatibility Native Network Encryption Password Complexity Rules Resource Limit Security Certification Audit Brute-force Protection Enterprise Directory Compatibility Native Network Encryption Password Complexity Rules Resource Limit Security Certification Patch Access Run Unprivileged Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 2. Comparativa Oracle vs PostgreSQL Criterio Oracle PostgreSQL Tamaño de una base de datos Tamaño de una tabla Tamaño de una fila Tamaño de un campo Número de filas en una tabla Número de columnas en una tabla Número de índices en una tabla Ilimitada (según espacio en disco) 4 GB 8 KB 4000 bytes Ilimitada (según espacio disco) 1000 Ilimitada (según espacio disco) 32 Terabytes 1,6 Terabytes 1 Gigabyte Ilimitada (según espacio disco) 250 - 1600 dependiendo de los tipos de datos Ilimitada (según espacio disco) Ilimitada (según espacio disco) Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 3. Oportunidades para la migración • PostgreSQL no tiene costo de adquisición Oracle tiene costo de adquisición, de soporte y cada función adicional se adquiere a un alto costo • PostgreSQL ofrece escalabilidad equiparable a Oracle • PostgreSQL constantemente ofrece nuevas características y actualizaciones mas rápidamente que Oracle Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 3. Oportunidades para la migración • PostgreSQL posee buena documentación en línea • Amplia comunidad de soporte y en caso de ser requerido hay compañías que ofrecen soporte especializado • Existen herramientas automáticas de migración de la BD: Ora2pg (Libre) (http://ora2pg.darold.net/), Kettle, etc. • PostgreSQL es un sistema maduro desarrollado para satisfacer las necesidades de organizaciones medianas y de gran tamaño Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 3. Oportunidades para la migración Algunas experiencias exitosas en Venezuela • Jeselys Hernández, especialista de Aplicaciones Internas de Movilnet: en dos meses lograron migrar de forma exitosa la base de datos que maneja información de clientes CDMA 1X. • En el caso del Ministerio del Poder Popular para Transporte y Comunicaciones (MPPTC): migración Oracle a PostgreSQL de la base de datos de Recursos Humanos, (nómina, pólizas de seguro, beneficios, entre otros servicios). • En el ámbito académico: software SQLfi Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 4. Dificultades para la migración • Grado de dependencia de licencias con Oracle: ¿Sólo DBMS o incluyen paquete de aplicaciones de Oracle? Oracle vende a los clientes aplicaciones enteras , no sólo las bases de datos Aplicaciones deben ser utilizadas con bases de datos Oracle • Algunas diferencias de sintaxis entre los lenguajes procedimentales PL/SQL de Oracle y PL/pgSQL de PostgreSQL • No todo se puede migrar en forma automática, hay que hacer reescritura de código Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Análisis Previo • Indicadores (> umbral : es una base de datos grande) No es lo mismo una base de datos de 1000 registros que una de 1012 registros. Esta última tendrá más exigencias en rendimiento. Umbral: 10^9. SELECT sum (num_rows) from dba_tables where OWNER = 'SCHEMA_NAME'; Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Análisis Previo • Indicadores (> umbral : es una base de datos grande) Un indicador de la complejidad puede obtenerse del número de atributos de las tablas. Ejemplo: máximo número de columnas en una tabla, el mínimo , la media y la desviación típica. Umbral: 10.000 SELECT COUNT(ATC.COLUMN_NAME) FROM ALL_TAB_COLUMNS ATC, ALL_TABLES AT WHERE ATC.TABLE_NAME = AT.TABLE_NAME AND AT.OWNER = 'SCHEMA_NAME' AND ATC.OWNER = 'SCHEMA_NAME'; Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Análisis Previo • Indicadores (> umbral : es una base de datos grande) Número de claves foráneas. Umbral: 500 SELECT AC.CONSTRAINT_TYPE,count(*) FROM ALL_CONSTRAINTS AC, ALL_TABLES ALT WHERE AC.TABLE_NAME = ALT.TABLE_NAME AND ALT.OWNER = 'SCHEMA_NAME' AND AC.OWNER = 'SCHEMA_NAME' GROUP BY AC.CONSTRAINT_TYPE; Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Análisis Previo • Indicadores: Hay una serie de objetos en una base de datos Oracle cuya conversión a PostgreSQL es compleja y, si son demasiados, el esfuerzo de migración puede ser excesivo Umbral: 50 elementos de algunos de los tipos de objetos que no tienen traducción sencilla. SELECT owner,object_type,count(*) FROM dba_objects WHERE owner = 'SCHEMA_NAME' GROUP BY owner,object_type ORDER BY 1,2,3; Tipos de objetos con traducción sencilla son: TABLE, INDEX, SEQUENCE, VIEW, SYNONYM, TRIGGER. Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Análisis Previo • Indicadores: Tamaño de la aplicación – BD pequeña (poco compleja) = da servicio a un aplicación simple – BD de complejidad media = una aplicación mediana … – Un caso de uso = en promedio 4 elementos de la base de datos – Elementos: tablas, índices, disparadores, relaciones ... – Umbral: +100 casos de uso (400 elementos en la base de datos) APLICACIÓN GRANDE Y DE COMPLEJIDAD ALTA Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. . Estrategia de Migración: Análisis Previo • Indicadores: Otros aspectos a evaluar: – – – – – – – Cantidad y tipo de SQL propietario que se use Calidad de los datos Existencia de documentación del sistema Requisitos de diseño: alta disponibilidad y replicación Software de terceros (dependencias) Cualificación y experiencia del personal involucrado en la migración Disponibilidad de un equipo dedicado para el desarrollo de la migración Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Análisis del Sistema • Luego de análisis previo y decisión de continuar la migración Elaboración de los planes de migración Estimar el esfuerzo asociado y planificar las actividades Funciones que se utilizan, qué tipo de triggers, qué tipo de elementos de DML, qué elementos de PL/SQL se usan en los procedimientos almacenados • Evaluar aspectos relacionados con Arquitectura y soporte de la aplicación origen y con la migración en lugar de ver la composición de la base de datos Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Análisis de la Migración • Identificar cambios específicos para transformar cada elemento de la base de datos Oracle en un elemento de PostgreSQL que funcione de la misma manera • Identificar los cambios a realizar en el código de la aplicación para que funcione sobre una base de datos PostgreSQL Ejemplo: Cambios en aplicaciones desarrolladas en Java ó PHP la migración Oracle a PostgreSQL no afecte Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Plan de Formación • Detección de necesidades formativas Identificar las carencias de formación de los actores a cargo de la migración (equipos de soporte y desarrollo de la aplicación, usuarios, DBA). • Oportunidad Diplomado de Gestión de Base de Datos con módulo de migración Oracle a PostgreSQL (USB) Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Plan de Ejecución • Plan de Marcha atrás (volver aplicación/plataforma inicial) a dejar operativa la Respaldos Levantar plataforma original y redirigir a los clientes a dicha plataforma Ambos sistemas (original y migrado) trabajen simultáneamente • Mecanismo de escalado y manejo de problemas Contingencias ante problemas externos a la migración (personal de contacto, listas de correos, reuniones de urgencia) Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Plan de Implantación • Actores con sus suplentes y datos de contacto • Desglose de Tareas de cada paso (implementadores, probadores,..) • Duración prevista de cada paso (margen máximo de desviación,…) • Flujo de los pasos (dependencias entre tareas , posibilidad de paralelización de las mismas) • Eventos o responsable que toma la decisión de éxito de la migración o marcha atrás de la misma Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Plan de Soporte • Definir las condiciones de la asistencia a los usuarios del sistema a migrar, en caso de que éstos se encuentren con problemas tras la migración Planificación de tareas de soporte Protocolo de atención de incidencias Recepción de incidencias para una posterior clasificación Tratamiento especializado de cada incidencia Tiempos de respuesta acordes con necesidades de cada usuario Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Plan de Comunicación • Facilitar la asimilación de los cambios que se van a producir en los puestos de trabajo Información general del proceso de migración que va a sufrir la organización Calendario de migración Información sobre la asistencia a la migración (teléfonos de soporte, correos para consultas, horarios, …) Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Metodología Análisis Previo Análisis del Sistema Análisis de la Migración Plan Estratégico de Migración Soporte Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Formación Implantación Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 14. Equipo de Trabajo Responsable Técnico Responsable de Migración Responsable de Formación Responsable de Gestión del Cambio Responsable de Soporte Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … 5. Estrategia de Migración: Análisis de Riesgos • Incertidumbre: puede o no ocurrir • Pérdida: si el riesgo se convierte en realidad, ocurrirán pérdidas indeseables Estrategia Proactiva: • Se identifican los riesgos potenciales, se valora su probabilidad e impacto, y se clasifican según su importancia • Establecer un plan para gestionar el riesgo Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … Conclusiones • Personal organizado para realizar el trabajo de migración con efectividad • Comunicación con los otros participantes y usuarios debe ocurrir de modo que sean comprensibles el ámbito y los requisitos de la Migración • Seleccionar una Estrategia adecuada para el Personal y la Migración Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … Gracias … por su atención Prof. José Tomás Cadenas, PhD jtcadenas@usb.ve Prof. Josué Ramírez, MSc ramirezjosue@usb.ve Departamento de Computación y Tecnología de Información Universidad Simón Bolívar Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB Migración de Oracle a PostgreSQL … Referencias • http://db-engines.com/en/system/Oracle%3BPostgreSQL • http://www.scriptol.com/software/oracle.php • http://database-management.softwareinsider.com/compare/36-43/Oracle-vs-PostgreSQL • http://performancelabus.com/oracle-vs-postgresql-which-dbms-should-you-choose/ • http://www.cenatic.es/ Centro Nacional de Referencia de Aplicación de las Tecnologías de Información y la Comunicación basadas en Fuentes Abiertas. Proyecto estratégico del Gobierno de España. • http://wiki.cenatic.es/ • http://wiki.cenatic.es/wikiesp/index.php/Procedimiento_de_An%C3%A1lisis_y_Planificaci%C3%B3 n_de_Migraci%C3%B3n_de_Oracle_10g_R2_a_PostgreSQL_9.1.3 • http://www.cnti.gob.ve/noticias/actualidad/cnti/579-instituciones-del-estado-se-preparan-paramigrar-sus-bases-de-datos-de-oracle-a-postgresql.html Unidad Operativa ABDI-USB Aplicaciones y Bases de Datos Inteligentes Diplomado en Gestión de Bases de Datos - USB