SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Casos prácticos en servicios de migración
Migración de Oracle a PostgreSQL
Benito Cuesta
Junio 2014
• Objetivos
• Escenario
• Proyectos de migración
• Compatibilidad Oracle
• Estrategias de Migración
• Migración
• Herramientas (Ora2Pg)
• Caso práctico
Contenido
27/06/14 Copyright (c) Open Canarias, 2014 2
• Conocer la metodología para abordar proyectos
de migración de bbdd Oracle a PG de forma
sistemática.
• Conocer las herramientas existentes que
facilitan la migración.
• Conocer los problemas de dichas herramientas
y que requieren de intervención manual.
Objetivos
27/06/14 Copyright (c) Open Canarias, 2014 3
• Migración del SGBD Oracle a la plataforma
Enterprise DB Advanced Server
– Migración de objetos
– Migración de lógica de negocio (PL/SQL a PLpgSQL)
Escenario
27/06/14 Copyright (c) Open Canarias, 2014 4
• ¿Qué es EnterpriseDB?
PostgreSQL / EnterpriseDB
27/06/14 Copyright (c) Open Canarias, 2014 5
¿Porqué Postgres?
27/06/14 Copyright (c) Open Canarias, 2014 6
• Lógica de Negocio fuera del SGBD.
• Funcionalidad aportada por otros productos
Oracle (GoldenGate, Reports, …)
• Productos de terceros que necesitan Oracle.
¿Qué NO solucionamos con
PostgreSQL?
27/06/14 Copyright (c) Open Canarias, 2014 7
• Pasos de un proyecto de migración
– Obtención de datos del sistema actual.
– Elaboración de assessment, oferta y plan de proyecto.
– Preparación de los diferentes entornos (infraestructura)
– Migración de objetos
– Migración de datos
– Migración de código
– Adaptación de las aplicaciones
– Pruebas
– Corrección de defectos
Proyectos de migración
27/06/14 Copyright (c) Open Canarias, 2014 8
– Obtener medidas para definir la estrategia
• Cuantificación de objetos
• Identificación del uso de constraints
• Especificidades (tipos de datos de usuario, campos tipo blob, tablas
particionadas, …)
• Cuantificación de LOC
• Uso de características específicas (Spatial, XML, Text Search, …)
– Entender la arquitectura de la base de datos y su configuración
• Infraestructura actual (versiones, hardware, cpu, almacenamiento)
• Profiling (usuarios/día, transacciones/día)
• Índice de crecimiento del almacenamiento
• Configuración de alta disponibilidad (SLAs)
• Políticas y herramientas de backup
• Plataforma de aplicación
Obtención de datos del sistema actual
27/06/14 Copyright (c) Open Canarias, 2014 9
• Introducción
• Datos obtenidos Perfil de BBDD/Aplicación
• Factores de compatibilidad (Object parameters,
características, sintaxis del código, paquetes,
implementación)
• Mapa de Compatibilidad
Elaboración de Assessment (I)
27/06/14 Copyright (c) Open Canarias, 2014 10
• Estimación del tiempo según Enterprise DB
– Score 7 – 10 : 2 – 4 semanas
– Score 4 -7 : 4 – 8 semanas
– Score 0 – 4 : características no soportadas, riesgo de
pérdida de funcionalidad, estimación en tiempo
dependiendo de los problemas encontrados.
• Estimación en PoC (sólo PL/SQL): 1,5 d por
10000 LOC
Elaboración de Assessment (II)
27/06/14 Copyright (c) Open Canarias, 2014 11
• Ejemplo de cuadro de costes con Oracle
• Ejemplo de cuadro de costes con PostgreSQL
Realización de Assessment (III)
27/06/14 Copyright (c) Open Canarias, 2014 12
• Oracle Compatibility Developers’s Guide (¡680
páginas!)
– Parámetros de configuración compatibles
(edb_redwood_date, edb_redwood_strings,
oracle_home,…)
– Tipos de datos compatibles
– Funciones de sistema compatibles
– Vistas de sistema compatibles
– Lenguaje compatible
Compatibilidad Oracle (I)
27/06/14 Copyright (c) Open Canarias, 2014 13
• Ejecutar aplicaciones escritas para Oracle sin
necesidad de cambiarlas.
• Soporte para paquetes, procedimientos
almacenados, triggers y mucho más
• Soporte para OCI, PRO*C
• Sin dependencia de un proveedor
Compatibilidad Oracle (II)
27/06/14 Copyright (c) Open Canarias, 2014 14
• Soporte a SQL extendido
– Decode, NVL, Substr, NVL2
– Date/time functions: add_month, extract, next_day
• Soporte PL/SQL
– REF Cursors
– Looping
– Cursores implícitos y explícitos
– Declaración de variables
– Sentencias condicionales
– Arrays Associativos (INDEX BY)
• Herramientas
– EDB*Plus – equivalente a SQL*Plus
– EDB*Loader – equivalente a SQL*Loader
• Características
– Procedimientos almacenados
– Paquetes
– Hints
Compatibilidad Oracle (III)
27/06/14 Copyright (c) Open Canarias, 2014 15
• Características (cont)
– Database links
– Consultas jerárquicas
– Sinónimos
– Rownum
– Tipos de datos
– Control explícito de transacción
• No soportado en el interior de un procedimiento almacenado.
– Tipos objetos
• Create type … as object
• Create type … as table
• Object methods
– Bulk Binding / Fetch
– Usuarios / Roles
– SQL Dinámico
Compatibilidad Oracle (IV)
27/06/14 Copyright (c) Open Canarias, 2014 16
• Paquetes incluidos
Compatibilidad Oracle (V)
27/06/14 Copyright (c) Open Canarias, 2014 17
• Diccionario de datos equivalente
– Vistas ALL_, DBA_, USER_
• Diagnóstico – DRITA (Dynamic Runtime
Instrumentation Tools Architecture)
– System and session waits
• No expuestos en PostgreSQL
• Parte de Advanced Server
– Statspack como reporting
Compatibilidad Oracle (y VI)
27/06/14 Copyright (c) Open Canarias, 2014 18
Estrategia Beneficios
Desarrollo /
Despliegue
Aplicaciones
nuevas
• Significativo ahorro de costes para
sistemas no-críticos
• Bajo Riesgo
Despliegue de
Postgres Plus como
un Oracle
Replication Server
• Significativo ahorro de costes
• Aprovecha Postgres Plus RS
• Mejora rendimiento de consultas y
transacciones.
Migrar aplicaciones
Oracle no críticas a
Postgres
• Significativo ahorro de costes
• Bajo riesgo
Migrar aplicaciones
de misión crítica a
Postgres
• Ahorro de costes muy significativos
• Mayor flexibilidad de implementación.
Estrategias de migración
27/06/14 Copyright (c) Open Canarias, 2014 19
Recursos de EnterpriseDB
• Compatibilidad con Oracle [video]
• Estrategias de contención de coste
• Oracle Compatibility Developers’s Guide
• Oracle Migration Tutorial
• Ejemplo de Assessment.
http://www.enterprisedb.com/solutions/oracle-compatibilit
27/06/14 Copyright (c) Open Canarias, 2014 20
• Migración de esquemas
– Crear usuarios y esquemas con el mismo nombre
(search_path)
• Identificadores
– Ojo con los nombres de los esquemas, tablas,
columnas, funciones,…
– Limitar el uso de comillas en los identificadores
(posible problemas en las aplicaciones)
Migración de esquema.
Consideraciones (I)
27/06/14 Copyright (c) Open Canarias, 2014 21
• Tablas
– CREATE TABLE compatible, excepto
• Tablas temporales globales Usar LOCAL TEMP
– Clausulas de particionamiento
– Clasulas de almacenamiento INITTRANS,
MAXEXTENTS Eliminarlas
– PCTFREE : Usar fillfactor
• Columnas
– Columnas virtuales Usar vistas
– Tipos de datos
Migración de esquema.
Consideraciones (II)
27/06/14 Copyright (c) Open Canarias, 2014 22
• Constraints
– Primary Key, Foraign Key, Unique, CHECK, NOT NULL  OK
• Índices
– Btree / Descending  OK
– Reverse Key / Bitmap / Bitmap Join  No implementado
– Índices Globales  No soportado
• Particiones
– Hash, List, Range  OK (implementado con table inheritance
y rules)
• Tablespaces
– No es lo mismo que en Oracle, pero tienen el mismo
propósito.
Migración de esquema.
Consideraciones (III)
27/06/14 Copyright (c) Open Canarias, 2014 23
• Transformación de código a código debido a la
similitud entre lenguajes.
• No hay extracción de arquitectura ni de
conocimiento del sistema.
• Cuando el gap entre lenguajes es más amplio,
se han de usar otro tipo de técnicas.
Migración de código
27/06/14 Copyright (c) Open Canarias, 2014 24
• Las migraciones de Oracle a Postgres son
posibles!
• Las migraciones 100% automáticas no son
posibles (o sólo en casos muy simples)
• No hay milagros  Es necesario reescribir
código
• Herramientas:
– EDB Migration Toolkit (MTK)
– Ora2Pg
– ETL (para grandes volúmenes de datos,
campos blob,...)
Posibilidades
27/06/14 Copyright (c) Open Canarias, 2014 25
• Reescribe código de PL/SQL a PlpgSQL.
• Reemplaza expresiones.
• Elimina código sobrante.
¿Qué hace Ora2Pg con el código PL/SQL?
27/06/14 Copyright (c) Open Canarias, 2014 26
• Problemas de encoding.
– Cambiar el encoding en los ficheros SQL
SET client_encoding TO ‘ISO-8859-1’;
• Nomenclatura de objetos. Objetos con nombres
con espacios, vocales acentuadas y caracteres
especiales.
• Usar comillas dobles en el nombre de los objetos.
• Expresiones regulares de Ora2Pg no son
perfectas.
Dificultades habituales
27/06/14 Copyright (c) Open Canarias, 2014 27
CasoPráctico
Escenario Demo
27/06/14 Copyright (c) Open Canarias, 2014 29
Oracle 11g
PostgreSQL
9.3
Centos 6.5
JDBC
Export
Schema
Code
Dataora2pg
java8
Create
DB
User
pg
psql
JDBC
Gracias

