Migrar las funciones nativas de Oracle a PostgreSQL mediante extensiones - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Migrar las funciones nativas de Oracle a PostgreSQL mediante extensiones

Documento creado por Pinesh Singal (AWS)

Entorno: PoC o piloto

Origen: bases de datos: relacionales

Destino: Amazon RDS PostgreSQL

Tipo R: renovar arquitectura

Carga de trabajo: Oracle; código abierto

Tecnologías: migración; bases de datos

Servicios de AWS: Amazon EC2; Amazon RDS

Resumen

Este patrón de migración proporciona step-by-step orientación para migrar una base de datos de Amazon Relational Database Service (Amazon RDS) para Oracle a una base de datos de Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL Edition compatible con PostgreSQL mediante la modificación y las extensiones del código integrado nativo de PostgreSQL (). aws_oracle_ext orafce psql Esto ahorrará tiempo de procesamiento.

El patrón describe una estrategia de migración manual fuera de línea sin tiempo de inactividad para una base de datos de origen Oracle de varios terabytes con un elevado número de transacciones.

El proceso de migración utiliza la herramienta de conversión de esquemas de AWS (AWS SCT) con las extensiones aws_oracle_ext y orafce para convertir un esquema de base de datos de Amazon RDS para Oracle en un esquema de base de datos compatible con Amazon RDS para PostgreSQL o Aurora PostgreSQL. Luego, el código se cambia manualmente al código integrado de psql nativo compatible con PostgreSQL. Esto se debe a que las llamadas a la extensión afectan al procesamiento del código en el servidor de bases de datos PostgreSQL y no todo el código de la extensión es totalmente compatible o compatible con el código PostgreSQL.

Este patrón se centra principalmente en la migración manual de códigos SQL mediante AWS SCT y las extensiones aws_oracle_ext y. orafce Las extensiones que ya se utilizan se convierten en elementos integrados (psql) nativos de PostgreSQL. A continuación, se eliminan todas las referencias a las extensiones y se convierten los códigos en consecuencia.

Requisitos previos y limitaciones

Requisitos previos 

  • Una cuenta de AWS activa 

  • Sistema operativo (Windows o Mac) o instancia Amazon EC2 (en funcionamiento) 

  • Orafce

Limitaciones

No todas las funciones de Oracle que utilizan extensiones aws_oracle_ext o orafce se pueden convertir en funciones nativas de PostgreSQL. Es posible que necesite una revisión manual para poder compilarlo con las bibliotecas de PostgreSQL.

Un inconveniente del uso de extensiones SCT de AWS es su lento rendimiento a la hora de ejecutar y obtener los resultados. Su coste se puede entender a partir del simple plan EXPLAIN de PostgreSQL (plan de ejecución de una declaración) sobre la migración de la función SYSDATE Oracle a la función PostgreSQL NOW() entre los tres códigos (aws_oracle_ext, orafce y psql por defecto), como se explica en la sección de comprobación comparativa del rendimiento del documento adjunto.

Versiones de producto

  • Origen: base de datos 10.2 y versiones posteriores de Amazon RDS para Oracle (para 10.x), 11g (11.2.0.3.v1 y versiones posteriores) y hasta 12.2, 18c y 19c (y versiones posteriores) para Enterprise Edition, Standard Edition, Standard Edition 1 y Standard Edition 2

  • Destino: base de datos compatible con Amazon RDS para PostgreSQL o Aurora PostgreSQL 9.4 y versiones posteriores (para 9.x), 10.x, 11.x, 12.x, 13.x y 14.x (y versiones posteriores)

  • AWS SCT: última versión (este patrón se probó con 1.0.632)

  • Oracle: última versión (este patrón se probó con la versión 3.9.0)

Arquitectura

Pila de tecnología de origen

  • Instancia de base de datos de Amazon RDS para Oracle con versión 12.1.0.2.v18

Pila de tecnología de destino

  • Una instancia de base de datos compatible con Amazon RDS para PostgreSQL o Aurora PostgreSQL con la versión 11.5

Arquitectura de migración de bases de datos

El siguiente diagrama representa la arquitectura de migración de bases de datos entre las bases de datos Oracle de origen y PostgreSQL de destino. La arquitectura incluye la nube de AWS, una nube privada virtual (VPC), zonas de disponibilidad, una subred privada, una base de datos Amazon RDS para Oracle, AWS SCT, una base de datos Amazon RDS para PostgreSQL o Aurora compatible con PostgreSQL, extensiones para Oracle (aws_oracle_ext y orafce) y archivos de lenguaje de consulta estructurado (SQL).

El proceso se explica en la siguiente lista.
  1. Inicie la instancia de base de datos de Amazon RDS para Oracle (base de datos de origen).

  2. Utilice AWS SCT con los aws_oracle_ext paquetes de orafce extensión para convertir el código fuente de Oracle a PostresQL.

  3. La conversión produce archivos.sql migrados compatibles con PostgreSQL.

  4. Convierta manualmente los códigos de extensión de Oracle no convertidos en códigos PostgreSQL (psql).

  5. La conversión manual produce archivos.sql convertidos compatibles con PostgreSQL.

  6. Ejecute estos archivos.sql en su instancia de base de datos de Amazon RDS para PostgreSQL (base de datos de destino).

Herramientas

Herramientas

