Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Migración de una tabla particionada de Oracle a PostgreSQL mediante AWS DMS

Modo de enfoque
Migración de una tabla particionada de Oracle a PostgreSQL mediante AWS DMS - 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.

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.

Creado por Saurav Mishra (AWS) y Eduardo Valentim (AWS)

Resumen

Este patrón describe cómo acelerar la carga de una tabla particionada de Oracle a PostgreSQL mediante AWS Database Migration Service (AWS DMS), que no admite el particionamiento nativo. La base de datos PostgreSQL de destino se puede instalar en Amazon Elastic Compute Cloud ( EC2Amazon) o puede ser una instancia de base de datos Edition compatible con PostgreSQL o Amazon Aurora PostgreSQL compatible con PostgreSQL. 

La carga de una tabla particionada incluye los pasos siguientes:

  1. Cree una tabla principal similar a la tabla de particiones de Oracle, pero no incluya ninguna partición.

  2. Cree tablas secundarias que hereden de la tabla principal que se creó en el paso 1.

  3. Cree una función de procedimiento y un disparador para gestionar las inserciones en la tabla principal.

Sin embargo, dado que el disparador se activa para cada inserción, la carga inicial con AWS DMS puede ser muy lenta.

Para acelerar las cargas iniciales de Oracle a PostgreSQL 9.0, este patrón crea una tarea de AWS DMS independiente para cada partición y carga las tablas secundarias correspondientes. A continuación, se crea un disparador durante la transición. 

La versión 10 de PostgreSQL admite particiones nativas. Sin embargo, en algunos casos puede decidir utilizar la partición heredada. Para obtener más información, consulte la sección Additional information (Información adicional).

Requisitos previos y limitaciones

Requisitos previos 

  • Una cuenta de AWS activa

  • Una base de datos de Oracle de origen con una tabla particionada

  • Una base de datos PostgreSQL en AWS

Versiones de producto

  • PostgreSQL 9.0

Arquitectura

Pila de tecnología de origen

  • Una tabla particionada en Oracle

Pila de tecnología de destino

  • Una tabla particionada en PostgreSQL (en EC2 Amazon, Amazon RDS for PostgreSQL o Aurora PostgreSQL)

Arquitectura de destino

Los datos de la tabla particionados en Oracle se trasladan a una tarea de AWS DMS para cada partición y, luego, a PostgreSQL.

Herramientas

Epics

TareaDescripciónHabilidades requeridas

Cree las tablas en PostgreSQL.

Cree las tablas principales y secundarias correspondientes en PostgreSQL con las condiciones de comprobación necesarias para las particiones.

Administrador de base de datos

Cree la tarea AWS DMS para cada partición.

Incluya el estado del filtro de la partición en la tarea de AWS DMS. Asigne las particiones a las tablas secundarias de PostgreSQL correspondientes.

Administrador de base de datos

Ejecute las tareas de AWS DMS con captura de datos de cambio y carga completa (CDC).

Además, compruebe que el parámetro StopTaskCachedChangesApplied está establecido en true y que el parámetro StopTaskCachedChangesNotApplied está establecido en false.

Administrador de base de datos

Configure AWS DMS

TareaDescripciónHabilidades requeridas

Cree las tablas en PostgreSQL.

Cree las tablas principales y secundarias correspondientes en PostgreSQL con las condiciones de comprobación necesarias para las particiones.

Administrador de base de datos

Cree la tarea AWS DMS para cada partición.

Incluya el estado del filtro de la partición en la tarea de AWS DMS. Asigne las particiones a las tablas secundarias de PostgreSQL correspondientes.

Administrador de base de datos

Ejecute las tareas de AWS DMS con captura de datos de cambio y carga completa (CDC).

Además, compruebe que el parámetro StopTaskCachedChangesApplied está establecido en true y que el parámetro StopTaskCachedChangesNotApplied está establecido en false.

Administrador de base de datos
TareaDescripciónHabilidades requeridas

Detiene la tarea de replicación.

Antes de detener las tareas, confirme que el origen y el destino están sincronizados.

Administrador de base de datos

Cree un disparador en la tabla principal.

Como la tabla principal recibirá todos los comandos de inserción y actualización, cree un activador que dirija estos comandos a las tablas secundarias respectivas en función de la condición de partición.

Administrador de base de datos

Realizar la transición

TareaDescripciónHabilidades requeridas

Detiene la tarea de replicación.

Antes de detener las tareas, confirme que el origen y el destino están sincronizados.

Administrador de base de datos

Cree un disparador en la tabla principal.

Como la tabla principal recibirá todos los comandos de inserción y actualización, cree un activador que dirija estos comandos a las tablas secundarias respectivas en función de la condición de partición.

Administrador de base de datos

Recursos relacionados

Información adicional

Aunque la versión 10 de PostgreSQL admite la partición nativa, puede decidir usar la partición heredada para los siguientes casos de uso:

  • La partición impone una regla según la cual todas las particiones deben tener el mismo conjunto de columnas que la principal, pero la herencia de tablas permite que las particiones secundarias tengan columnas adicionales.

  • La herencia de tablas admite herencias múltiples.

  • La partición declarativa solo admite la partición de listas y rangos. Con la herencia de tablas, puede dividir los datos como desee. Sin embargo, si la exclusión de la restricción no puede reducir las particiones de forma eficaz, el rendimiento de las consultas se verá afectado.

  • Algunas operaciones necesitan un bloqueo más fuerte cuando se usa la partición declarativa que cuando se usa la herencia de tablas. Por ejemplo, añadir o quitar una partición de una tabla particionada requiere un bloqueo ACCESS EXCLUSIVE en la tabla principal, mientras que un bloqueo SHARE UPDATE EXCLUSIVE es suficiente para una herencia normal.

Si utiliza particiones de trabajo independientes, también puede volver a cargar las particiones si hay algún problema de validación de AWS DMS. Para mejorar el rendimiento y el control de la replicación, ejecute las tareas en instancias de replicación independientes.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.