Weitere ähnliche Inhalte

Was ist angesagt?

Reporting with Oracle Application Express (APEX)
Reporting with Oracle Application Express (APEX)Reporting with Oracle Application Express (APEX)
Reporting with Oracle Application Express (APEX)Dimitri Gielis
 
Cagando Datos con APEX_DATA_PARSER
Cagando Datos con APEX_DATA_PARSERCagando Datos con APEX_DATA_PARSER
Cagando Datos con APEX_DATA_PARSERRodolfoRodriguez161
 
Oracle backup and recovery basics
Oracle backup and recovery basicsOracle backup and recovery basics
Oracle backup and recovery basicsAkira Kusakabe
 
PostgreSql: Soluciones de crecimiento horizontal
PostgreSql: Soluciones de crecimiento horizontalPostgreSql: Soluciones de crecimiento horizontal
PostgreSql: Soluciones de crecimiento horizontalEQ SOFT EIRL
 
Présentation Oracle DataBase 11g
Présentation Oracle DataBase 11gPrésentation Oracle DataBase 11g
Présentation Oracle DataBase 11gCynapsys It Hotspot
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsGokhan Atil
 
OOW16 - Online Patching with Oracle E-Business Suite 12.2 [CON6710]
OOW16 - Online Patching with Oracle E-Business Suite 12.2 [CON6710]OOW16 - Online Patching with Oracle E-Business Suite 12.2 [CON6710]
OOW16 - Online Patching with Oracle E-Business Suite 12.2 [CON6710]vasuballa
 
What's new in Oracle Trace File Analyzer version 12.2.1.1.0
What's new in Oracle Trace File Analyzer version 12.2.1.1.0What's new in Oracle Trace File Analyzer version 12.2.1.1.0
What's new in Oracle Trace File Analyzer version 12.2.1.1.0Sandesh Rao
 
Oracle Fleet Patching and Provisioning Deep Dive Webcast Slides
Oracle Fleet Patching and Provisioning Deep Dive Webcast SlidesOracle Fleet Patching and Provisioning Deep Dive Webcast Slides
Oracle Fleet Patching and Provisioning Deep Dive Webcast SlidesLudovico Caldara
 
How to find what is making your Oracle database slow
How to find what is making your Oracle database slowHow to find what is making your Oracle database slow
How to find what is making your Oracle database slowSolarWinds
 
E34 : [JPOUG Presents] Oracle Database の隠されている様々な謎を解くセッション「なーんでだ?」再び @ db tec...
E34 : [JPOUG Presents] Oracle Database の隠されている様々な謎を解くセッション「なーんでだ?」再び @ db tec...E34 : [JPOUG Presents] Oracle Database の隠されている様々な謎を解くセッション「なーんでだ?」再び @ db tec...
E34 : [JPOUG Presents] Oracle Database の隠されている様々な謎を解くセッション「なーんでだ?」再び @ db tec...Hiroshi Sekiguchi
 
Oracle R12 EBS Performance Tuning
Oracle R12 EBS Performance TuningOracle R12 EBS Performance Tuning
Oracle R12 EBS Performance TuningScott Jenner
 
Automate DBA Tasks With Ansible
Automate DBA Tasks With AnsibleAutomate DBA Tasks With Ansible
Automate DBA Tasks With AnsibleIvica Arsov
 
Understanding oracle rac internals part 2 - slides
Understanding oracle rac internals   part 2 - slidesUnderstanding oracle rac internals   part 2 - slides
Understanding oracle rac internals part 2 - slidesMohamed Farouk
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLOlivier DASINI
 
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデートOracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデートオラクルエンジニア通信
 

Was ist angesagt? (20)

Reporting with Oracle Application Express (APEX)
Reporting with Oracle Application Express (APEX)Reporting with Oracle Application Express (APEX)
Reporting with Oracle Application Express (APEX)
 
Cagando Datos con APEX_DATA_PARSER
Cagando Datos con APEX_DATA_PARSERCagando Datos con APEX_DATA_PARSER
Cagando Datos con APEX_DATA_PARSER
 
Oracle backup and recovery basics
Oracle backup and recovery basicsOracle backup and recovery basics
Oracle backup and recovery basics
 
Oracle Database Vaultのご紹介
Oracle Database Vaultのご紹介Oracle Database Vaultのご紹介
Oracle Database Vaultのご紹介
 
PostgreSql: Soluciones de crecimiento horizontal
PostgreSql: Soluciones de crecimiento horizontalPostgreSql: Soluciones de crecimiento horizontal
PostgreSql: Soluciones de crecimiento horizontal
 
Présentation Oracle DataBase 11g
Présentation Oracle DataBase 11gPrésentation Oracle DataBase 11g
Présentation Oracle DataBase 11g
 