Servicios de AWS

  • AWS SCT: la herramienta de conversión de esquemas de AWS (AWS SCT) convierte el esquema de base de datos existente de un motor de base de datos a otro. Puede convertir un esquema de procesamiento de transacciones en línea (OLTP) relacional o un esquema de almacenamiento de datos. Su esquema convertido es adecuado para una instancia de base de datos de Amazon RDS para MySQL, un clúster de base de datos de Amazon Aurora, una instancia de base de datos de Amazon RDS para PostgreSQL o un clúster de Amazon Redshift. El esquema convertido también se puede utilizar con una base de datos en una instancia de Amazon EC2 o almacenarse como datos en un bucket de Amazon S3.

    AWS SCT proporciona una interfaz de usuario basada en proyectos para convertir automáticamente el esquema de la base de datos de origen a un formato compatible con su instancia de Amazon RDS de destino. 

    Puede usar AWS SCT para realizar la migración desde una base de datos de origen de Oracle a cualquiera de los destinos enumerados anteriormente. Con AWS SCT, puede exportar las definiciones de los objetos de la base de datos de origen, como el esquema, las vistas, los procedimientos almacenados y las funciones. 

    Puede utilizar AWS SCT para convertir datos de Oracle a Amazon RDS para PostgreSQL o Amazon Aurora PostgreSQL-Compatible Edition. 

    Este patrón utiliza AWS SCT para convertir y migrar el código de Oracle a PostgreSQL mediante las extensiones aws_oracle_ext y orafce migrar manualmente los códigos psql de extensión a código integrado nativo o predeterminado.

  • El paquete de extensión de AWS SCT es un módulo complementario que simula funciones presentes en la base de datos de origen que son necesarias a la hora de convertir objetos a la base de datos de destino. Antes de poder instalar el paquete de extensión AWS SCT, debe convertir el esquema de su base de datos.

    Cuando convierte su base de datos o esquema de almacén de datos, AWS SCT agrega un esquema adicional a su base de datos de destino. Este esquema implementa las funciones del sistema SQL de la base de datos de origen que son necesarias al escribir su esquema convertido en la base de datos de destino. El esquema adicional se denomina esquema del paquete de extensión.

    El esquema del paquete de extensión para bases de datos OLTP se nombra según la base de datos de origen. Para las bases de datos de Oracle, el esquema del paquete de extensiones es AWS_ORACLE_EXT.

Otras herramientas

  • Oracle: Orafce es un módulo que implementa funciones, tipos de datos y paquetes compatibles con Oracle. Es una herramienta de código abierto con una licencia de Berkeley Source Distribution (BSD) para que cualquiera pueda usarla. El módulo orafce es útil para migrar de Oracle a PostgreSQL porque tiene muchas funciones de Oracle implementadas en PostgreSQL.

Código

Para obtener una lista de todos los códigos más utilizados y migrados de Oracle a PostgreSQL para evitar el uso del código de extensión SCT de AWS, consulte el documento adjunto.

Epics

TareaDescripciónHabilidades requeridas

Cree la instancia de base de datos Oracle.

Cree una instancia de base de datos compatible con Amazon RDS para Oracle o Aurora PostgreSQL desde la consola de Amazon RDS.

AWS general, administrador de bases de datos

Configuración de los grupos de seguridad.

Configure grupos de seguridad entrantes y salientes.

AWS general

Crear la base de datos.

Crear la base de datos de Oracle con los usuarios y esquemas necesarios.

AWS general, administrador de bases de datos

Crear los objetos.

Crear objetos e introducir datos en el esquema.

Administrador de base de datos
TareaDescripciónHabilidades requeridas

Cree la instancia de base de datos PostgreSQL.

Cree una instancia de base de datos de Amazon RDS para PostgreSQL o de Amazon Aurora mediante la consola de Amazon RDS.

AWS general, administrador de bases de datos

Configuración de los grupos de seguridad.

Configure grupos de seguridad entrantes y salientes.

AWS general

Crear la base de datos.

Cree la base de datos PostgreSQL con los usuarios y esquemas necesarios.

AWS general, administrador de bases de datos

Valide las extensiones.

Asegúrese de que aws_oracle_ext y orafce están instalados y configurados correctamente en la base de datos PostgreSQL.

Administrador de base de datos

Compruebe que la base de datos PostgreSQL esté disponible.

Asegúrese de que la base de datos PostgreSQL esté activa y en funcionamiento.

Administrador de base de datos
TareaDescripciónHabilidades requeridas

Instale AWS SCT.

Instale la versión más reciente de AWS SCT.

Administrador de base de datos

Configure AWS SCT.

Configure AWS SCT con los controladores de conectividad de bases de datos Java (JDBC) para Oracle (ojdbc8.jar) y PostgreSQL (postgresql-42.2.5.jar).

Administrador de base de datos

Habilite el paquete o la plantilla de extensiones SCT de AWS.

En AWS SCT Configuración de proyecto, habilite la implementación de funciones integradas con las extensiones aws_oracle_ext y orafce para el esquema de base de datos de Oracle.

Administrador de base de datos

Convierta el esquema.

En AWS SCT, seleccione Convertir esquema para convertir el esquema de Oracle a PostgreSQL y generar los archivos.sql.

Administrador de base de datos
TareaDescripciónHabilidades requeridas

Convertir el código manualmente.

Convierta manualmente cada línea de código compatible con la extensión en código integrado predeterminado psql, como se detalla en el documento adjunto. Por ejemplo, cambie AWS_ORACLE_EXT.SYSDATE() a ORACLE.SYSDATE() o NOW().

Administrador de base de datos

Valida el código

(Opcional) Valide cada línea de código ejecutándola temporalmente en la base de datos PostgreSQL.

Administrador de base de datos

Cree objetos en la base de datos PostgreSQL.

Para crear objetos en la base de datos de PostgreSQL, ejecute los archivos.sql generados por AWS SCT y modificados en los dos pasos anteriores.

Administrador de base de datos

Recursos relacionados

Información adicional

Para obtener más información, siga los comandos detallados, con sintaxis y ejemplos, para convertir el código manualmente en el documento adjunto.

Conexiones

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip