sql >> Base de Datos >  >> RDS >> Mysql

Migración de MySQL a PostgreSQL en AWS RDS, Parte 4

En cuatro tutoriales, exploramos la migración de una base de datos MySQL a una base de datos PostgreSQL mediante AWS Database Migration Service (DMS). Comenzamos creando un usuario de IAM para DMS en el primer tutorial, "Migración de MySQL a PostgreSQL en AWS RDS, parte 1". Posteriormente, analizamos la creación de instancias de MySQL y PostgreSQL en AWS Relational Database Service (RDS) en el segundo tutorial, "Migración de MySQL a PostgreSQL en AWS RDS, parte 2". En el tercer tutorial, "Migración de MySQL a PostgreSQL en AWS RDS, Parte 3", creamos una migración de DMS. En este tutorial final, analizaremos la ejecución de la migración de DMS para realizar la migración.

Este tutorial tiene las siguientes secciones:

  • Ejecución de la tarea de migración de DMS
  • Explorando la base de datos migrada
  • Exploración de los registros de CloudWatch
  • Limitaciones en la migración de MySQL a PostgreSQL con DMS
  • Conclusión

Ejecución de la tarea de migración de DMS

Una vez creada la tarea, el Estado debe estar Listo , como se muestra en la Figura 1. Haga clic en Iniciar/Reanudar para iniciar la tarea.


Figura 1: Iniciar/Reanudar

El estado debe ser Iniciando , como se muestra en la Figura 2.


Figura 2: Inicio de tareas

Cuando la tarea ha establecido una conexión con la instancia de replicación y los extremos de la base de datos y se ha aplicado, el estado de las asignaciones de la tabla pasa a ser En ejecución. , como se muestra en la Figura 3.


Figura 3: Estado En ejecución

La migración se ejecuta como se configuró y, una vez que la migración se ha completado correctamente, el Estado se convierte en Carga completa , como se muestra en la Figura 4. Las Tablas cargadas columna indica el número de tablas cargadas.


Figura 4: Carga de estado completa

Para las tablas que se han migrado, haga clic en Estadísticas de tabla pestaña, como se muestra en la Figura 5. Se enumeran las estadísticas de la tabla, incluidos el esquema, la tabla, el estado, el número de inserciones, las eliminaciones, las actualizaciones, los DDL, las filas de carga completa y el total.


Figura 5: Estadísticas de la tabla

Si la tabla de la base de datos de origen no incluye tablas, las Filas de carga completa es 0. Si una tabla de origen tiene filas, Full Load Rows indica el número de filas, como se muestra para algunas de las filas en la Figura 6.


Figura 6: Full Load Rows para algunas tablas es 0, mientras que para otras tablas, el número de filas cargadas

Exploración de la base de datos migrada

Después de haber migrado los esquemas y las tablas de la base de datos MySQL a PostgreSQL, enumere los esquemas en la CLI de PostgreSQL con el dn dominio. Los esquemas migrados se enumeran, como se muestra en la Figura 7. El público el esquema ya existía antes de la migración.


Figura 7: Esquemas migrados de MySQL a la base de datos PostgreSQL

La migración de DMS convierte los tipos de columnas de la tabla automáticamente. Se agrega un índice secundario para una clave principal, que se crea automáticamente en la asignación de tablas.

Los datos de la tabla también se migran, como se muestra para mysql.user tabla en la Figura 8.


Figura 8: Los datos de la tabla también se migran

Al migrar de un tipo de base de datos a otro (migración heterogénea), DMS realiza automáticamente las asignaciones de tipos de datos. Se utiliza un tipo de datos DMS intermedio durante una migración. Al migrar de la base de datos MySQL a PostgreSQL, primero los tipos de datos MySQL se migran al tipo de datos DMS utilizando las asignaciones integradas para la base de datos MySQL como base de datos de origen. Posteriormente, el tipo de datos de DMS se asigna a los tipos de datos de PostgreSQL, nuevamente utilizando asignaciones integradas para PostgreSQL como la base de datos de destino. Las tablas relacionadas con RDS en la base de datos MySQL en RDS también se migran a la base de datos PostgreSQL, como la tabla "mysql". "rds_replication_status" que se muestra en la Figura 9.


Figura 9: Datos migrados para una tabla de información de RDS

Exploración de los registros de CloudWatch

Si se configura el registro, como lo hicimos nosotros, los registros se pueden monitorear desde los Registros pestaña, como se muestra en la Figura 10. Haga clic en el enlace de la tarea para mostrar los registros de CloudWatch.


Figura 10: Registros

Los registros de CloudWatch se enumeran (consulte la Figura 11).


Figura 11: Registros de CloudWatch

Como indica un mensaje de registros de CloudWatch en la Figura 12, “Todas las tablas están cargadas. Se detiene la tarea de solo carga completa”.


Figura 12: Todas las tablas están cargadas

También se enumera el número de registros transferidos, como para sys.sys_config tabla en la Figura 13.


Figura 13: La entrada de registro para una tabla de base de datos incluye el número de registros transferidos

Los registros de CloudWatch se pueden usar para depurar la ejecución de una tarea de migración. Los mensajes de error se enumeran para las tablas que no se migraron correctamente en los registros de CloudWatch.

Limitaciones en la migración de MySQL a PostgreSQL con DMS

La migración de la base de datos MySQL a la base de datos PostgreSQL con DMS no está exenta de limitaciones. El propio servicio DMS tiene límites por cuenta de usuario de AWS. Otras limitaciones de DMS podrían ser específicas de una base de datos. Los tipos de datos de origen DMS para MySQL no incluyen el juego de caracteres UTF-8 de 4 bytes (utf8mb4). El juego de caracteres admitido por DMS es la página de códigos 1252 Windows Latin 1 (ANSI) y los caracteres que no están en el juego de caracteres pueden generar un error durante una migración. Existen algunas limitaciones para la base de datos MySQL como fuente de DMS. La única limitación para usar PostgreSQL como base de datos de destino de DMS es que el tipo de datos JSON se convierte al tipo de datos CLOB nativo.

Conclusión

En cuatro tutoriales, analizamos la migración de una instancia de base de datos MySQL en RDS a una instancia de base de datos Postgres en RDS.