Oracle GoldenGate アーキテクチャと基本機能
Oracle GoldenGate アーキテクチャと基本機能Oracle GoldenGate アーキテクチャと基本機能
Oracle GoldenGate アーキテクチャと基本機能
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAs
 
OOW16 - Online Patching with Oracle E-Business Suite 12.2 [CON6710]
OOW16 - Online Patching with Oracle E-Business Suite 12.2 [CON6710]OOW16 - Online Patching with Oracle E-Business Suite 12.2 [CON6710]
OOW16 - Online Patching with Oracle E-Business Suite 12.2 [CON6710]
 
What's new in Oracle Trace File Analyzer version 12.2.1.1.0
What's new in Oracle Trace File Analyzer version 12.2.1.1.0What's new in Oracle Trace File Analyzer version 12.2.1.1.0
What's new in Oracle Trace File Analyzer version 12.2.1.1.0
 
Oracle Fleet Patching and Provisioning Deep Dive Webcast Slides
Oracle Fleet Patching and Provisioning Deep Dive Webcast SlidesOracle Fleet Patching and Provisioning Deep Dive Webcast Slides
Oracle Fleet Patching and Provisioning Deep Dive Webcast Slides
 
How to find what is making your Oracle database slow
How to find what is making your Oracle database slowHow to find what is making your Oracle database slow
How to find what is making your Oracle database slow
 
Oracle GoldenGate入門
Oracle GoldenGate入門Oracle GoldenGate入門
Oracle GoldenGate入門
 
E34 : [JPOUG Presents] Oracle Database の隠されている様々な謎を解くセッション「なーんでだ?」再び @ db tec...
E34 : [JPOUG Presents] Oracle Database の隠されている様々な謎を解くセッション「なーんでだ?」再び @ db tec...E34 : [JPOUG Presents] Oracle Database の隠されている様々な謎を解くセッション「なーんでだ?」再び @ db tec...
E34 : [JPOUG Presents] Oracle Database の隠されている様々な謎を解くセッション「なーんでだ?」再び @ db tec...
 
Oracle R12 EBS Performance Tuning
Oracle R12 EBS Performance TuningOracle R12 EBS Performance Tuning
Oracle R12 EBS Performance Tuning
 
Automate DBA Tasks With Ansible
Automate DBA Tasks With AnsibleAutomate DBA Tasks With Ansible
Automate DBA Tasks With Ansible
 
Enterprise manager 13c
Enterprise manager 13cEnterprise manager 13c
Enterprise manager 13c
 
Understanding oracle rac internals part 2 - slides
Understanding oracle rac internals   part 2 - slidesUnderstanding oracle rac internals   part 2 - slides
Understanding oracle rac internals part 2 - slides
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
 
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデートOracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
 

Andere mochten auch

Migración a LibreOffice
Migración a LibreOfficeMigración a LibreOffice
Migración a LibreOfficeOpen Canarias
 
Modernización Dirigida por la Arquitectura
Modernización Dirigida por la ArquitecturaModernización Dirigida por la Arquitectura
Modernización Dirigida por la ArquitecturaOpen Canarias
 
LibreOffice from Collabora
LibreOffice from CollaboraLibreOffice from Collabora
LibreOffice from CollaboraOpen Canarias
 
Migración de Base de Datos a Excel para generación de Gráficos estadísticos
Migración de Base de Datos a Excel para generación de Gráficos estadísticosMigración de Base de Datos a Excel para generación de Gráficos estadísticos
Migración de Base de Datos a Excel para generación de Gráficos estadísticosrdbartoli
 
Migración de datos a la nube: 6 estrategias para llevar datos a AWS
Migración de datos a la nube: 6 estrategias para llevar datos a AWSMigración de datos a la nube: 6 estrategias para llevar datos a AWS
Migración de datos a la nube: 6 estrategias para llevar datos a AWSAmazon Web Services LATAM
 
Metodología De Migración De Datos
Metodología De Migración De DatosMetodología De Migración De Datos
Metodología De Migración De DatosLiliana Pérez
 
Implantación SAP en Grupo de 6 sociedades
Implantación SAP en Grupo de 6 sociedadesImplantación SAP en Grupo de 6 sociedades
Implantación SAP en Grupo de 6 sociedadesLen Moreno Penna
 
Mejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de DatosMejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de DatosCarlos Gustavo Ruiz
 
Implementacion sap y_asap
Implementacion sap y_asapImplementacion sap y_asap
Implementacion sap y_asapIdelmo Reverol
 
Gobierno de TI - COBIT 5 y TOGAF
Gobierno de TI - COBIT 5 y TOGAFGobierno de TI - COBIT 5 y TOGAF
Gobierno de TI - COBIT 5 y TOGAFCarlos Francavilla
 
Presentacion power point proyecto
Presentacion power point proyectoPresentacion power point proyecto
Presentacion power point proyectoJONATHAN1016
 
Ppt test
Ppt testPpt test
Ppt testandersu
 
Ruedelafete.com magazine n°6 Anniversaire Enfant
Ruedelafete.com magazine n°6 Anniversaire EnfantRuedelafete.com magazine n°6 Anniversaire Enfant
Ruedelafete.com magazine n°6 Anniversaire EnfantAnaïs Idee de Fête
 
