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

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

En un conjunto de cuatro tutoriales, exploramos la migración de una instancia de base de datos MySQL a una base de datos PostgreSQL mediante AWS Database Migration Service (DMS). En el primer tutorial, "Migración de MySQL a PostgreSQL en AWS RDS, parte 1", presentamos DMS y creamos un usuario de IAM para DMS. En el segundo tutorial, Migración de MySQL a PostgreSQL en AWS RDS, parte 2, creamos instancias de MySQL y PostgreSQL en RDS y nos conectamos a las dos instancias. En este tutorial de continuación, crearemos una migración de DMS para realizar la migración. Este tutorial tiene las siguientes secciones:

  • Crear una migración de DMS
  • Creación de una instancia de replicación
  • Creación de extremos de tareas de migración
  • Crear una tarea de migración
  • Conclusión

Crear una migración de DMS

En esta sección, crearemos un Servicio de migración de base de datos (DMS) para migrar la base de datos MySQL a la base de datos PostgreSQL. Una migración de DMS consta de los siguientes componentes:

  • Instancia de replicación
  • Puntos finales de la base de datos
  • Tarea

Discutiremos la creación de cada uno de estos en las subsecciones, pero primero debe crear una migración de DMS. Navegue hasta el panel de DMS y haga clic en Crear migración. , como se muestra en la Figura 1.


Figura 1: Crear migración

Se inicia el asistente de DMS. Haga clic en Siguiente, como se muestra en la Figura 2.


Figura 2: Asistente de DMS

Creación de una instancia de replicación

A continuación, configure una instancia de replicación, que establece la conexión entre las bases de datos de origen y de destino, transfiere los datos y almacena en caché los cambios de datos que se producen durante la carga de datos inicial. Especifique una instancia de replicación Nombre y Descripción y seleccione una clase de instancia (el valor predeterminado es dms.t2.medium), como se muestra en la Figura 3. Seleccione una VPC y seleccione la opción para configurar alta disponibilidad con Mult-Az; la configuración predeterminada se establece en "No". Seleccione la opción Accesible públicamente .


Figura 3: Configuración de una instancia de replicación

En Avanzado , mantenga la configuración predeterminada para almacenamiento asignado (50 GB), grupo de subred de replicación, zona de disponibilidad (sin preferencia) y grupo de seguridad de VPC (usar predeterminado), como se muestra en la figura 4. Seleccione la clave maestra de KMS (dbms) creada anteriormente en Configuración del entorno sección.


Figura 4: Configuración de ajustes avanzados para la instancia de replicación

Haga clic en Siguiente, como se muestra en la Figura 5.


Figura 5: Siguiente

La instancia de replicación comienza a crearse, como se muestra en el mensaje de la Figura 6. A continuación, se deben configurar las conexiones de la base de datos de origen y de destino, lo que lograremos en la siguiente subsección.


Figura 6: La instancia de replicación comienza a crearse

Creación de extremos de tareas de migración

La instancia de replicación puede tardar unos minutos en crearse. Los puntos finales de migración se pueden agregar mientras se crea la instancia de replicación. Seleccione el motor de origen como "mysql", como se muestra en la Figura 7.


Figura 7: Selección del motor de origen

Seleccione Motor de destino como "postgres", como se muestra en la Figura 8.


Figura 8: Selección del motor de destino

En Nombre del servidor , especifique el Punto final para la instancia de base de datos de RDS para la base de datos eliminando :port sufijo. Para una base de datos MySQL, el punto final de RDS es mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:3306 . Por lo tanto, especifique el Servername como mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com , como se muestra en la Figura 9. Para una base de datos PostgreSQL en RDS, el Endpoint es postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:5432; por lo tanto, especifique el Servername como postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com . Especifique el puerto por separado para las bases de datos de origen y de destino:3306 para la base de datos MySQL y 5432 para Postgres.


Figura 9: Especificación de nombre de servidor y puerto para bases de datos de origen y de destino

