Migre una tabla particionada de Oracle a SQL Postgre 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.

Migre una tabla particionada de Oracle a SQL Postgre mediante AWS DMS

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

Entorno: PoC o piloto

Origen: Oracle

ObjetivoSQL: Postgre 9.0

Tipo R: renovar arquitectura

Carga de trabajo: Oracle

Tecnologías: modernización; bases de datos; almacenamiento y copia de seguridad

AWSservicios: AWS DMS

Resumen

Este patrón describe cómo acelerar la carga de una tabla particionada de Oracle a Postgre SQL mediante AWS Database Migration Service (AWSDMS), que no admite el particionamiento nativo. La SQL base de datos Postgre de destino se puede instalar en Amazon Elastic Compute Cloud (AmazonEC2) o puede ser una instancia de base de datos Amazon Relational Database Service (AmazonRDS) para Postgre SQL o Amazon SQL Aurora Postgre -Compatible Edition. 

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 utilizada puede ser muy lenta. AWS DMS

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

La SQL versión 10 de Postgre admite el particionamiento nativo. 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 activa AWS

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

  • Una base de datos de Postgre en SQL AWS

Versiones de producto

  • Postgre 9.0 SQL

Arquitectura

Pila de tecnología de origen

  • Una tabla particionada en Oracle

Pila de tecnología de destino

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

Arquitectura de destino

Los datos de una tabla particionada en Oracle se trasladan a una AWS DMS tarea para cada partición y, luego, a Postgre. SQL

Herramientas

Epics

TareaDescripciónHabilidades requeridas

Crea las tablas en PostgreSQL.

Cree las tablas principales y secundarias correspondientes en Postgre SQL con las condiciones de verificación requeridas para las particiones.

DBA

Cree la AWS DMS tarea para cada partición.

Incluya la condición de filtro de la partición en la AWS DMS tarea. Asigne las particiones a las tablas secundarias de Postgre SQL correspondientes.

DBA

Ejecute las AWS DMS tareas utilizando la captura de datos a carga completa y modifique ()CDC.

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

DBA
TareaDescripciónHabilidades requeridas

Detiene la tarea de replicación.

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

DBA

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.

DBA

Recursos relacionados

Información adicional

Aunque la SQL versión 10 de Postgre admite la partición nativa, puede decidir utilizar 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. AWS DMS Para mejorar el rendimiento y el control de la replicación, ejecute las tareas en instancias de replicación independientes.