Guapi. información del micrositio copia
Guapi. información del micrositio   copiaGuapi. información del micrositio   copia
Guapi. información del micrositio copiamarimba de chonta
 

Andere mochten auch (20)

Migración a LibreOffice
Migración a LibreOfficeMigración a LibreOffice
Migración a LibreOffice
 
Modernización Dirigida por la Arquitectura
Modernización Dirigida por la ArquitecturaModernización Dirigida por la Arquitectura
Modernización Dirigida por la Arquitectura
 
LibreOffice from Collabora
LibreOffice from CollaboraLibreOffice from Collabora
LibreOffice from Collabora
 
Migración de Base de Datos a Excel para generación de Gráficos estadísticos
Migración de Base de Datos a Excel para generación de Gráficos estadísticosMigración de Base de Datos a Excel para generación de Gráficos estadísticos
Migración de Base de Datos a Excel para generación de Gráficos estadísticos
 
Migración de Base de Datos
Migración de Base de DatosMigración de Base de Datos
Migración de Base de Datos
 
Migración de datos a la nube: 6 estrategias para llevar datos a AWS
Migración de datos a la nube: 6 estrategias para llevar datos a AWSMigración de datos a la nube: 6 estrategias para llevar datos a AWS
Migración de datos a la nube: 6 estrategias para llevar datos a AWS
 
Metodología De Migración De Datos
Metodología De Migración De DatosMetodología De Migración De Datos
Metodología De Migración De Datos
 
Asap
AsapAsap
Asap
 
Migracion de datos
Migracion de datosMigracion de datos
Migracion de datos
 
Implantación SAP en Grupo de 6 sociedades
Implantación SAP en Grupo de 6 sociedadesImplantación SAP en Grupo de 6 sociedades
Implantación SAP en Grupo de 6 sociedades
 
Mejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de DatosMejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de Datos
 
Implementacion sap y_asap
Implementacion sap y_asapImplementacion sap y_asap
Implementacion sap y_asap
 
Gobierno de TI - COBIT 5 y TOGAF
Gobierno de TI - COBIT 5 y TOGAFGobierno de TI - COBIT 5 y TOGAF
Gobierno de TI - COBIT 5 y TOGAF
 
Февруари 2017
Февруари 2017Февруари 2017
Февруари 2017
 
Konseling f
Konseling fKonseling f
Konseling f
 
Presentacion power point proyecto
Presentacion power point proyectoPresentacion power point proyecto
Presentacion power point proyecto
 
Ppt test
Ppt testPpt test
Ppt test
 
Introducción al SQL
Introducción al SQLIntroducción al SQL
Introducción al SQL
 
Ruedelafete.com magazine n°6 Anniversaire Enfant
Ruedelafete.com magazine n°6 Anniversaire EnfantRuedelafete.com magazine n°6 Anniversaire Enfant
Ruedelafete.com magazine n°6 Anniversaire Enfant
 
Guapi. información del micrositio copia
Guapi. información del micrositio   copiaGuapi. información del micrositio   copia
Guapi. información del micrositio copia
 

Ähnlich wie Migración de Oracle a PostgreSQL

Integración de Oracle Data Integrator con Oracle GoldenGate 12c
Integración de Oracle Data Integrator  con Oracle GoldenGate 12cIntegración de Oracle Data Integrator  con Oracle GoldenGate 12c
Integración de Oracle Data Integrator con Oracle GoldenGate 12cEdelweiss Kammermann
 
Apex nuevas caracteristicas
Apex nuevas caracteristicasApex nuevas caracteristicas
Apex nuevas caracteristicasDaniel Bozzolo
 
Open platform - Conferencia Esri 2016
Open platform  - Conferencia Esri 2016Open platform  - Conferencia Esri 2016
Open platform - Conferencia Esri 2016Esri España
 
Curso Especialista en BI Analista de Informacion con MSSQLServer 2008 R2 SSAS
Curso Especialista en BI Analista de Informacion con MSSQLServer 2008 R2 SSASCurso Especialista en BI Analista de Informacion con MSSQLServer 2008 R2 SSAS
Curso Especialista en BI Analista de Informacion con MSSQLServer 2008 R2 SSASPedro Chavez
 
Experiencia de ESADE implantando ORACLE SOA Suite - Congreso CUORE Octubre 2011
Experiencia de ESADE implantando ORACLE SOA Suite - Congreso CUORE Octubre 2011Experiencia de ESADE implantando ORACLE SOA Suite - Congreso CUORE Octubre 2011
Experiencia de ESADE implantando ORACLE SOA Suite - Congreso CUORE Octubre 2011Pedro Robledo
 
Novedades SharePoint 2016. Nuevos retos en Entonos Hibridos
Novedades SharePoint 2016. Nuevos retos en Entonos HibridosNovedades SharePoint 2016. Nuevos retos en Entonos Hibridos
Novedades SharePoint 2016. Nuevos retos en Entonos HibridosGonzalo Marcos Ansoain
 