Desplácese hacia abajo para ver más opciones de configuración de terminales, como se muestra en la Figura 10. Seleccione modo SSL. como ninguno para las bases de datos de origen y de destino. Especifique el Nombre de usuario y la Contraseña tal como se configuraron al crear las instancias de base de datos de RDS. Especifique el nombre de la base de datos de PostgreSQL (postgresdb), también como se configuró al crear la instancia de base de datos de RDS.


Figura 10: Especificación del modo SSL, nombre de usuario, contraseña y SID o nombre de la base de datos

En la configuración avanzada, se pueden especificar atributos de conexión adicionales disponibles para la base de datos MySQL y la base de datos PostgreSQL, pero no se requiere ninguno para este tutorial. Seleccione la clave maestra de KMS (dbms) para las bases de datos de origen y de destino (consulte la Figura 11). Para probar los extremos de DMS, la Ejecutar prueba se proporcionan botones, como se muestra en la Figura 11. El botón Ejecutar prueba los botones están atenuados o deshabilitados hasta que se crea la instancia de replicación.


Figura 11: Configuración de ajustes avanzados para extremos de DMS

Cuando se ha creado la instancia de replicación, aparece el mensaje "Instancia de replicación creada correctamente", como se muestra en la Figura 12.


Figura 12: Instancia de replicación creada con éxito

Una vez que se ha creado la instancia de replicación, el Ejecutar prueba los botones se habilitan. Haz clic en Ejecutar prueba , como se muestra en la Figura 13, para cada base de datos.


Figura 13: Ejecutar prueba

Las conexiones comienzan a probarse, como lo indica el mensaje "Probando la conexión del punto final" en la Figura 14.


Figura 14: Prueba de conexiones de punto final

Si las conexiones de puntos finales se configuraron según lo requerido, debería aparecer el mensaje "Conexión probada correctamente", como se muestra en la Figura 15. Haga clic en Siguiente.


Figura 15: Conexión probada con éxito

Crear una tarea de migración

Habiendo creado una instancia de replicación y puntos finales de base de datos, a continuación crearemos una tarea de migración para conectarnos a los puntos finales y transferir los datos. En Crear tarea asistente, especifique un Nombre de tarea (también se especifica un valor predeterminado) y agregue una descripción de la tarea (consulte la Figura 16). Seleccione la opción para Iniciar tarea al crear .


Figura 16: Asistente para crear tareas

Los puntos finales de origen y destino y la instancia de replicación se configuraron previamente y no se pueden modificar al crear una tarea. Seleccione un tipo de migración , que enumera tres opciones, como se muestra en la Figura 17.

  • Migrar datos existentes :migra los esquemas, tablas y datos de tablas existentes que ya existen en la base de datos de origen, pero no migra los cambios posteriores de forma continua.
  • Migrar datos existentes y replicar cambios continuos :migra los esquemas, tablas y datos de tablas existentes que ya existen en la base de datos de origen y también migra los cambios posteriores de forma continua.
  • Replicar solo cambios de datos :no migra esquemas, tablas ni datos existentes y migra solo los cambios de datos.

Seleccione Migrar datos existentes como se muestra en la Figura 17. Para migrar los cambios, que es lo que proporcionan las otras dos opciones, el tiempo de retención del registro binario en la instancia de base de datos MySQL debe aumentarse a 24 horas o más.


Figura 17: Seleccionando Tipo de migración como Migrar datos existentes

A continuación, configure la Configuración de tareas . El modo de preparación de la tabla de destino La configuración se aplica a las tablas en la base de datos de destino y ofrece tres opciones:

  • No hacer nada :Los datos y metadatos de las tablas de destino no se modifican
  • Soltar mesas en el objetivo :Las tablas existentes, si las hay, se descartan y se crean nuevas tablas
  • Truncar :las tablas se truncan, lo que implica que los datos de la tabla se eliminan pero los metadatos de la tabla no se modifican. Incluir columnas LOB en la replicación La configuración se aplica a las columnas de tipo de datos LOB en la base de datos de origen y proporciona tres opciones:
    • No incluir columnas LOB :las columnas LOB están excluidas de la migración
    • Modo LOB completo :Migra LOB completos independientemente del tamaño; Los LOB se migran en fragmentos, lo que podría ralentizar el proceso de migración
    • Modo LOB limitado :Trunca los LOB al tamaño especificado en el tamaño máximo de LOB (kb)

