Migración de Oracle a PostgreSQL …
Migración de Oracle a PostgreSQL
…hacia la independencia tecnológica
Prof. José Tomás Cadenas, PhD Prof. Josué Ramírez, MSc
jtcadenas@usb.ve ramirezjosue@usb.ve
Departamento de Computación y Tecnología de Información
Universidad Simón Bolívar
Unidad Operativa ABDI-USB Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 HP-UX
Linux Linux
OS X OS X
Solaris Solaris
Windows Windows
z/OS
AIX FreeBSD
NetBSD
OpenBSD
Unix
APIs y métodos de acceso JDBC JDBC
ODBC ODBC
ODP.NET
Oracle Call Interface (OCI) native C library
streaming API for large objects
ADO.NET
Unidad Operativa ABDI-USB Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Brute-force Protection
Enterprise Directory Enterprise Directory
Compatibility Compatibility
Native Network Encryption Native Network Encryption
Password Complexity Rules Password Complexity Rules
Resource Limit Resource Limit
Security Certification Security Certification
Audit
Patch Access
Run Unprivileged
Unidad Operativa ABDI-USB Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Ilimitada (según espacio en Ilimitada (según espacio
datos disco) disco)
Tamaño de una tabla 4 GB 32 Terabytes
Tamaño de una fila 8 KB 1,6 Terabytes
Tamaño de un campo 4000 bytes 1 Gigabyte
Número de filas en una Ilimitada (según espacio Ilimitada (según espacio
tabla disco) disco)
Número de columnas en 1000 250 - 1600 dependiendo de
una tabla los tipos de datos
Número de índices en una Ilimitada (según espacio Ilimitada (según espacio
tabla disco) disco)
Unidad Operativa ABDI-USB Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 a dejar operativa la
aplicación/plataforma inicial)
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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Formación Implantación
Unidad Operativa ABDI-USB Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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 Diplomado en
Aplicaciones y Bases de Datos Inteligentes Gestión de Bases de Datos - USB
Migración de Oracle a PostgreSQL …
Gracias
… por su atención
Prof. José Tomás Cadenas, PhD Prof. Josué Ramírez, MSc
jtcadenas@usb.ve ramirezjosue@usb.ve
Departamento de Computación y Tecnología de Información
Universidad Simón Bolívar
Unidad Operativa ABDI-USB Diplomado en
Aplicaciones y Bases de Datos Inteligentes 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-para-
migrar-sus-bases-de-datos-de-oracle-a-postgresql.html
Unidad Operativa ABDI-USB Diplomado en
Aplicaciones y Bases de Datos Inteligentes Gestión de Bases de Datos - USB