Novedades SharePoint 2016. Nuevos retos en Entonos Hibridos
Novedades SharePoint 2016. Nuevos retos en Entonos HibridosNovedades SharePoint 2016. Nuevos retos en Entonos Hibridos
Novedades SharePoint 2016. Nuevos retos en Entonos HibridosGonzalo Marcos
 
Optimizando con Open Source y Postgres en espanol
Optimizando con Open Source y Postgres en espanolOptimizando con Open Source y Postgres en espanol
Optimizando con Open Source y Postgres en espanolEDB
 
Caso Walmart y Denodo: ¿Cómo afrontar con éxito la transición a la nube de la...
Caso Walmart y Denodo: ¿Cómo afrontar con éxito la transición a la nube de la...Caso Walmart y Denodo: ¿Cómo afrontar con éxito la transición a la nube de la...
Caso Walmart y Denodo: ¿Cómo afrontar con éxito la transición a la nube de la...Denodo
 
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Socialmetrix
 
Introduccion a Data Science
Introduccion a Data ScienceIntroduccion a Data Science
Introduccion a Data ScienceSpanishPASSVC
 
¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?Socialmetrix
 
Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2
Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2
Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2LPI ONG
 
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...Christian Rodriguez
 
Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014Ruben Pertusa Lopez
 
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.EtiCAGNU
 
BI real time analytics
BI real time analyticsBI real time analytics
BI real time analyticsSolidQ
 

Ähnlich wie Migración de Oracle a PostgreSQL (20)

Integración de Oracle Data Integrator con Oracle GoldenGate 12c
Integración de Oracle Data Integrator  con Oracle GoldenGate 12cIntegración de Oracle Data Integrator  con Oracle GoldenGate 12c
Integración de Oracle Data Integrator con Oracle GoldenGate 12c
 
Apex nuevas caracteristicas
Apex nuevas caracteristicasApex nuevas caracteristicas
Apex nuevas caracteristicas
 
Open platform - Conferencia Esri 2016
Open platform  - Conferencia Esri 2016Open platform  - Conferencia Esri 2016
Open platform - Conferencia Esri 2016
 
Curso Especialista en BI Analista de Informacion con MSSQLServer 2008 R2 SSAS
Curso Especialista en BI Analista de Informacion con MSSQLServer 2008 R2 SSASCurso Especialista en BI Analista de Informacion con MSSQLServer 2008 R2 SSAS
Curso Especialista en BI Analista de Informacion con MSSQLServer 2008 R2 SSAS
 
Experiencia de ESADE implantando ORACLE SOA Suite - Congreso CUORE Octubre 2011
Experiencia de ESADE implantando ORACLE SOA Suite - Congreso CUORE Octubre 2011Experiencia de ESADE implantando ORACLE SOA Suite - Congreso CUORE Octubre 2011
Experiencia de ESADE implantando ORACLE SOA Suite - Congreso CUORE Octubre 2011
 
Novedades SharePoint 2016. Nuevos retos en Entonos Hibridos
Novedades SharePoint 2016. Nuevos retos en Entonos HibridosNovedades SharePoint 2016. Nuevos retos en Entonos Hibridos
Novedades SharePoint 2016. Nuevos retos en Entonos Hibridos
 
Novedades SharePoint 2016. Nuevos retos en Entonos Hibridos
Novedades SharePoint 2016. Nuevos retos en Entonos HibridosNovedades SharePoint 2016. Nuevos retos en Entonos Hibridos
Novedades SharePoint 2016. Nuevos retos en Entonos Hibridos
 
Optimizando con Open Source y Postgres en espanol
Optimizando con Open Source y Postgres en espanolOptimizando con Open Source y Postgres en espanol
Optimizando con Open Source y Postgres en espanol
 
Caso Walmart y Denodo: ¿Cómo afrontar con éxito la transición a la nube de la...
Caso Walmart y Denodo: ¿Cómo afrontar con éxito la transición a la nube de la...Caso Walmart y Denodo: ¿Cómo afrontar con éxito la transición a la nube de la...
Caso Walmart y Denodo: ¿Cómo afrontar con éxito la transición a la nube de la...
 
avanttic - webinar: Oracle Database 12c (24-03-2015)
avanttic - webinar: Oracle Database 12c (24-03-2015)avanttic - webinar: Oracle Database 12c (24-03-2015)
avanttic - webinar: Oracle Database 12c (24-03-2015)
 
Base De Datos
Base De DatosBase De Datos
Base De Datos
 
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
 
Webinar: Oracle Data Integrator 12c (25-02-2015)
Webinar: Oracle Data Integrator 12c (25-02-2015)Webinar: Oracle Data Integrator 12c (25-02-2015)
Webinar: Oracle Data Integrator 12c (25-02-2015)
 
Introduccion a Data Science
Introduccion a Data ScienceIntroduccion a Data Science
Introduccion a Data Science
 
¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?
 
Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2
Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2
Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2
 
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
 
Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014
 
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
 
BI real time analytics
BI real time analyticsBI real time analytics
BI real time analytics
 

