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.
Migración de las funciones nativas de Oracle a PostgreSQL mediante extensiones
Creado por Pinesh Singal (AWS)
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 de 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 EC2 instancia de Amazon (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 costo se puede entender a partir del simple plan EXPLAIN de PostgreSQLSYSDATE
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 de 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).

Inicie la instancia de base de datos de Amazon RDS para Oracle (base de datos de origen).
Utilice AWS SCT con los
aws_oracle_ext
paquetes deorafce
extensión para convertir el código fuente de Oracle a PostresQL.La conversión produce archivos.sql migrados compatibles con PostgreSQL.
Convierta manualmente los códigos de extensión de Oracle no convertidos en códigos PostgreSQL (
psql
).La conversión manual produce archivos.sql convertidos compatibles con PostgreSQL.
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 usar con una base de datos en una EC2 instancia de Amazon o se puede almacenar 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
yorafce
migrar manualmente los códigospsql
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
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree la instancia de base de datos de 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 |
Cree la base de datos. | Crear la base de datos de Oracle con los usuarios y esquemas necesarios. | AWS general, administrador de bases de datos |
Cree los objetos. | Crear objetos e introducir datos en el esquema. | Administrador de base de datos |
Tarea | Descripción | Habilidades 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 |
Cree 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 | 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 |
Tarea | Descripción | Habilidades 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 ( | 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 | 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 |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Convertir el código manualmente. | Convierta manualmente cada línea de código compatible con la extensión en código integrado predeterminado | 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
Base de datos
AWS SCT
Extensiones para AWS SCT
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