Seleccione Modo de preparación de mesa de destino como No hacer nada, como se muestra en la Figura 18. Seleccione Incluir columnas LOB en la replicación como modo LOB limitado y especifique Tamaño máximo de LOB como 32 kb (predeterminado). Seleccione Habilitar registro opción.


Figura 18: Configuración de tareas

A continuación, agregue reglas de selección y reglas de transformación en Asignaciones de tablas , como se muestra en la Figura 19. Las asignaciones de tablas se pueden agregar mediante el Guiado interfaz de usuario o como JSON . Se recomienda la interfaz de usuario guiada. Se debe agregar al menos una regla de selección y las reglas de transformación son opcionales. Se aplican reglas de selección, mientras que la selección de esquemas, tablas y columnas de la base de datos de origen y las reglas de transformación se aplican antes de que los esquemas, tablas y columnas se migren a la base de datos de destino.


Figura 19: Asignaciones de tablas

El esquema se puede seleccionar de El nombre del esquema es desplegable o, si no aparece ninguno, seleccione Introducir un esquema y especifique un esquema en El nombre del esquema es como campo. La Acción el menú desplegable muestra dos opciones:Incluir y Excluir . La opción Incluir incluye las selecciones realizadas para esquemas y tablas y la opción Excluir excluye los esquemas y tablas. Las exclusiones se procesan después de las incluidas. No es necesario seleccionar todos los esquemas ni todas las tablas de un esquema.

Añadiremos la siguiente regla de selección:

  • Incluye todos los esquemas y todas las tablas de la base de datos de origen

Para la regla de selección, seleccione Introducir un esquema y especifique El nombre del esquema es como % , que selecciona todos los esquemas en la base de datos de origen, como se muestra en la Figura 20. Especifique El nombre de la tabla es como como % , que selecciona todas las tablas en los esquemas seleccionados. Seleccione Acción como Incluir .


Figura 20: Configuración de una regla de selección

Haz clic en Añadir regla de selección (ver Figura 21).


Figura 21: Agregar una regla de selección

Se agrega una regla de selección, como se muestra en la Figura 22. Cuando se crea la tarea, un rol de IAM dms-cloudwatch-logs-role se crea para permitir que DMS acceda a CloudWatch.


Figura 22: Regla de selección agregada

A continuación, agregue una regla de transformación. Para ello, haga clic en añadir regla de transformación enlace, como se muestra en la Figura 23.


Figura 23: Añadir regla de transformación

Una regla de transformación tiene configuraciones para el Objetivo . La regla tiene tres opciones, como se muestra en la Figura 24.

  • Esquema
  • Mesa
  • Columna

Dónde especifica un subconjunto de los objetos seleccionados por las reglas de selección. La Acción es la transformación que se va a aplicar y las siguientes opciones están disponibles:

  • Renombrar a (disponible para objetos de Esquema y Tabla)
  • Eliminar columna (disponible para Columnas)
  • Hacer minúsculas (disponible para esquemas, tablas y columnas)
  • Hacer mayúsculas (disponible para esquemas, tablas y columnas)
  • Añadir prefijo (disponible para Esquemas, Tablas y Columnas)
  • Eliminar prefijo (disponible para esquemas, tablas y columnas)


Figura 24: Configuración de reglas de transformación

PostgreSQL utiliza minúsculas en esquemas, tablas y columnas. Añadiremos tres reglas de transformación:

  • Haga todos los esquemas en minúsculas
  • Pon todas las tablas en minúsculas
  • Hacer todas las columnas en minúsculas