Migración de Oracle a PostgreSQL

  • 1. Casos prácticos en servicios de migración Migración de Oracle a PostgreSQL Benito Cuesta Junio 2014
  • 2. • Objetivos • Escenario • Proyectos de migración • Compatibilidad Oracle • Estrategias de Migración • Migración • Herramientas (Ora2Pg) • Caso práctico Contenido 27/06/14 Copyright (c) Open Canarias, 2014 2
  • 3. • Conocer la metodología para abordar proyectos de migración de bbdd Oracle a PG de forma sistemática. • Conocer las herramientas existentes que facilitan la migración. • Conocer los problemas de dichas herramientas y que requieren de intervención manual. Objetivos 27/06/14 Copyright (c) Open Canarias, 2014 3
  • 4. • Migración del SGBD Oracle a la plataforma Enterprise DB Advanced Server – Migración de objetos – Migración de lógica de negocio (PL/SQL a PLpgSQL) Escenario 27/06/14 Copyright (c) Open Canarias, 2014 4
  • 5. • ¿Qué es EnterpriseDB? PostgreSQL / EnterpriseDB 27/06/14 Copyright (c) Open Canarias, 2014 5
  • 6. ¿Porqué Postgres? 27/06/14 Copyright (c) Open Canarias, 2014 6
  • 7. • Lógica de Negocio fuera del SGBD. • Funcionalidad aportada por otros productos Oracle (GoldenGate, Reports, …) • Productos de terceros que necesitan Oracle. ¿Qué NO solucionamos con PostgreSQL? 27/06/14 Copyright (c) Open Canarias, 2014 7
  • 8. • Pasos de un proyecto de migración – Obtención de datos del sistema actual. – Elaboración de assessment, oferta y plan de proyecto. – Preparación de los diferentes entornos (infraestructura) – Migración de objetos – Migración de datos – Migración de código – Adaptación de las aplicaciones – Pruebas – Corrección de defectos Proyectos de migración 27/06/14 Copyright (c) Open Canarias, 2014 8
  • 9. – Obtener medidas para definir la estrategia • Cuantificación de objetos • Identificación del uso de constraints • Especificidades (tipos de datos de usuario, campos tipo blob, tablas particionadas, …) • Cuantificación de LOC • Uso de características específicas (Spatial, XML, Text Search, …) – Entender la arquitectura de la base de datos y su configuración • Infraestructura actual (versiones, hardware, cpu, almacenamiento) • Profiling (usuarios/día, transacciones/día) • Índice de crecimiento del almacenamiento • Configuración de alta disponibilidad (SLAs) • Políticas y herramientas de backup • Plataforma de aplicación Obtención de datos del sistema actual 27/06/14 Copyright (c) Open Canarias, 2014 9
  • 10. • Introducción • Datos obtenidos Perfil de BBDD/Aplicación • Factores de compatibilidad (Object parameters, características, sintaxis del código, paquetes, implementación) • Mapa de Compatibilidad Elaboración de Assessment (I) 27/06/14 Copyright (c) Open Canarias, 2014 10
  • 11. • Estimación del tiempo según Enterprise DB – Score 7 – 10 : 2 – 4 semanas – Score 4 -7 : 4 – 8 semanas – Score 0 – 4 : características no soportadas, riesgo de pérdida de funcionalidad, estimación en tiempo dependiendo de los problemas encontrados. • Estimación en PoC (sólo PL/SQL): 1,5 d por 10000 LOC Elaboración de Assessment (II) 27/06/14 Copyright (c) Open Canarias, 2014 11
  • 12. • Ejemplo de cuadro de costes con Oracle • Ejemplo de cuadro de costes con PostgreSQL Realización de Assessment (III) 27/06/14 Copyright (c) Open Canarias, 2014 12
  • 13. • Oracle Compatibility Developers’s Guide (¡680 páginas!) – Parámetros de configuración compatibles (edb_redwood_date, edb_redwood_strings, oracle_home,…) – Tipos de datos compatibles – Funciones de sistema compatibles – Vistas de sistema compatibles – Lenguaje compatible Compatibilidad Oracle (I) 27/06/14 Copyright (c) Open Canarias, 2014 13
  • 14. • Ejecutar aplicaciones escritas para Oracle sin necesidad de cambiarlas. • Soporte para paquetes, procedimientos almacenados, triggers y mucho más • Soporte para OCI, PRO*C • Sin dependencia de un proveedor Compatibilidad Oracle (II) 27/06/14 Copyright (c) Open Canarias, 2014 14
  • 15. • Soporte a SQL extendido – Decode, NVL, Substr, NVL2 – Date/time functions: add_month, extract, next_day • Soporte PL/SQL – REF Cursors – Looping – Cursores implícitos y explícitos – Declaración de variables – Sentencias condicionales – Arrays Associativos (INDEX BY) • Herramientas – EDB*Plus – equivalente a SQL*Plus – EDB*Loader – equivalente a SQL*Loader • Características – Procedimientos almacenados – Paquetes – Hints Compatibilidad Oracle (III) 27/06/14 Copyright (c) Open Canarias, 2014 15
  • 16. • Características (cont) – Database links – Consultas jerárquicas – Sinónimos – Rownum – Tipos de datos – Control explícito de transacción • No soportado en el interior de un procedimiento almacenado. – Tipos objetos • Create type … as object • Create type … as table • Object methods – Bulk Binding / Fetch – Usuarios / Roles – SQL Dinámico Compatibilidad Oracle (IV) 27/06/14 Copyright (c) Open Canarias, 2014 16
  • 17. • Paquetes incluidos Compatibilidad Oracle (V) 27/06/14 Copyright (c) Open Canarias, 2014 17
  • 18. • Diccionario de datos equivalente – Vistas ALL_, DBA_, USER_ • Diagnóstico – DRITA (Dynamic Runtime Instrumentation Tools Architecture) – System and session waits • No expuestos en PostgreSQL • Parte de Advanced Server – Statspack como reporting Compatibilidad Oracle (y VI) 27/06/14 Copyright (c) Open Canarias, 2014 18
  • 19. Estrategia Beneficios Desarrollo / Despliegue Aplicaciones nuevas • Significativo ahorro de costes para sistemas no-críticos • Bajo Riesgo Despliegue de Postgres Plus como un Oracle Replication Server • Significativo ahorro de costes • Aprovecha Postgres Plus RS • Mejora rendimiento de consultas y transacciones. Migrar aplicaciones Oracle no críticas a Postgres • Significativo ahorro de costes • Bajo riesgo Migrar aplicaciones de misión crítica a Postgres • Ahorro de costes muy significativos • Mayor flexibilidad de implementación. Estrategias de migración 27/06/14 Copyright (c) Open Canarias, 2014 19
  • 20. Recursos de EnterpriseDB • Compatibilidad con Oracle [video] • Estrategias de contención de coste • Oracle Compatibility Developers’s Guide • Oracle Migration Tutorial • Ejemplo de Assessment. http://www.enterprisedb.com/solutions/oracle-compatibilit 27/06/14 Copyright (c) Open Canarias, 2014 20
  • 21. • Migración de esquemas – Crear usuarios y esquemas con el mismo nombre (search_path) • Identificadores – Ojo con los nombres de los esquemas, tablas, columnas, funciones,… – Limitar el uso de comillas en los identificadores (posible problemas en las aplicaciones) Migración de esquema. Consideraciones (I) 27/06/14 Copyright (c) Open Canarias, 2014 21
  • 22. • Tablas – CREATE TABLE compatible, excepto • Tablas temporales globales Usar LOCAL TEMP – Clausulas de particionamiento – Clasulas de almacenamiento INITTRANS, MAXEXTENTS Eliminarlas – PCTFREE : Usar fillfactor • Columnas – Columnas virtuales Usar vistas – Tipos de datos Migración de esquema. Consideraciones (II) 27/06/14 Copyright (c) Open Canarias, 2014 22
  • 23. • Constraints – Primary Key, Foraign Key, Unique, CHECK, NOT NULL  OK • Índices – Btree / Descending  OK – Reverse Key / Bitmap / Bitmap Join  No implementado – Índices Globales  No soportado • Particiones – Hash, List, Range  OK (implementado con table inheritance y rules) • Tablespaces – No es lo mismo que en Oracle, pero tienen el mismo propósito. Migración de esquema. Consideraciones (III) 27/06/14 Copyright (c) Open Canarias, 2014 23
  • 24. • Transformación de código a código debido a la similitud entre lenguajes. • No hay extracción de arquitectura ni de conocimiento del sistema. • Cuando el gap entre lenguajes es más amplio, se han de usar otro tipo de técnicas. Migración de código 27/06/14 Copyright (c) Open Canarias, 2014 24
  • 25. • Las migraciones de Oracle a Postgres son posibles! • Las migraciones 100% automáticas no son posibles (o sólo en casos muy simples) • No hay milagros  Es necesario reescribir código • Herramientas: – EDB Migration Toolkit (MTK) – Ora2Pg – ETL (para grandes volúmenes de datos, campos blob,...) Posibilidades 27/06/14 Copyright (c) Open Canarias, 2014 25
  • 26. • Reescribe código de PL/SQL a PlpgSQL. • Reemplaza expresiones. • Elimina código sobrante. ¿Qué hace Ora2Pg con el código PL/SQL? 27/06/14 Copyright (c) Open Canarias, 2014 26
  • 27. • Problemas de encoding. – Cambiar el encoding en los ficheros SQL SET client_encoding TO ‘ISO-8859-1’; • Nomenclatura de objetos. Objetos con nombres con espacios, vocales acentuadas y caracteres especiales. • Usar comillas dobles en el nombre de los objetos. • Expresiones regulares de Ora2Pg no son perfectas. Dificultades habituales 27/06/14 Copyright (c) Open Canarias, 2014 27
  • 29. Escenario Demo 27/06/14 Copyright (c) Open Canarias, 2014 29 Oracle 11g PostgreSQL 9.3 Centos 6.5 JDBC Export Schema Code Dataora2pg java8 Create DB User pg psql JDBC