Para agregar la primera de estas reglas de transformación, seleccione Objetivo como Esquema como se muestra en la Figura 25. Especifique El nombre del esquema es como % . Seleccione Acción como Hacer minúsculas y haga clic en Agregar regla de transformación .


Figura 25: Agregar una regla de transformación

Se agrega una regla de transformación (consulte la Figura 26). Para agregar otra regla de transformación, haga clic en agregar regla de transformación enlace de nuevo.


Figura 26: Regla de transformación agregada

Seleccione Objetivo como Mesa , como se muestra en la Figura 27. Especifique El nombre del esquema es como % . Seleccione El nombre de la tabla es como % . Seleccione Acción como Hacer minúsculas y haga clic en Agregar regla de transformación .


Figura 27: Agregar una regla de transformación para cambiar el nombre de una tabla

Seleccione Objetivo como Columna , como se muestra en la Figura 28. Especifique El nombre del esquema es como % . Seleccione El nombre de la tabla es como % . Seleccione El nombre de la columna es como % . Seleccione Acción como Hacer minúsculas y haga clic en Agregar regla de transformación .


Figura 28: Agregar una regla de transformación para poner el nombre de la columna en minúsculas

Las tres reglas de selección y una regla de transformación agregadas se muestran en la Figura 29. Cuando se ejecuta la tarea, las reglas de selección se aplican antes que las reglas de transformación. Para la configuración avanzada, haga clic en Configuración avanzada , como se muestra en la Figura 29.


Figura 29: Reglas de selección y reglas de transformación

En Configuración avanzada , seleccione Configuración de la tabla de control y especifique Crear tabla de control en el destino usando el esquema como público , como se muestra en la Figura 30, y haga clic en Listo.


Figura 30: Configuración del esquema de la tabla de control en Target

Se agrega la configuración Avanzada (consulte la Figura 31).


Figura 31: Configuración avanzada

Después de configurar la tarea, haga clic en Crear tarea , como se muestra en la Figura 32, para crear la tarea.


Figura 32: Crear tarea

Se crea una tarea de migración, como se muestra en la Figura 33. Inicialmente, el estado de la tarea es "Creando".


Figura 33: Tarea de migración

Una tarea puede tener uno de los estados discutidos en la Tabla 1.

Estado Descripción
Creando La tarea se está creando.
Listo La tarea está lista para iniciarse y ejecutarse. Por lo general, sigue el estado "Creando".
Inicio La tarea se está iniciando, tiempo durante el cual la tarea se conecta con la instancia de replicación y los extremos de la base de datos. Se aplican reglas de selección y transformación.
Corriendo La tarea se está ejecutando, lo que implica que la tarea está migrando la base de datos.
Carga completa La tarea completó la carga (migración) de la base de datos.
Error La tarea ha fallado.
Error Ha ocurrido un error durante la migración. Es posible que algunos de los esquemas y tablas se hayan migrado correctamente, pero al menos un esquema o tabla no se pudo migrar.
Modificando La tarea se está modificando, generalmente después de que un usuario haya modificado la tarea.
Detener La tarea se está deteniendo, lo que generalmente ocurre después de que el usuario haya seleccionado detener una tarea.
Detenido La tarea se detuvo, lo que podría deberse a que un usuario detuvo una tarea o porque se usó un tipo de migración de Migrar datos existentes y replicar cambios continuos y la tarea completó la carga inicial .
Eliminar La tarea se está eliminando, lo que se debe a que el usuario ha eliminado la tarea.

Tabla 1: Estados de tareas

Se crean dos roles de IAM, uno para CloudWatch y otro para VPC, como se muestra en la Figura 34.


Figura 34: Funciones de IAM para DMS

Conclusión

En este tercer tutorial sobre la migración de una instancia de base de datos MySQL en RDS a una instancia de base de datos Postgres en RDS, creamos una migración DMS que incluye instancia de replicación, puntos finales de migración y tarea de migración. En el cuarto tutorial, analizaremos la ejecución de la migración de DMS para realizar la migración y evaluar los resultados.